【機械学習】ワークステーションを組み立ててみた

![IMG_20200125_193050.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387976/c8ae7229-e99d-1040-d043-da48cfdd4116.jpeg)


はじめに
---

プログラミングや機械学習数年の経験を経ても、持っているGPUは小さくて、社外で勉強や開発できることが限られていることが多いため、自分のワークステーションを手に入れることに決めた。モデルをより速く学習させられ、スキルアップのペースもより速くなる。それに、フリーランスで働く方も、クリアントさんはモデルを学習させる機会やAWSインスタンス等の提供、環境構築や設備維持する必要がなくなるし、アピールポイントになるかもしれない。

ただ、ワークステーションの良いものを購入しようと思ったら、専門店が販売しているGPU搭載パソコンは相当な金額になる。特にバッチの大きさを上げることや重いモデルを学習させるために、GPUが2台以上並列に走らせる必要がある。それに、GPU2台利用できると、同時にモデル２つを学習させるのも可能なので、パラメターの影響等がより簡単に理解できる。

より安くならないかと自分でパーツを買って、マシンを組み立ててみた。ただ、最高のパソコンを作るためには、注意点がいくつかあるが、ハードウェアについての勉強にもなるし、お好みのパーツも選べる。一石三鳥。

注意点
---
####1. 加熱

これは最も注意すべきことかもしれない。重い学習を動かすと、GPUが激しく熱くなる。決定されている温度を超えるとスロットリングしてしまって、学習が遅くなるし、ハードの寿命も損なう可能性がある。加熱を防ぐには、もちろん冷却が大事なのだが、GPUの種類も大変影響を与える。Nvidia RTXやGTXの場合は、2種類がある：「blower」（ブローワー）と「non-blower」（ノン・ブローワー）。

**non-blower**のほうが普通なのだが、熱気がそのままケースの中に流れるので、GPUが2枚入っていると、下のGPUから上がる熱気が上のGPUを温めてしまう。参考にした記事には、GPUを4枚入れるケースに、2枚だけ入れたら問題がないと書いてあったが、試したところスロットリングしてしまっていた。

**blower**のほうが珍しいが、熱気を直接拡張スロットからケースの外に放出するので、加熱はあまりしなさそう。ただ、blowerは音量が高くて、やはり他人に迷惑をかけそうで使いづらい。

余裕があれば、ハイブリッドGPUや水冷GPUにする手もある。

#### 2. 拡張スロットやマザーボードのPCIスロット

多くのGPU、特に計算力の高いGPUが、1枚に拡張スロットが2つ必要。それは２～３枚載せるつもりであれば問題ないが、多くのケースにはスロットが7つしかないので、4枚使うのであれば、スロットが8つあるケースを購入する必要がある。それに、マザーボードPCIスロット数とスロットとスロットの距離を確認しなければならない。

#### 3. PCIeレーン数

