自作ゲーミングPC(+周辺)構成

プライムデーの安売りもあって。コンセプトは中級AMDマシン(Ryzen+Radeon)的な。

この構成にあたって↓の記事を大いに参考にさせてもらいました。感謝。

chimolog.co

0. モニター(ディスプレイ)

そもそも今回の事の発端(?)というか一番最初に選んだのがモニターだったこともあり、個人的にPC選びにも重要な役割を果たすと思うので記載。

今回の基準というかフィルターの条件(価格以外)は最終的に

  • 24 or 24.5インチ
  • リフレッシュレート144Hz (+それに自明で付随する応答速度~1msやDisplayPort)
  • FreeSyncあり

で、プライムデーのセール価格(23,840円)が後押ししてAcerの↓にした。

(実は最初は特にAMDマシンにするつもりは無かったので、FreeSyncは後付けというか、「FreeSyncありのモニターにしたからRadeonを選んだ」というのが正しい)

最後まで残った対抗馬はBenQの↓だった(FreeSyncなし)。ちょうど30,000円くらい。

上の条件を満たすものは他にASUSの↓とかもあったがちょっと高かった。これは40,000円ちょい。

いつかは240Hzにも手を出したい。

1. CPU

候補は第二世代Ryzen

で、無印とXの価格差(どちらも~5000円)は比較的小さいかったので、まずは無印を候補から消した。今回求めているのはハイエンドモデルではないので、2600Xを採用↓。プライムデー10%引きで22,723円。

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

2. CPUクーラー

どうやらRyzen CPUの付属クーラーはオーバークロックしなければ実用に十分耐えうる性能らしく、今回はそれを信じることにする。のでコスト0円。

3. RAM (メモリ)

条件は

  • DDR4
  • 16GB (8GB x2)
  • クロック数~2000MHz以上(Ryzenはクロック数の高いRAMと相性が良いらしい)

で、ちょうど安売りしていたTeamの↓を購入。価格はプライムデーセール込みでたしか16,000円ちょい。高い。一番安かった頃は6,000円くらいまでいっていたみたいなので、プラス約10,000円で買ったことになる。緩やかに下がってきている感じもするので半年後くらいには落ち着いているかもしれないが、6,000円は当分無理だろう。

4. マザーボード

必須のAMD X470チップセット搭載のもののうちMSIのやつ↓を選択。これは割引無しで、16,178円。

これに付いているRealtek製のLANの品質がとても悪いという評判がネットのそこかしこで散見されるが、最近はマシになってきたとのことで採用。

