はじめに
想定するのはせいぜいGPU~2枚で完結するようなタワーマシンの構成。NVLinkとか知らない。
仕事で機械学習用マシンの選定とかやってるけど、もし特に縛りなくぼくのかんがえたさいきょうのGPUマシンを買えるならどんな構成にしたいか考えてみた。
とはいえ、予算無限ならDGX2とかを買えという話になるので、なるだけコストパフォーマンス重視の構成とするものとする。不要なところはなるべく切り詰める。
ディープラーニングといっても使うライブラリとかで必要スペックは大きく変わるんでそのへんのツッコミは勘弁
各パーツの選定
CPU
Core i7 10700あたりがいいと思う。もしくは世代違いの9700、9700K、11700でもよい。
今ならRyzenにしたいところなのだが、ディープラーニング用といえばLinuxで、Linuxとzen系CPUの組み合わせはちょくちょく問題が報告されている(systemdでの起動不能問題、WSLの起動不能問題など)。
また、ディープラーニングだと結構ハード依存問題も何かと起きやすい。そのため確実性重視でIntel CPUとした。しかし、最近はまず問題おきることもないだろうから、Rynze7もありだと思う。
ディープラーニングではGPUでの処理がメインであり、そこまでCPU性能は必要ない場合が多い。i5でも十分かもしれないが、1~2万をケチるのもあれなので、余裕をもたせつつコスパの良いi7のチョイスとなる。
ストレージ
でかいストレージ1つだと運用楽だよね、ということで、NVMeのSSDx2のRAID1がいいと思う。SSDの故障なんて稀だし、さほど重要なサーバーでないならRAIDなし運用でいいかも。
システムは小容量SSD、データは大容量HDDという構成も考えられるが、そもそも大容量の学習データを高速に読み込む必要があるし、どういったデータをSSDに置くかの検討も大変なので、多少コストはかかっても大容量SSDのみとしたほうが良いと思う。それでも足りなければNASを使うのがいいのでは。
必要容量はケースバイケースだが、画像や動画まで使うなら学習データも学習済みモデルも大容量となるし、GPUサーバー構築は割と手間のかかる作業なので、余裕をもたせたほうがいいと思う。
というわけで、NVMeの2TB SSDがいい。今現在で選ぶなら、候補は以下になると思う。
- WD Black SN850(2TB)・・・5万以上するが性能は最強。PCIe4なので、CPUがCore iならGen11でないと性能が発揮できない。金に糸目をつけないなら。
- Corsair Force MP510(2TB)・・・3.5万円とPCIe3.0の上限速度が出るSSDとしては安価。PCIe4の7GB/sの性能が活きる場面はそう多くないだろうし、こちらのほうがコスパは良い。
- WD Blue SN550(2TB)・・・2.6万とNVMe SSDで最低価格帯。金がないならこれとかでもいいが、上とさほど価格差はない。ヒートシンクなしで運用できるくらい低発熱なのがメリット。
GPU
GPUの性能が低くてもいつかプログラムは実行完了するが、GPUメモリが足りないとそもそもプログラムが実行できなかったり、バッチサイズを上げられず時間がかかる。というわけで、GPUメモリ容量は特に大事かと思う。
今の所問題なくディープラーニング用ライブラリが走るのはNVIDIAのGPUだけなのでRADEONは対象外。
残念ながら今の所GeForce系は供給不足で実際に入手にかなり困難が伴うのだが・・・。
NVIDIA A40
今の所メモリ容量は最大のGPU(48GB)。上位のA100の半額でメモリ容量も大きいのでコスパは良いかと思う。とはいえ60万ほどする。
GeForce RTX3090
GPUメモリは24GB。3080はメモリ容量が10GBと大幅に減るので、高価ではあるがこちらをおすすめしたい。現在32万前後。
それ以外
なるべくGPUメモリの多いものを。GeForce RTX3080, RTX2080ti、Tesla T4など。
その他
ディープラーニング用ライブラリを使っていてそれほどメインメモリを消費したことがないので、メインメモリは最低16GB、できれば32GB程度あれば十分かと思う。
長時間重いタスクを回すことも多いので、冷却はなるべく重視したほうが良い。
電源についても同様に安定性の高いものを。
コメント