yag's blog

Twitter以上Zenn以下なことを書く場所

ディープラーニング開発用のそこそこハイエンドな自作PCを作った

最近個人プロジェクトでディープラーニングを使った開発をしており、今まではGPUを利用する際はColabやGCPGPUインスタンスを利用していたが、以下のような理由により少々窮屈になってきた。

  • Colab Pro/Pro
    • これまでのセッションが維持される限りの使い放題から、マシンスペック等に応じたユニット数の積算で月単位の利用可能が変わるクレジット制になった
    • デフォルトのPythonのバージョンが3.7と明らかに古く、手元での開発を古い方に寄せるのが面倒で、かつColab側をセッションごとにバージョンアップするのが大変
    • Google Driveをマウントした開発が可能ではあるものの、頻繁に更新するコードの管理に向いておらず、Colabから呼び出すときに意図したデータを読みこんでいるか常に不安になる
  • GCP
    • マシンスペックが自由自在でsshもできて起動/終了が容易かつ時間単位のコスト支払いのみで利用できる点は素晴らしい
    • 使った分だけ支払うというのは便利な一方、いろんな物事に追われる感覚がある。時間単位の生産性を最大化したいと考え、逆に進捗のないバグ取りや無駄な学習などに対する心理的損失が大きい
    • クラウドというのは、あくまでスケールアウト用途に使うのが一番便利かつお得という結論 (個人的な感想)

そこで、気兼ねなく使えるディープラーニング開発用の自作PCを自作することにした。正直なところ自分が満足するスペックのPCを作る際の金銭的な支出はかなり大きく、クラウドなら何十,何百時間分に相当するだろうかと考えて頭を悩ませたものの、モノとして残るという心理的な安心感(?)や、プロジェクトの進捗の無さを紛らわすために何か手を動かしたいという現実逃避から、そういった決断をするに至った。

スペック選定

どんなPCを作ろうかと考えたときに、ディープラーニングの学習に耐えうるスペックというのはあらかた目星がついていたので、それまで利用していたGCPインスタンスのスペックを比較対象としつつ、以下のようなことを考えた。

  • CPU
    • ある程度普通のもので良い。コア数が多いと嬉しいかなくらい
  • GPU
    • GPUディープラーニングの学習の要なので、値段が高くても後々後悔しないように良いものを買いたい
    • 少なくとも全体的にT4同程度かそれ以上の性能がほしい
    • 物理的なサイズが大きすぎるとPCケースに入り切らないことがあるので、ある程度小さいものが良い
  • メモリ
    • 32GBだと結構厳しいときがあるので、64GBは欲しい
  • その他
    • 光らないでいい、なるべく静かでいてほしい
    • OSはとりあえずUbuntuを入れて、ゲームがしたくなったらWindowsは後々準備すれば良い

BTOや既製品も考えたが、妥協できない点とできる点が通常のゲーマーとはかけ離れていてカスタマイズに不安があること、なるべくはやく手に入れてたいということで、自作を選択。

一番検討が必要なGPUは、GPUメモリを基準に考えるとGeForce RTX 30シリーズの中では3090および3090Ti以外は選択肢に乗せられず、自ずと選択肢が絞られてしまった。4090のスペックの高さには心を惹かれてしまったが、入手性や金額を差し置いてあの物理的な大きさに圧倒されて候補から除外。他にはNVIDIA RTX Aシリーズも検討したが、入手の容易さや値段、リセールバリュー等を踏まえてこちらも候補から除外。

自作をする上で参考にした情報

私は自作PCは完全に初心者で、しかもmacOS以外の物理PCなんて15年ぶりくらいということで、構想時点では必要な知識が足りていなかった。おおよその部品の機能やスペックの情報は理解できるが、物理的な配線や製品の規格は苦手だった。事前準備としてメーカーやパーツ選び、組み上げ方などの学習は、基本的にYouTubeを活用した。一昔前なら書店で雑誌を買ってきて読み込むということをしていただろうと考えると、動画で情報が溢れていて便利な世の中だと思う。

各パーツの価格は基本的にAmazonやオンラインPCショップの情報を纏めて最安値を狙おうとはしたものの、経験の少ない自作初心者が複雑なことをして落とし穴にハマることを避けたく、また短期間で組み上げたいという理由から、秋葉原の物理店舗の数件を比較して安めのところでまとめて購入することにした。

購入したもの

主要なパーツ名と金額は以下の通り。キーボードとマウスは家にあったものを流用した。

name type Price
Fractal Design Define 7 Compact Black ケース ¥11,591
MSI B550 GAMING PLUS マザーボード ¥21,780
AMD Ryzen 9 5900X CPU ¥64,800
Palit NVIDIA GeForce RTX3090 GPU ¥173,800
Crucial DDR4 3200MHz 32GB x 2 メモリ ¥27,030
Western Digital SN770 1TB SSD ¥11,080
Antec NeoECO 850W PLATINUM 電源 ¥18,000
NZXT KRAKEN X63 CPUクーラー ¥19,800

その他グリスや細かいものを含めて、全体で35万円程度となった。まあまあな値段だと思いつつ、1世代前のハイエンドな構成が比較的安価で組めたので上出来ではないかと思う。

ちなみに、ケース以外のパーツは秋葉原に行って1回で全部購入したが、両手にはちきれんばかりの手提げを持って帰るのが本当に大変だったので、一部オンラインで買うか車を利用したほうが良かったかもしれない。

組み上げ

組み上げた結果はこんな感じ。仮組みもせず一発本番だったが特に失敗もなく、5,6時間程度で組み上げることができた。マザーボードにファンやケース部品の配線をするところで手こずったのは事前に予想していた通り。マザーボードをケースに付けた状態でケーブル取り回しのためにコネクタを何度か抜き差ししたが、作業しづらい狭さと暗さの状態での作業はピン折れしそうで危なかったなと後々思った。

おわりに

今回は、ディープラーニングの開発をするための自作PCを素人の自分が構築した流れを紹介した。実際にGPUで学習を回すまでのソフトウェアの準備もなかなか大変ではあったが、それはまた別の投稿で紹介したい。だいぶ楽になったとはいえ、人類はいつになったらCUDAのインストールに頭を悩ませなければいけないのか……。

いよいよこれで逃げられなくなってきたので、サンクコスト化しないように頑張ってディープラーニングを向き合いたいところ。