[PCIeレーン](https://ja.wikipedia.org/wiki/PCI_Express)は、[PCIスロット](https://ja.wikipedia.org/wiki/Peripheral_Component_Interconnect)とは違う。マザーボードは決定されている数があって、GPUも必要なPCIeレーンが決まっている。ゲームの場合は、総合的に必要なレーン数が足りないと動かないが、機械学習の場合は、メーカーが指定したレーン数より少なくてすむ。ただ、マザーボードによって、レーンの割り当てが変わるので、設定には気をつけなければならない。特に、速度が高いNVMe M.2というドライブもPCIeレーンが必要なので、使う場合は足りないと割り当てが上手くいかない可能性がある。

#### 4. 電力

最も電力を使うパーツはGPUなのだが、一応余裕があったほうがいい。余裕を決める方法は決まっていないが、余裕がないと、重い学習を動かすと電源が落ちる可能性がある。


他には、コアの数、メモリとドライブの選択があるが、それはやりたいことに合わせていいかもしれない。それはGPUではなく、学習時点CPUにデータオーグメンテーションのような重い計算をさせるのと、初期ではなくバッチ毎データを読み込む場合注意点になる。将来的にアップグレードする可能性があれば、それぞれのスロットやレーンの数や電源等の余裕があったほうがいい。

私が選択したパーツ
---

|パーツ|モデル|値段（当時・税込み・郵送料を含む）|
|---|---|---|
|GPU|[RTX 2080 Ti](https://www.newegg.com/global/jp-en/evga-geforce-rtx-2080-ti-11g-p4-2281-kr/p/N82E16814487418?Item=N82E16814487418)|266,552（2枚）|
|CPU|[Intel i9 9820X](https://www.sofmap.com/product_detail.aspx?sku=18790105&gid=PS02010000)|65,990|
|マザーボード|[X299 TAICHI](https://kakaku.com/item/K0000975719/?lid=pc_ksearch_kakakuitem)|27,280|
|水冷CPUクーラー|[Corsair H115i PRO RGB](https://www.amazon.co.jp/dp/B077G3C6HH/ref=pe_492632_159100282_TE_item)|17,293|
|メモリ|[Corsair 16GB DDR4 2666MHz](http://www.pc4u.co.jp/shopdetail/000000014376)|34,980（4枚）|
|NVMe M.2 SSD|[Silicon Power 256Gb](https://www.amazon.co.jp/dp/B07MV8RH2N/ref=pe_492632_159100282_TE_item)|5,496|
|電源|[Corsair rm1000x](http://www.pc4u.co.jp/shop/shopdetail.html?brandcode=000000049275&search=Corsair+RM1000x+1000W&sort=)|17,778|
|ケース|[Lian Li O11 case](https://shop.tsukumo.co.jp/goods/4718466008695/)|14,030|
|ファン  |[uphere 120mm](https://www.amazon.co.jp/dp/B07VRHY6CH/ref=pe_2107282_266464282_TE_dp_2) | 1,880 |
|**総計**|  |**451,279円**（税込み）|

![IMG_20191101_231917.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387976/e8b504a1-c7ad-4445-c8fa-374ca959495e.jpeg)


初めて組み立ててみたので、闇雲に[ブログに書いてあったこと](https://timdettmers.com/2018/12/16/deep-learning-hardware-guide/)に従って、作ったところいろいろミスしてしまった。

後悔していること
---
####1. ハイブリッドGPUにしなかったこと

以前説明したとおり、ケースが大きくても、blowerではないGPUが結構加熱することが多い。ハイブリッドGPUの値段はnon-blowerタイプよりそれほど高くない。そちらにすれば冷却の調整が思ったほど大変ではなかった。このままでは、加熱を防ぐためにファンを追加するしかない。

#### 2. 冷却システムに合っていないケースを選択したこと

選択したケースはやはり格好いいけれど、実際水冷向けのケースだった。なので、直接GPUに吹くファンは付けられない。

#### 3. 360mmのラジエターにしなかったこと

240mmのラジエターは、購入したケースでは、厚すぎて縦に付けられない。横にすると、空気口を完全に覆わないが、ファンを付けられる場所もないのでそのまま開いている。

金銭的に、意味がある？
---
専門店が販売する機械と比較すると、気をつけないといけない点がある。GPU2枚搭載ゲーム向けのパソコンは、SLI構成で組み立てられているが、機械学習は非SLI構成が必要だ。

###### RTX 2080 Ti 2枚搭載ワークステーション値段比較
|パーツ|モデル|値段（当時・税込み）|出荷予定|保証期間|
|---|---|---|---|---|
|iiyama PC|[SENSE-R042-XW23-XYDVI](https://www.pc-koubou.jp/products/detail.php?product_id=698632&utm_source=affiliate&utm_medium=affiliate&utm_campaign=eYg4ljgdtcc)|593,978|6週間以内|1年|
|DEEP∞|[DEEP-TXAB-XW23-XYD](https://www.pc-koubou.jp/products/detail.php?product_id=709224)|626,978|6～8週間以内|1年|
|uniV|[MAS-i9WX](https://univpc.com/cstm/p/5b7a48b10bf34)|873,906|不明|1年|


最も安いのは、iiyama PCが販売しているモデル、60万円ぐらいで、私が組み立てたものとは、**14万円以上**の差がある！もちろんパーツが違うが、私が品質の低いものを入れたわけではない。それに購入しようと思ったら、出荷に相当な時間かかるらしい。しかし、パソコン全体を保証しているので、リソースが少ない研究者や小企業には便利だろう。ということは、金銭的な余裕より、時間的な余裕があれば、自分でワークステーションを組み立てるのもメリットがあるのではないか。

参考
---
* [A Full Hardware Guide to Deep Learning](https://timdettmers.com/2018/12/16/deep-learning-hardware-guide/)
* [The Best 4-GPU Deep Learning Rig only costs $7000 not $11,000.](https://l7.curtisnorthcutt.com/the-best-4-gpu-deep-learning-rig)
* [Building a Multi-GPU Deep Learning Machine on a budget](https://medium.com/@bingobee01/building-a-multi-gpu-deep-learning-machine-on-a-budget-3f3b717d80a9)