#181 NVIDIA帝国の歩き方②|実務で迷わないための三大原則
みなさん、こんにちは。
たのしいこと研究所・所長の赤塚です。
前回は、NVIDIAの世界を
「ハードウェア」「ソフトウェア」「性能・容量」という
3つのレイヤーに整理しました。
「CUDAはソフトウェア」
「RTXはハードウェア」
「VRAMは容量」
というように、頭の中の交通整理ができましたでしょうか?
しかし、地図を手に入れただけでは目的地にはたどり着けません。
実際に機械学習を始めると、次々と疑問が噴出。
「結局、どのGPUを買えばいいのか?」
「CUDAは何を選べばいいのか?」
「なぜ私のGPUをPyTorchは見つけてくれないのか?」

今回は、そんな初心者が最初につまずきやすいポイントを
「実務における三大原則」としてまとめてみます。
NVIDIA帝国をさまよう際の、羅針盤となることを期待して。
第一法則:グラフィックボードは「速さ」より「広さ」で選ぶ

GPUを選ぶとき、性能比較の記事を目にして、
「TOPSが高い!」
「AI性能が2倍!」
などの数字にうなずきます。
うなずいているけど、結局どっちが良いのかわからない。
もちろん、高速なのは良いことです。
しかし、個人で機械学習を始める場合、
最初に見るべき数字はそこではありません。
VRAM。
これこそが、最初に見るべき数字です。
VRAMは、GPUが仕事をするための作業机。

どれだけ優秀な人でも、A4一枚分しかない机の上で、
A0サイズの設計図を広げることはできません。
同じように、AIモデルがVRAMに載りきらなければ、計算は始まらない。
表示されるのは、おなじみの
Out of Memory(OOM)という無情なメッセージ。
ここで重要なのは、
TOPSが低ければ「時間がかかる」
VRAMが足りなければ「動かない」
という違いです。
遅いことは待てば解決しますが、
載らないものは、いつまで待っても載りません。

だから個人開発では、
「速いGPU」より、「広いGPU」を選ぶ。
これが最初の鉄則です。
現在であれば、できればVRAM 12GB以上、
余裕があれば16GBあると安心して遊べます。
第二法則:新しいGPUには新しいCUDAが必要になる

GPUを買い替えたのに動かない。
この原因で意外と多いのが「CUDAの世代」です。
RTXシリーズは、新しい世代になるたびに内部構造も進化しています。
そのため、新しいGPUを使うには、
それを理解できる新しいCUDAが必要。
新しい家電を何十年前の説明書では動かせない。
これと同じ。
当然、お互いに話がかみ合いません。

最近のPyTorchでは、
CUDA関連ライブラリも一緒にインストールされるので、
昔ほど神経質になる必要はありません。
とはいえ、
「どのCUDA版を選ぶか」という選択肢が表示されたら、
できるだけ新しい対応版を選ぶ。
これが基本です。
初心者が「とりあえず古いものなら安全だろう」と考えると、
かえって遠回りになることがあります。
新しいGPUには、新しい環境。
この組み合わせを意識するだけで、多くのトラブルを避けられます。
第三法則:動かないときは慌てずに上から確認する

環境構築で最も焦る瞬間。
それがこの一行。
torch.cuda.is_available()実行すると返ってきたのは、
FalseGPUを買った。
ドライバーも入れた。
PyTorchもインストールした。
それなのに、「いません」と言われる。
「GPUが壊れたのでは・・・?」
きっと違います。
ほとんどの場合、原因はもっと基本的なところにあります。
確認する順番はシンプル。

① NVIDIAドライバーは最新か
まず見るべきが土台。
ここが正しく入っていなければ、その上はすべて動きません。
② PyTorchはGPU対応版をインストールしたか
CPU版を入れてしまうと、GPUは最初から使われません。
意外と多い落とし穴です。
③ CUDAの組み合わせは適切か
新しいGPUに対して古すぎる環境を選んでいないか確認します。
この3つを上から順番に確認するだけで、多くの問題は解決します。
環境構築は難しそうに見えますが、
実際には「どこから確認するか」が分かっているだけで、
気持ちがだいぶ楽になります。
第二部のまとめ
機械学習を始めると、
どうしても「最新」「最速」「最高性能」という言葉に目が行きがち。
もちろん、高性能なGPUは魅力的です。
しかし実際の開発で、
それ以上に大切なのは「ちゃんと動くこと」
VRAMが足りること。
GPUとCUDAの世代が合っていること。
そして、環境構築で困ったときに確認する順番を知っていること。
この3つを押さえているだけで、初心者のつまずきは驚くほど減ります。
今回の研究を通して感じたのは、
機械学習は「難しい技術」というより、
「役割を整理する技術」なのかもしれない、ということ。

CPU・GPU・CUDA・PyTorch・・・
それぞれが自分の仕事を理解しているからこそ、
大規模なAIは動いています。
私たち人間も同じです。
新しいことを学ぶときは、
一つひとつを個別に暗記しようとするのではなく、
「これは何の役割なのか」という地図が頭の中にできると、
不思議なくらい景色が変わります。

今回作ったNVIDIAの地図が、
これから機械学習の世界へ踏み出す誰かにとって、
迷子にならないための案内板になれば嬉しく思います。

