見出し画像

#180 NVIDIA帝国の歩き方①|機械学習初心者が迷子にならないために

みなさん、こんにちは。
たのしいこと研究所・所長の赤塚です。

新しい分野を勉強するとき、
一番困るのは「知らない言葉」がたくさん出てくることです。

機械学習も例外ではありません。

RTXがおすすめ」
CUDAを入れましょう」
cuDNNが必要」
VRAMは16GBあると安心」
Tensorコアが高速」
TOPSが大幅に向上」

「みなさん、日本語で会話していただけませんか」

調べれば調べるほど、新しい単語が顔を出す。

RTXは製品名なのか。
CUDAはソフトなのか。
VRAMはメモリなのか。
TensorコアはCPUみたいなものなのか。
TOPSは単位なのか性能なのか。

全部違う種類の言葉なのに、
同じテンションで説明されるので、初心者の頭の中は見事に混乱。

しかし、あることに気付いてから一気に景色が変わりました。

「単語を覚える」のではなく、
「分類する」ことが大切だった
のです。

今回は、私自身が迷子になりながら作った
「NVIDIA周辺技術の地図」を紹介します。


NVIDIAの世界は3つのレイヤーでできている

NVIDIAの世界に登場する言葉は、大きく3つのレイヤーに分類できます。

  1. ハードウェア

  2. ソフトウェア

  3. 性能・容量

これをごちゃ混ぜに覚えようとするから混乱します。

逆に、この3つに分類してしまえば、
それぞれの役割が自然と見えてきます。

全体像を図にすると、こんなイメージ。

【レイヤー①:ソフトウェア】

PyTorch
   ↓
CUDA
   ↓
cuDNN
   ↓
NVIDIAドライバー
   ↓

【レイヤー②:ハードウェア】

RTXグラフィックボード(GPU)

   ↓

【レイヤー③:性能・容量】

VRAM(どれだけデータを置けるか)
Tensorコア(AI専用の計算回路)
TOPS(どれだけ速く計算できるか)

それぞれがまったく違う役割を持っています。

では、上から順番に見ていきましょう。


レイヤー① ソフトウェア

最初はソフトウェア。
機械学習をする人が直接触るのは、多くの場合PythonとPyTorch

私たちは、
「AIを学習させたい」とプログラムを書くだけ。

ところがGPUは、
人間の書いたPythonをそのまま理解できません。

そこで登場するのが、CUDAです。

CUDAは、GPUに対して

「この計算をGPUでお願いします」

と伝えるための仕組み。

もともとGPUはゲームなどの映像処理が本業。

しかし、CUDAの登場によって、
その膨大な計算能力をAIや科学計算にも使えるようになりました。

GPUは映像専門だった時代から、
数学が得意な万能計算機へと進化したわけです。

CUDA(Compute Unified Device Architecture)は、NVIDIAが開発した、GPUをゲームや映像処理以外の一般的な計算(汎用並列計算)に利用するためのプラットフォームおよびプログラミングモデル

CUDA厳密解説

さらに、その上にはcuDNNがあります。

これはディープラーニング専用に最適化された高速ライブラリ

cuDNN(CUDA Deep Neural Network)は、NVIDIAが提供する、
ディープラーニング(深層学習)の演算をGPU上で高速化するための専用ライブラリ

cuDNN厳密解説

たとえるなら、
高速道路の上にさらに「AI専用レーン」が作られたようなイメージ。

そして一番下では、
NVIDIAドライバーがWindowsとGPUをつないでいます。

このドライバーが正常に動いていなければ、
PyTorchはGPUを認識できません。

つまり、
PyTorchからGPUまでには、何人もの「橋渡し役」がいる。

これがソフトウェアレイヤーです。

なお、現在のPyTorchは非常に親切です。

以前はCUDAを自分でインストールして設定し、環境変数を調整し……
という初心者泣かせの儀式がありました。

現在はPyTorchのインストールコマンドを選ぶだけで、
必要なCUDA関連ライブラリまでまとめて入れてくれることがほとんど。

機械学習を始めるハードルはずいぶん低くなっています。


レイヤー② ハードウェア

次は実際に計算を担当するハードウェアです。

ここで登場するのがGPU

GPUというと「グラフィックボード」という印象がありますが、
最近ではAI計算機としての存在感の方が圧倒的になりつつあります。

個人向けでは、おなじみのGeForce。
そしてその主力が、RTXシリーズです。

RTX 4060。
RTX 4070。
RTX 4090。

数字が大きいほど高性能になります。

一方、ニュースなどで見かけるH100やB200は、
企業のデータセンターで使われる巨大なAI専用GPUです。

価格も桁違い。

個人が「ちょっと試してみようかな」と買うような製品ではありません。

ChatGPTのような巨大AIは、
こうした産業用GPUを大量に並べて学習しています。

つまり、

RTXは私たちが使う実験室。
H100やB200は巨大な研究施設。

そんなイメージを持つと分かりやすいでしょう。


レイヤー③ 性能・容量

最後は性能を見るための指標。

ここで特に重要なのが、VRAMTOPSです。

まずVRAM。
これはGPU専用のメモリ
イメージとしては、GPUが仕事をするための作業机

VRAM(ビデオメモリ)とは、
画像や映像の処理を専門に行うGPUが使用する専用のメモリです。
PCのメインメモリ(RAM)とは異なり、
高解像度のテクスチャやAIの処理データをGPUへ超高速で転送することで、
ゲームの滑らかな描画や動画編集、AI生成を支えます。

VRAM厳密解説

AIモデルや画像データなどは、まずこの机の上に全部広げます。

ところが机が小さいと、資料を置ききれません
すると仕事は始まる前に中止になります。

これが有名な
Out of Memory(OOM)エラー

「計算が遅い」のではありません。

計算を始めることすらできない。

だからVRAMは、機械学習では最重要と言われます。

一方、TensorコアはAI計算専用の演算回路。

そしてTOPSは、そのTensorコアなどを使って
1秒間に何兆回計算できるかを表す性能指標です。

TOPS(Tera Operations Per Second)は、
プロセッサが1秒間に実行できる演算回数を
「兆(テラ)回」単位で表す処理能力の指標

TOPS厳密解説

つまり、

VRAMは「どれだけ仕事を載せられるか」
TOPSは「どれだけ速く仕事を終えられるか」

この2つは似ているようで、まったく別の指標です。


第一部まとめ

機械学習を始めると、
CUDAやVRAMなど、たくさんの専門用語が一気に登場します。

だから難しく感じるのは当然。

しかし今回調べて分かったのは、難しいのは単語ではありませんでした。

「種類の違う言葉が、同じ場所で説明されていること」が難しかったのです。

ハードウェアなのか。
ソフトウェアなのか。
性能指標なのか。

この3つに分類できるようになるだけで、
NVIDIAの世界は驚くほど整理されます。

地図があれば、森の中でも迷いません。

次回は、この地図を持ったまま実際の開発現場へ向かいます。

GPU選びで本当に重要なこと。

PyTorch環境構築で初心者がハマる落とし穴。

迷ったときに確認すべき「実務における三大原則」をまとめていきます。

いいなと思ったら応援しよう!

この記事が参加している募集