ディープラーニングをやろう!と思っても専用マシンを探すと100万円前後。中身を見ると無駄が多い。そこで市販パーツを使って安く作る方法をご紹介する。
ディープラーニングPCを自作するメリット
ディープラーニングをやるために100万円の設備PCを導入するとどうなるか。AIを計算するハードは日進月歩なので、2~3年で大幅に性能が向上した新製品が出る。企業などで設備導入してしまうと簡単に更新できないから、古いものを使い続けることになってしまう。
PCはいろいろなパーツで構成され、耐用年数は次のようである(私の主観)。
GPU 2~3年
CPU、マザー 5~6年
メモリ (マザーの規格次第)
電源 10年
ケース 10年以上
GPUのサイクルが最も短い。陳腐化する一部のために全体を買い替えるのは勿体ない。設備のGPUを自己責任でアップグレードする手もあるが、リスクがあるし互換性の問題からいずれ限界が来る。
そこで、バラバラのパーツを組み合わせて自作する。この場合、陳腐化した部分だけアップグレードすればよいので、更新にお金がかからない。毎年少ない予算で最新の状態を維持することが可能。ディープラーニングPCを自作するメリットがここにある。
クラウドサービスではダメか
常に最新の実行環境をキープする他の方法に、アマゾンAWSなどのクラウドサービスを利用するやり方がある。豊富な計算資源が使えるが、企業で使うと落とし穴がある。プロキシが邪魔をして繋げなかったり、データのアップロードやダウンロードに時間がかかって使い勝手が悪い。
会社によっては一人が帯域を占有しないよう制限をかけている場合がある。長時間大量のデータを送受信することになって「何をしておる!」と言われることも。
クラウドサービスが有効なのは、ローカルマシンでは間に合わない(4台以上のGPUを使う)膨大な計算を仕方なくやる用途。企業の場合は、プロキシや帯域制限が無いことも必要。それ以外は、やはり手元にマシンを置いて使うのがいいと思う。
GPUの選び方
2022年年末から2023年にかけての候補は次の通り。今回はNVLinkの付かないローエンドのモデルを除いた。それと、これまで業務用で主流だったQuadroはRTX Aシリーズに置き換わる流れのため、Quadroのラインナップを消した。
表1 ディープラーニング用GPUの候補(2024年4月調べ)
CUDAコア (Tensorコア) |
メモリ | 消費電力(W) | NVLink | 価格の目安 | |
RTX A6000 | 10752 (336) |
48GB | 300 | 〇 | 80万円 |
RTX A5500 | 10240 (320) |
24GB | 230 | 〇 | 52万円 |
RTX A5000 | 8192 (256) |
24GB | 230 | 〇 | 29万円 |
RTX A4500 | 7168 (224) |
20GB | 200 | 〇 | 24万円 |
RTX4090 (内排気のみ) |
16384 (512) |
24GB | 850 | × | 33万円 |
RTX4080SUPER おすすめ! (内排気のみ) |
10240 (836) |
16GB | 320 | × | 18万円 |
RTX4080 (内排気のみ) |
9278 (304) |
16GB | 320 | × | 17万円 |
RTX3090Ti (内排気のみ) |
10752 (336) |
24GB | 450 | 〇 | 21万円 |
RTX3090 (内排気のみ) |
10496 (328) |
24GB | 350 | 〇 | 21万円 |
基本的に、計算速度は「コア数」と「メモリ容量」で決まる。メモリ容量は多いほどバッチサイズ(一度に計算するデータの数)を増やせる。物体認識の学習では最低10GBいる。
NVLinkは複数のGPUを接続して計算能力を高める機能。2枚挿し以上で使う場合は対応機種を選びたい。
22年末にRTX4090が発売され、コア数だけ見ると最強たがNVLinkに対応していないほか、消費電力がべらぼうに高い。これは1枚使用に限定されるだろう。
画像生成はRTX4080SUPER。メモリが少ないがTensorコアが多くなっている。ただし3スロットモデルが多く、2枚挿しするなら2.5スロットの商品を選ぶ必要がある。大規模言語モデル(LLM)はメモリの多いRTX3090のコスパが良い。だだし在庫が枯渇しつつあり今後は中古を探すことになるだろう。
GPUは何枚あればよいか
性能を追求すると枚数は多いほど良いが、PCの実装は4枚が限界である。複数のGPUがあると並列計算させたり、1つずつ個別に計算を走らせるマルチJobができるようになる(学習に使うソフトによって出来ない場合がある)。
マルチJob
GPUを複数積むメリットはマルチJobにある。ハイパーパラメーターの調整など、いろいろ条件を変えて答えを見つたい場面では並行して複数計算できるメリットは大きい。GPUが2枚あると仕事の効率が単純に2倍になる。4枚あれば4倍になると考えていい。
並列計算
NVLinkを使って複数のGPUを同時に使う方法。小規模な計算やバッチサイズの指定によっては、逆に遅くなってしまうとがある。2枚使ったからといって、必ずしも計算速度が2倍になるわけではない。
GPUが3枚以上の構成は不可能ではないが、後述する通り発熱、コストが上がると共に、様々な制約が出現して構成難度があがる。仕事で使うディープラーニングマシンの最適解は、2枚である。
GPUの排気について
GPUの放熱形態には、大きなファンが沢山ついた内排気のタイプと、シロッコファンが付いた外排気のタイプがある。前者はPCの内部に熱を放出し、後者はケースの外に排出する。内排気はケースの冷却を強化する前提で2枚が限界とみておきたい。
写真は内排気モデルの例。3枚以上のGPUをケースに収める場合は外排気モデルを使う必要がある。
写真は外排気のGPUを4枚実装した例。GPU間の隙間が数ミリしかない。吸気の圧損が増えて冷却能力が落ち温度が90℃近くまであがってしまい、1枚当たりの能力が落ちる。外排気でもGPUは3枚が現実的とみられる。
CPUはCoreiシリーズで十分
Xeonを使うとマザーが高価になり、システムの値段がハネあがる。GPUを使ったディープラーニングではCPUはほとんど貢献しないので、i7かi9で十分である。
Scikit-learnなどGPUを利用できない機械学習ツールではCPUの性能がモノをいう。巨大なデータを並列計算させる際はできるだけ多くのコア(スレッド)を搭載したCorei9から選ぶといい。
メインメモリは32GBで十分
学習ソフトにもよるが、ディープラーニングでは重い学習を実行させても8GBを超えることはほとんどない。とりあえず16GBみておけば十分。Windowsベースの学習ツール(Darknet)を使うと20GB超えることがあるので、32GB積んでおくとよい。
マザーボードの選び方
GPU2枚までなら、2つPCIe×16スロットが付いたごく普通のATXマザーから選べる。ゲーム用に大量に作られている為、値段も安く豊富な商品から選べる。
3枚になると選択肢が減り、4枚になるとかなり限られて値段も高い。例えばASUSのWSシリーズがある。仕事に使うディープラーニングマシンは、GPU2枚で計画するのが良い。
NVLinkの注意
これは複数のGPUを1枚のように使うために用意された機能。マザー側がSLIに対応していないとNVLinkが使えないので、この機能を使いたい場合は、必ずSLIに対応したマザーを選ぶ。すると必然的にCPUはインテル系になる。
NVLinkを実際に利用するためには後述するNVLinkブリッジが必要。
GPU4枚挿しの注意
GPU4枚使うと一番下がUSBやフロントパネルコネクタと干渉する。ここはAINEXのコネクタ延長ケーブルの頭を短く切ったものを作り、延長する必要がある。
AINEX EX-004 の加工前(左)と加工後(右)の写真。穴にピンを刺して線を抜き、上から2mmくらいカッターナイフで切る。
最初から高さの低い低背型の延長ケーブルがあればよいが、無いので作るしかない。
ちなみにEVGAのマザーは、コネクタのほとんどがL型になっていて干渉の問題が生じない作り。業務用のGPU4枚刺し可能なマシンのマザーは、このような特殊品が使われている。国内販売はなくメーカー直販か米アマゾンから購入となる。
電源の選び方
電源容量は、GPU消費電力×枚数+250W(CPUその他の基礎代謝分)必要。消費電力の高いGPUには補助電源コード(6+2pinのダブル)がGPUの枚数分必要なことに注意。これら条件を満たす候補に次がある。
GPU2~3枚に対応する候補
Corsair HX1000i Corsair HX1200i Corsair HX1500i
GPU4枚に対応する候補
Corsair AX1600i
Corsairの電源。スペック以上に効率が良く、低負荷時だとほとんど熱くならない(ファンも回らない)。AX1600iは電源投入時にファンが一定時間フル回転する。
AX1600iに付属するケーブル。4GPUに十分対応できるものが付属している。
このクラスの電源は候補が限られてくる。コストを抑えようと思って安いものを選ぶとファンから異音が出たり、発熱が多かったり、付属ケーブルの品質が悪いなど、いろんな問題に当たる。Corsairが最も無難な選択肢としてお勧めできる。
ケースの選び方
GPU2枚挿しまでは普通のPC自作と変わらないが、GPUは長さ260㎜を超えることが多いので奥行に注意。E-ATXに対応したケースを選べば安心。
3枚以上挿す場合は最下段のGPUと電源との間に空間が必要。XL-ATXに対応したケースが要るが、選択肢が少ない。業務用ではキューブタイプのCorsair Carbite Air 540 が使われるので、候補に入れるといい。
冷却強化のためケースにはファンを増設できるが、外排気のGPUを使う前提なら買ってきたものがそのまま使える(標準で付いているファンだけでOK)。
<参考>
フォームファクターの寸法は幅×横で示されている。幅がマザーの縦方向、横がマザーの奥行方向の寸法に該当するので注意。
記憶デバイスの構成
ディープラーニングの環境構築は試行錯誤の繰り返しになるため、OSをクリーンインストールした環境がいくつも必要になる。そこで、buntuやWindowsをSSDにインストールして、リムーバブルケースを使って差し替える形にする。
写真はリムーバブルケースの例(オウルテックOWL-IE5CB)。スイッチが付いているので、2台マウントすればドライブを出し入れしなくても環境のチェンジが可能。
SSDの容量は240GBあれば十分。複数の環境をスイッチして使うことになるので、容量より数が必要である。OSのインストールにSwap領域は不要。メインメモリ16GB積んでいれば必要ない。
バックアップ&レストアできるソフトを導入すると、環境のコピーや復元が容易になる。私はparagon社製の製品[2]を使っている。
データ領域は、HDDでext4とNTFSの2つ用意しておく。基本的にext4を使い、NTFSはWindowsとの共用に使う。
NVLinkブリッジの注意点
GPUを2枚以上使う場合はNVLinkブリッジを追加する。幅がいろいろあるのでよく調べて買うこと。4枚挿しでは2slot、2枚挿しでは大抵3slotか、4slotのどちらかになる。市販のNVLinkブリッジは2枚結合しかないから、並列計算はGPU2枚単位となる。
メーカーによって表記がマチマチなので注意。
2slot=0slot Spacing =40mm
3slot=1slot Spacing =60mm
4slot=2slot Spacing =80mm
需要が少ないパーツのため、一度品薄になると入手困難になる。モノがある時に買っておくことが重要。
ソフトのインストール
基本的に以下の流れになる。
1.Ubuntu[1]のインストール
2.GPUドライバのインストール
3.ライブラリ、ソフトのインストール
ここまでやれば、市販のマシンを買った場合と変わらない。
簡単に見えるが、この手順の実行には根気が要る。試行錯誤とOSインストールからのやり直しが繰り返し発生すると思う。上述した「テスト用」ドライブを利用してトライして、うまくいく方法が見つかったらそれを完成用ドライブで実行し活用していく。
DIGITSはDockerを使うと簡単に入るが、実行速度がかなり落ちる。ここは何としても、ローカル環境にゼロから入れたい。
このような作業を自分でできない人がインストール済みマシンを買ったところで使いこなすことはできない。ゼロからインストールできる力を、ぜひ養ってほしい。
<関連記事>
人工知能(AI)って何やねん!?~人工知能を一番わかりやすく説明する
OpenGLが速いグラボの選び方~ハイエンドGTXはローエンドのQuadroより遅い!?
CPUに付いている古いグリスの落とし方~エタノールは間違いだった!
放熱だけでグリスを選ぶのは間違い!~CPUとクーラーの隙間も検証
あなたの知らないPCファンの選び方~風速計で適正動作を確認する
PCケースの選び方~スイッチ、エアフロー、構造など見るべきポイントを徹底解説!
<参考文献>
1.Ubuntu 20.04 LTS 日本語 Remix
2.paragon社製の製品