Deep Learning 用 Workstation 構築記録 その１（機材選定）

#### 要件
Maschine Learning, Deep Learning を実施する為の基盤整備。
  
Deep Learning開発環境 検討時の要望

+ メモリ 32GB
+ CPU Core i7
+ GPU Gefore 1080 or Titan (理想はTelsa)
+ HD 1TB推奨
+ 電源 500W(700W推奨)
  
ここからは、自分が上記から汲み取った要件。  

+ GPGPUで高パフォーマンスを維持すること（サーマルリミットを発生させない）
+ 出来る限り24365で利用可能であること（停止は可能な為、24365必須ではない）


### 構成
![IMG_2854.JPG](https://qiita-image-store.s3.amazonaws.com/0/177247/08b494d6-b4f8-799d-3f5d-587ff6541315.jpeg)

#### 電子部品
###### CPU
[Intel® Core™ i7-6900K Processor](https://ark.intel.com/ja/products/94196/Intel-Core-i7-6900K-Processor-20M-Cache-up-to-3_70-GHz)

Intel® High End Desktop Processors Family の中の上から2つ目。  
1. PCI Express レーン数がプロセッサ単体で最高レベルであること
2. メモリーチャンネルが4チャンネルであること
これらの理由からHigh End Desktop Processors Familyを選択。
組み直すロスを考え、コストパフォーマンスに優れたハイエンドとして当該プロセッサをその中から選んだ。
  
###### Mother Board
[ASUS X99-E-10G WS](https://www.asus.com/jp/Motherboards/X99-E-10G-WS/)
Core™ i7-6900Kを利用できる（公式でサポートされている）マザーボードの種類はそこまで潤沢ではないので、その中で安定のASUS製をメーカー指定。
x99チップセットを乗せたマザーボードはゲーミング向けかWorkstation向けに二分されるので、その中でWorkstation向けを選択。
最終的にこれを選んだ理由は、オンボードでIntel製10G-NICが乗っている事。
今後マシン外部とやり取りが始まった場合に、ネットワーク帯域が一番のボトルネックとなる。
もちろんPCI-Eに追加するボードで乗せるという選択はできるが、その場合GPUをフル（x4）で積む事ができなくなる。
それをオンボードで解消できるのは素晴らしいの一言。
  
###### Memory
[CORSAIR CMK32GX4M2A2666C16](http://www.corsair.com/ja-jp/vengeance-lpx-32gb-2x16gb-ddr4-dram-2666mhz-c16-memory-kit-black-cmk32gx4m2a2666c16) x2 （合計64GiB）
要件は32GBだったが、今後の拡張性とその際のコストを考えて1スロット16GBのメモリを4チャンネル分。
もし更にメモリが必要になれば、128GBまで増加が可能になる。
（CPUのメモリチャンネルがMax4つなので、性能を追い求めるMachineで4チャンネル毎以外の選択はない）
  
###### Strage
[SUMSUNG 960 PRO M.2](http://www.samsung.com/semiconductor/minisite/ssd/product/consumer/ssd960.html) （1TB）
要件として1TBの容量があったが、逆に「それ以上は現状いらない」という点に注目。
マザーボードに乗せる事ができる、M.2のSSDを規格として選択した。
メリットは配線がいらない、マウンタ等もいらない事。
ケース内のエアフローの最適化が容易になる為、冷却効率の上昇効果を見込める。
最初はコスト重視で選んでいたが、社長の鶴の一声で2017年05月現在で選べる物の中で最高峰を選択した。
このタイプのSSDは性能的にSAMSUNG製が独走状態で、耐障害性という点でもコストパフォーマンスに非常に優れている。
とは言え、流石に他のメーカー製の1.8倍はなかなか手が出ない、、、
  
###### GPU
[ASUS GTX1080TI-FE](https://www.asus.com/jp/Graphics-Cards/GTX1080TI-FE/) x4
2017年05月現在、店頭ですぐ買えるDeep Learningでも利用できるGPUの最高峰。
最初は簡易水冷式の独自クーラー製品を1発購入の予定で、本格水冷化の予定もなかった（本格水冷化は2発4発と買い足した後日に行う予定だった）のだが、これも社長の「現在の最高峰を作れ」という鶴の一声で4発に増加。
一気に本格水冷を組む事に。
物をこれにした理由は、「ファウンダリーエディションの為に水冷化が容易」「ファウンダリーエディションの中で最安」という事。
  
###### PSU
[Cooler Master V1200 Platinum](http://apac.coolermaster.com/jp/powersupply/enthusiast-v-series/v1200/) （1200W）
[Seasonic Platinum 860](https://seasonic.com/product/platinum-860-2-2/?lang=ja) （860W）
最初はGPU2発で考えていた為、1200W級のPSUで高耐久高効率な物を選択した。
その後4発となる事が決定した為、追加のGPU2発分を賄えるPSUを選定。
フルロード時で300Wと仮定し、その2発分で600W。電源効率が高い物とは言っても8割と考え、600÷8×10＝750。
性能が不足した時にオーバークロック余丁を残すため、1回り上の860W選定となった。
  
#### 冷却構成
  
##### Case
[Thermaltake Core W100/P100](http://jp.thermaltake.com/products-model.aspx?id=C_00002802)
上記電子部品に下記水冷パーツを全て内蔵で組み込めるケースは、ほぼ選択肢がない。
入手性を考えても、このケースかこのケースのニコイチである[Core W200/P200](http://www.thermaltake.com/products-model.aspx?id=C_00002894)しかない為、自動的にこれに決まった。
それでも組んでみて四苦八苦する為、万が一Deep Learning用Machineを製造販売する事があるなら、ケースは独自設計したものを製造したい。
（本格水冷を行う上で一番大切なのは、きちんとしたケースを利用できるかどうかだと思う）
またラジエターまで含め内蔵にこだわった理由は、外的要因による故障を出来る限り避ける為。
  
  
##### Water Cooling
  
###### Water blocks
[EK-FC1080 GTX Ti](https://www.ekwb.com/news/ek-releasing-full-cover-water-blocks-nvidia-gtx-1080-ti-graphics-cards/) x4
GPUが決定したため、自動的に採用
バックパネルが現在2枚しか手に入らない事が悔やまれる。
  
###### Reservoir & Pump 
[EK Water Blocks EK-XRES 140 Revo D5 PWM](https://www.ekwb.com/shop/ek-xres-140-revo-d5-pwm-incl-pump)
[EK WaterBlocks EK-XTOP Revo D5 PWM](https://www.ekwb.com/shop/ek-xtop-revo-d5-pwm-incl-pump)
4発分のGPUを冷却するにあたり、冷却能力を上げる為にポンプを直列にする事にした。
どちらの製品も本格水冷では定番。
  
###### Radiator
[Black Ice Nemesis 420GTX](http://www.oliospec.com/shopdetail/000000000978/16/page1/order/)
[Black Ice Nemesis 480GTX](http://www.oliospec.com/shop/shopdetail.html?brandcode=000000000965&search=480&sort=) x2
ラジエターには本当に迷った。
その中で、自作PC水冷界の雄[オリオスペック](http://www.oliospec.com)さんに相談して420GTXと480GTXで決定。
してたのだけど、さらにGPUを2発積む事になり、480GTXを急遽追加。
これだけあればオーバークロックも視野に入れられるのではないかと思っているが、それは運用フェーズに入ってからのお楽しみ。
これで足りなければ、天板に560GTXを追加する事を考えている。

次回記事は、水冷化にあたっての経路設計についてを記載します。