← ホームへ戻る
LESSON 028AI開発12 分

CUDAとは?AI LibraryがNVIDIA GPUの並列計算を使うためのSoftware Platform

CUDAはNVIDIAのParallel Computing Platformです。第028回ではGPU、Driver、CUDA Toolkit、Runtime、Library、Version Compatibilityを整理します。

今日のたとえ大量の計算Workerへ同じ種類の仕事を並列に配るための共通の指示System

CPUは幅広い仕事をこなすGeneral Purpose Processorです。

一方、GPUは似た計算を大量に並列実行するのが得意です。

Deep LearningではMatrixやTensor計算を大量に行うため、GPUがTrainingやInferenceで重要になりました。

NVIDIA GPUをSoftwareから使うための中心的なEcosystemが**Compute Unified Device Architecture (CUDA)**です。

CUDAは一つのInstallerだけではない

「CUDAをInstallする」と一言で言われますが、実際のStackには、

など複数のLayerがあります。

Version Errorが分かりにくいのは、この複数LayerにCompatibilityがあるからです。

GPUは何を高速化する?

Neural NetworkではTensorという多次元の数値Arrayに対して大量の計算をします。

GPUは同じ種類の数値計算を並列に実行でき、CUDA LibraryにはAI Workload向けに最適化された処理があります。

PythonでPyTorchを書いていても、Pythonが一個ずつ掛け算しているわけではありません。

重いTensor OperationはFrameworkから高速なGPU KernelへDispatchされます。

これは第026回で説明した「Pythonが高速Libraryの操作Layerになる」という話につながります。

DriverとToolkitは同じではない

GPU DriverはOSやApplicationがHardwareと通信するために必要です。

CUDA ToolkitにはCompiler、Header、Development Libraryなど、CUDA SoftwareをBuildするためのToolが入ります。

PrebuiltされたPyTorch PackageなどはCompatibleなRuntime Libraryを含むことがあり、Full Toolkitを別途入れなくても動く場合があります。

RequirementはPackageごとに確認します。

なぜCUDA Versionが複数表示される?

Commandによって別のLayerのVersionを表示するからです。

Driverが対応できるCUDA範囲、PyTorchがBuildされたCUDA Version、Local Toolkit Versionは必ずしも同じ数字ではありません。

Errorが出たときは全部を適当にReinstallせず、どのLayerのCompatibility問題か確認します。

CUDAがあってもVRAMは増えない

CUDAで計算は高速化できますが、GPU Memoryが増えるわけではありません。

ModelがVRAMへ入らないなら、第025回で説明した小さいModel、Quantization、Offload、Context削減などが必要です。

CUDAはNVIDIA向け

CUDAはNVIDIAのPlatformです。他社GPUには別のSoftware Stackがあります。

「CUDA Required」と書かれたProjectは、多くの場合NVIDIA GPU向け実装を前提にしています。

今日の一文

CUDAは、AI LibraryなどがNVIDIA GPU上でParallel Computationを効率よく実行するためのSoftware Platformです。

次の第029回ではModelやDatasetが集まるHugging Faceへ進みます。

参考資料

たとえは直感をつかむ入口です。正式な定義や技術詳細は原典をご確認ください。

  1. NVIDIA CUDA Programming Guide ↗
  2. NVIDIA CUDA Toolkit Documentation ↗
  3. PyTorch — CUDA semantics ↗
← 前の章027CLI・Git・GitHubとは?AI Projectで何度も出てくる3つの別のTool
次の章 →029Hugging Faceとは?Model、Dataset、Demo、AI Libraryが集まるEcosystem
COMMUNITY

コメント

質問、感想、補足したいことがあれば、ここに残せます。

0 / 1200