(仕様詳細: https://jp.msi.com/Motherboard/X470-GAMING-PRO/Specification)

ちなみに↑は2018年7月7日発売なのだが、実は2018年4月19日発売(第二世代Ryzenと同じ)の↓と完全に同じ仕様。価格も現在の市場価格ではほぼ同じ。デザインが少しだけ違うのと、ひょっとしたら微妙な最適化が施されているのかも?せっかくなら新しいものを、ということで↑にした。

(仕様詳細: https://jp.msi.com/Motherboard/X470-GAMING-PLUS/Specification)

対抗馬はASRockの↓。価格は少しだけ高めの~19,000円だが、Intel製LANなどを求めるならこちらか。規格的にはこちらだけNVIDIA SLIに対応している(AMD CrossFireはどちらも対応)が、今回はAMDマシンだし、GPU二枚ほどのスペックを求めていないので実質同等か。

ASRock AMD X470チップセット搭載 ATXマザーボード X470 MASTER SLI

ASRock AMD X470チップセット搭載 ATXマザーボード X470 MASTER SLI

(仕様詳細: https://www.asrock.com/MB/AMD/X470%20Master%20SLI/index.jp.asp#Specification)

なおオーディオはいずれもRealtek ALC892 Codecで7.1ch HDにも対応しているので、とりあえずサウンドカードは買わない。

5. GPU (グラフィックスカード)

コスパが良いと言われているNVIDIA GeForce GTX 1060とよく並べられるAMD Radeon RX 580を採用。問題はメーカーだが、今回は主に価格の観点からASUSにした。セール無し34,800円。マイニング特需も終わり、これからもう少し下がるかも?

ASUS AMD RX580搭載ビデオカード DUAL-RX580-O8G

ASUS AMD RX580搭載ビデオカード DUAL-RX580-O8G

...と思ったのだが、もう少しだけ値段が下がるのを待っているうちに逆に値上がりしてしまったので(FXなんて向いてないことを再確認できた)、代わりにPowerColorの↓を選択。33,758円。正直DEVILの文字は好きになれないが、調べてみると冷却性能がかなり優秀みたいでだいぶ良さげだったので好印象。ただし占有拡張スロットの違い(↑2、↓3)や出力端子の違い(↑DisplayPort x2, HDMI2.0 x2, DVI-D x1、↓DisplayPort x3, HDMI2.0 x1, DVI-D x1)に注意。今回採用したケースだと(たぶん)2スロット分までのカードなら縦置き設置できるみたいなので、外見を気にする場合は調整する。

PowerColor ビデオカード AMD RADEON RX580搭載 AXRX580 8GBD5-3DHG/OC

PowerColor ビデオカード AMD RADEON RX580搭載 AXRX580 8GBD5-3DHG/OC

15インチMacBook Proを2台持っているので、外付けGPUがもっと安くなればParallelsとか使ってゲーミングMacにするのもありかも...とか一瞬思ったが、Macはリフレッシュレート60Hzだし、そもそも仮想マシン上で重いゲーム動かせるのか非常に怪しそう。

6. SSD

PS4換装のレビューがすごく多いCrucialの500GBにした↓。条件は

で、プライムデーセール込みで~11,000円と比較的有名なメーカーのうちでは最安かと。

7. 電源

電源は大事、とのことで80PLUS GOLDのものにした。容量は迷ったが、先にメーカーを比較的評判の高いCyonicに決めて、その中から十分足りるであろう650Wを選んだ↓。セール無し9,448円。

Cyonic PC電源 80PLUS GOLD プラグイン 650W ATX電源 5年保証 AU-650X

Cyonic PC電源 80PLUS GOLD プラグイン 650W ATX電源 5年保証 AU-650X

8. ケース

優柔不断なので好みによるところが大きいPCケースもかなり悩んだ。ミドルタワーにすることはすぐに決めたが、その後YouTubeやレビューサイトを見て回り、最終的にThermaltakeの↓にした。セール無し8,617円。

対抗馬はCoolerMasterの↓。価格は少し高い~12,000円。ベストセラーではあるものの発売年が2013年と古く、せっかくだから新しいものを選ぼうと思い今回はやめておいた。

ちなみにアマゾンでベストセラー1位だったThermaltakeの↓も4,300円と非常に安く候補に上がっていたが、YouTubeで動画を見て「横のアクリル板の隙間からホコリ入りまくりじゃない?」としか思えなくなってやめた(真偽のほどは分からない)。

なお光学ドライブを付けたい場合は5.25インチベイの有無を確認が必要。上記3つのうち今回買わなかった下2つには付いているが、一番上の買ったやつには付いていない。実は最初のうちは欲しいと思っていたが、最近のトレンドではないことを知ってまあいいかと思うようになった。必要になったら外付けを買うと思う。

9. OS

定番の。プライムデー価格で~11,000円。

各所で売ってる謎の激安版は怖くて手を出さなかった。正当な技術には正当な対価をということで。

(番外) キーボード、マウス、マウスパッド

【国内正規品】SteelSeries QCK heavy マウスパッド 63008

【国内正規品】SteelSeries QCK heavy マウスパッド 63008

上から9,396円、4,761円、3,182円。キーボードは正直見ただけでは分からないので、各自実際に触って確かめるしかないのではと。個人的に昔からずっとノートPCのペタペタしたキーボードばかり触ってきたので、ストロークは浅めの方が好きだったりする。

お値段合計

PC本体 ~117,000円

OS ~11,000円

モニター ~24,000円

キーボード、マウス、マウスパッド ~17,000円

合計 ~169,000円

キーボード・マウスはともかく、本体のパーツであとケチれるのはケースとせいぜいRAMとギリギリCPUくらい、という気分。RAMが高すぎるのが悪い。

引っ越し

これまで何回か引っ越しをしてきて分かってきた、引っ越し料金について。

  1. 引っ越し(見積もり)料金は最低限度価格みたいなものは決まってはいる(教えてはくれない)が、基本的に言い値(!)。紹介で「XX%オフ」 みたいなことを言ってても結局そんなの関係ない。だって言い値だもの。

  2. 料金は基本的に必要なトラックの台数およびその中身を占める面積(1/5ごとに等、段階的に上がっていく)で決まる。そしてその面積は基本的に家具の種類と数だけで決まる。つまり、このとき段ボールの数はほとんど関係ない(!)。なぜなら段ボールは高効率に積み込めるから。

これらを踏まえた対策(?)としては、

  1. 見積もりする前に相場を知っておく(業者によっては最初に相場の倍とか普通にふっかけてくる)。もしくは見積もりする業者を増やせば増やすほど(正確には見積もりの際に「すでにX社に見積もってもらっている」とか言うと)基本的に値段は下がっていく。ただし単身1Kとかでもない限り最近は家まで上がり込んでくる見積もり方法が多いので、何社も見積もりを頼むと一日潰れることもあるため注意。一回やったが交渉も各社ごとにしないといけないし精神的に疲れる。

  2. 分解して段ボールに梱包できるような小型家具(小さな机や椅子、ステンレスラックなど)は分解しておいて、「段ボールに入れる」と伝える(もしくは入れておく)。ただしこれが効くのは限られた条件下のみ(規定量をギリギリ超えてるとか)なので、特に他の大型家具がたくさんある場合などはあまり期待できないかもしれない。もしくは見積もり後から「これ分解するんで〜」とか言って値下げ交渉の材料に使うのもありかもしれない。

MacOS (JIS キーボード) で terminal の代わりに alacritty を使う + tmux の設定

alacritty は、一言で言うと速いターミナル。

インストールは以下の2つあたりを参考に。Homebrew よりも上の GitHub からの方が安定しそう。

Alacritty integration with Tmux · Fatih Arslan

alacrittyインストール 備忘録 - replicityの日記

$ curl https://sh.rustup.rs -sSf | sh
$ echo export PATH="$HOME/.cargo/bin:$PATH" >> $HOME/.bash_profile; source $HOME/.bash_profile
$ git clone https://github.com/jwilm/alacritty; cd alacritty
$ rustup override set stable
$ rustup update stable
$ cargo build --release
$ make app

これで alacritty/target/release/osx/Alacritty.app が生成される。

configuration は上の一番目の記事を参考に。

Emacs のためにメタキーが欲しいが、そのままだと(JISキーボードの場合は?)うまくいかないので、作った ~/.config/alacritty/alacritty.yml 中のキーバインドhttps://github.com/jwilm/alacritty/issues/62 にあるキーバインド一覧を追加。

ついでに tmux の設定。これも基本的に上の一番目の記事で事足りるが、方向キー(arrow key)の扱いだけうまくいかなかったのでそこは https://gist.github.com/aergonaut/b26098988caf82106f771b535105b5d8 を採用。個人的な好みでプレフィックスキーに command キーを使用している(terminal っぽくないですか?)。

# alacritty.yml
  - { key: D,     mods: Command,       chars: "\x02\x64" }   # detach a session
  - { key: T,     mods: Command,       chars: "\x02\x63" }   # create a window
  - { key: P,     mods: Command,       chars: "\x02\x25" }   # create a horizontal pane
  - { key: P,     mods: Command|Shift, chars: "\x02\x22" }   # create a vertical pane
  - { key: W,     mods: Command,       chars: "\x02\x78" }   # close a pane (close a window with a single pane)
  - { key: Key1,  mods: Command,       chars: "\x02\x31" }   # jump to the window 1
  - { key: Key2,  mods: Command,       chars: "\x02\x32" }
  - { key: Key3,  mods: Command,       chars: "\x02\x33" }
  - { key: Key4,  mods: Command,       chars: "\x02\x34" }
  - { key: Key5,  mods: Command,       chars: "\x02\x35" }
  - { key: Key6,  mods: Command,       chars: "\x02\x36" }
  - { key: Key7,  mods: Command,       chars: "\x02\x37" }
  - { key: Key8,  mods: Command,       chars: "\x02\x38" }
  - { key: Key9,  mods: Command,       chars: "\x02\x39" }
  - { key: Up,       mods: Command, chars: "\x02\x1b\x5b\x41"            }   # move to another pane
  - { key: Down,     mods: Command, chars: "\x02\x1b\x5b\x42"            }
  - { key: Right,    mods: Command, chars: "\x02\x1b\x5b\x43"            }
  - { key: Left,     mods: Command, chars: "\x02\x1b\x5b\x44"            }
# .tmux.conf

# Necessary for using original color scheme in e.g. emacs
set-option -g default-terminal screen-256color

# Enable mouse
set-option -g mouse on

# Do not show a prompt before killing a pane
bind-key x kill-pane

# Use 1-index for windows and panes
set -g base-index 1
setw -g pane-base-index 1

# Switch panes with arrow keys in combination with alacritty
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

ライセンス買った 1Password を他のデバイスで使いたい

  • 昔 1Password のライセンスを(サブスクリプションではなく)買い切りで購入した
  • 1Password のサイトに行くと sign in を求められるが、アカウントなぞ持っていない
  • 同じくサイトで勧められるインストーラでアプリケーションはなんか使えない
  • (Mac だけ?)

samtools 1.7 で `error: ‘SAMTOOLS_VERSION’ undeclared (first use in this function)`

使っていた環境に samtools が入っていなかったので入れようとしたら、$ make でタイトル通りのエラーが。

<samtools のルート>/misc/*.c での SAMTOOLS_VERSION の参照がエラーになる。

SAMTOOLS_VERSIONmake の最初の方で生成される <samtools のルート>/version.h の中で #define SAMTOOLS_VERSION "1.7" のように定義されている。

ところが、上記 <samtools のルート>/misc/*.c では #include "version.h" としていて、ヘッダがある正しいディレクトリと1階層ずれている。

$ make を一回走らせてエラーを食らった後、$ cp version.h misc/version.h として再度 $ make でOK。

(GitHub の Issue 立てろ)

Jupyter notebook に Node.js カーネルを追加

[状況] Cent OS サーバ, python3 環境下でインストールした Jupyter に、Node.js カーネルとして jupyter-nodejs を追加したい。python2 仮想環境は Anaconda で(py27の名前で)すでにインストールしてある。

1. jupyter-nodejs をインストール

node はインストール済みと仮定。

python2 環境でないと(python2コマンドが無いと?)ダメそうなので、$ source activate py27 で python2 環境に入る。

$ node installzeromq インストールで引っかかった。

まずは g++ 用の zeromq をインストール。リンク先の POSIX tarball をダウンロード、説明通りにインストール。サーバで自前のディレクトリに入れた場合は CPLUS_INCLUDE_PATH/opt/include を追加すること等を忘れない。

これで $ npm install zmq; npm install zeromq が通るようになるはず。そのままインストールの続きを実行。

2. Jupyter notebook 側の設定

jupyter-nodejs インストール後、python 3 環境に戻って Jupyter notebook を開き NodeJS カーネルを新規作成すると、dead kernel となってしまった。

python2 環境に入ってから再度同様にすると、カーネルは動くが、リモート実行していた(ブラウザをサーバ側で開かずに、ローカルにポートフォワーディングしていた)のが、ブラウザが開くように(設定が無効に)なってしまっていた。

Jupyter のコンフィグファイル ~/.jupyter/jupyter_notebook_config.py を一時退避し、python2 環境下で再度

$ jupyter notebook --generate-config

を実行した後に、退避していたコンフィグファイルを元に(作成したものに上書きして)戻したところ、python2 環境を抜けても元通りの動作をするようになった。

もっとスマートな方法はありそう。

ルート権限無しでライブラリのパスを通す

Linux サーバなどでユーザ権限しか持っていない状況で、(ルート権限が必要な) ldconfigコマンドを使わずに、自分で用意したディレクト/path/to/lib以下にインストールした静的/動的ライブラリを参照可能にする。

d.hatena.ne.jp

動的ライブラリの場合はLD_LIBRARY_PATHディレクト/path/to/libを指定すれば大丈夫だが、静的ライブラリも参照するためにはLIBRARY_PATHにも/path/to/libを指定する必要がある。

d.hatena.ne.jp

そして、パッケージの情報も参照可能にする。これはPKG_CONFIG_PATHディレクト/path/to/lib/pkgconfigを追加すればよい。

結局、以下を.bash_profileに追記する。

export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/path/to/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=/path/to/lib/pkgconfig:$PKG_CONFIG_PATH