この記事って何?
新しいNVIDIAのグラフィックボードも出て、自宅に機械学習用のPCを組むかーと考えている全国5090万人の機械学習ビギナーに向けて、ハード面での落とし穴について共有します
書いた人
2020年にGeForce RTX 3090にて機械学習用の自作PCを組みました。
おおよその構成は以下の通りです
- CPU: Ryzen 9 3900X
- RAM: DDR4 64GB
- GPU: GeForce RTX 3090 24GB
- HDD: SATA 6TB + 4TB
- SSD: SATA 2TB
- PU: Corsair 950W
忙しい人向けの要約
やめとけ、おとなしくGCPとか使った方が幸せになれる
どうしても組みたい人向け
- SSDはM2ではなくSATA 2.5インチタイプを使用せよ
- 常にPCケースのサイドカバーを開けよ
何をやってたか・やらかしたか
kaggleのコンペティションで1回40時間ほどLLMのLoRAを学習させるタスクを実行させていました
が、熱暴走を起こしOSの入っているSSDを2回も壊す羽目になりました
得た教養
SSDはM2ではなくSATAを使用せよ
M2はマザーボードのPCI Expressポートの近くに設置されていることが多く、私が使用しているM/BではM2の上にPCI Express 16バスが来るためまんま上にグラボが乗る構成となっていました。
この状態で2時間ほどの機械学習を行った時点でM2 SSDの温度が80度を超えてしまい故障、データ復旧不可能状態となりました
M2は小型でデータ転送速度が速いという点で昨今のゲーミングPCで広く利用されていますが機械学習においては物理的に距離を置ける2.5インチベイに組み込むタイプを使用したほうが良いと思います
常にPCケースのサイドカバーを開けよ
○○90ぐらいのグラボであれば大体はファンが3つついており、場合によっては水冷を利用できることもあるでしょう。
基本的に利用率が100%の状態でもグラボから熱を冷却という点については問題ないと考えています
ボトルネックとなるのはグラボから外に出した排気がPCケース内にとどまりその中で温度が一気に上がってしまうパターンです。グラボの冷却効率が下がってしまったり、SSDの故障につながったりします。
機械学習を始めて18時間程度たった段階でグラボがオーバーヒートして強制終了したり、別の学習で26時間程度たった後にPCケース内がずっと70度を推移していたことがありました。その時はSATAでつないでいたSSDがやはりダメージを負ってしまいシステムが不安定になり最後は故障してしまう事態となりました。(幸いにもこのときはバックアップを取る猶予があったのが救いです…)
このパターンではPCケースに熱が出てしまう点がボトルネックなのでPCのサイドカバーを開けてその部分を取り除いてやることが大事になります。
なお、ケースを開けた時点でとんでもなくうるさいのでPCの設置場所を寝室にしない方がいいです(1敗)
グラボの状態を設定せよ
NVIDIAのグラボを使う場合はnvidia-smi
というツールを導入し状態を管理できるようにしましょう。
nvidia-smiではシステムベースの使用量・温度・消費電力を監視できます
PS C:\Users\ikaros> nvidia-smi
Mon Mar 31 12:37:25 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.94 Driver Version: 560.94 CUDA Version: 12.6 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 WDDM | 00000000:07:00.0 On | N/A |
| 43% 56C P8 36W / 350W | 4547MiB / 24576MiB | 29% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
また管理者権限にて-lgc
(lock gpu clock)オプションで動作周波数を固定にすることもできます。
寝てるときや不在にしているときに、安定稼働させたい場合有用です。
PS C:\WINDOWS\system32> nvidia-smi -lgc 1155
GPU clocks set to "(gpuClkMin 1155, gpuClkMax 1155)" for GPU 00000000:07:00.0
All done.
リセットは-rgc
オプションを使います
PS C:\WINDOWS\system32> nvidia-smi -rgc
All done.