実行プログラムと拡張機能

ローカルAIにNVIDIA GPUとCUDAは必須?

CUDAのインストールを案内されたら、まずアプリが本当に必要としているか確認しましょう。

ローカル言語モデルアプリで文書を要約しようとしたら、設定にCPU1しか表示されないとします。この場合、先にCUDA2 Toolkitを入れるのではなく、アプリが対応するGPU3と実行経路を確認しましょう。完成済みのアプリは必要な構成要素を同梱していることがあり、Toolkitが不要な場合もあります。自分でPyTorch4を入れるならCUDA対応ビルドと互換ドライバーを確認し、CUDAコードをコンパイルするならToolkitが必要になることがあります。NVIDIA GPUがなくても、CPU、MacのMetal5、AMD向けROCm6・Vulkan、ブラウザー上のローカルWebGPU7に対応するアプリで実行できます。

実行条件と要点
  • アプリ、フレームワーク、CUDA Toolkit、ドライバーは役割が異なり、アプリの利用とCUDA開発では必要なインストールが違います。
  • nvidia-smiが示すCUDA対応レベル、nvccが示すToolkitのバージョン、フレームワークのランタイムはそれぞれ異なる場合があります。
  • MacやAMDの環境はCUDA以外のバックエンドを使います。GPUを認識できても、モデル全体がVRAMに収まることやすべての演算に対応することは保証されません。

文書アプリにCPUしか表示されないとき

文書を要約するためにローカル言語モデルアプリを開くと、実行デバイスにCPUしか表示されません。CUDAがなければノートPCのグラフィックス機能を使えないのでしょうか。まず、そのアプリがどのGPUと実行方式に対応しているか確認します。CUDAはNVIDIA GPU向けの経路です。アプリの実行とCUDAコードの開発では必要な構成が異なります。

このガイドでは、社内文書の要約を例にします。アプリにCUDAの表示がない、またはCPUと表示されても、それだけでToolkitを入れる必要はありません。公式案内で対応デバイスとGPU設定を調べ、設定画面やログに選択されたデバイスが表示されるか確認します。アプリがCUDAに対応しているかと、PCにCUDA開発ツールが入っているかは別々の確認事項です。

明るい色の画面のモニター、グラフィックカードを搭載したデスクトップ、閉じた工具箱が置かれた机
インストール済みアプリは独自ランタイムを使うことがあり、CUDA Toolkitは主にCUDAコードのビルド時に必要です。

アプリにCUDA関連の構成が必要な場合を見分ける

文書要約アプリではモデルを読み込み、実行デバイスを選べます。Ollamaのようなツールやデスクトップアプリは、必要なライブラリを同梱または内部管理することがあります。プロジェクトのセットアップ案内に従いましょう。アプリを使うだけなら、CUDA Toolkitを別途入れなくてよい構成も多くあります。

自作のPyTorchコードで文書を処理する場合は、必要な構成が異なります。PyTorch公式選択ツールでOS、インストール方法、言語、計算プラットフォームを選ぶと、その組み合わせ向けのコマンドが表示されます。パッケージにCUDAランタイム8ライブラリが含まれ、システムToolkitが不要な場合もありますが、ドライバーとPyTorch CUDAビルドがGPUとOSに対応している必要があります。

CUDAコードのコンパイルやCUDA拡張モジュールのビルドには、CUDA Toolkitが必要な場合があります。Toolkit内のnvccがCUDA C/C++コードをコンパイルします。NVIDIAドライバーはOSからGPUを認識し、CUDA処理を実行できるようにします。アプリがGPUを認識しないときは、Toolkitを追加する前にドライバーとデバイス認識を確認してください。

各コマンドが示す値は異なります。nvidia-smiのCUDA Versionは通常ドライバーの対応水準、nvcc --versionはPATH上にある開発Toolkitのコンパイラー版です。PyTorchパッケージ内のCUDAランタイムはさらに異なることがあります。数値が違うときは各ツールが何を示しているか確認し、差だけでインストール失敗と判断しないでください。

CUDAアプリは、深層学習向けのcuDNNや線形代数向けのcuBLASなど、用途に応じたライブラリを使います。必要なライブラリの連携は通常フレームワークやアプリが担います。そのため文書要約アプリを使う人はアプリの案内に従えばよく、GPUソフトウェアを開発する人はCUDA-Xの構成要素も調べることがあります。関連資料は全体像の参考にし、GPUの対応状況はアプリのサポート表で確認してください。

アプリがGPUを使っているか、どこで確認できますか

アプリのデバイス一覧にGPUが表示されても、文書要約のすべてがGPUで処理されるとは限りません。アプリがそのGPUバックエンドとモデル形式に対応している必要があります。一部のアプリはモデルの一部の層だけをGPUに置き、残りをCPUで処理します。GPUオフロード9の設定を確認し、ログにデバイスや配置した層の情報がある場合は、同じ要約処理の記録を見てください。

モデルファイルのサイズだけでは、GPUにどれだけ載るか分かりません。VRAM10には重みに加えて、会話コンテキスト用のKVキャッシュ11や実行バッファーも必要です。容量が足りないと、アプリが一部をシステムRAM12やCPUに移し、応答時間や同時処理数が変わることがあります。アプリログでモデルの配置と残りメモリーを確認してください。

GPUが認識されても、モデルのすべての演算に対応しているとは限りません。GPU世代とCompute Capability、OS、ドライバー、アプリのビルド、モデルのデータ型やカーネルが合う必要があります。古いGPUでは新機能や一部の精度演算を使えない場合があります。NVIDIAの互換性案内で最低ドライバーと機能制限を確認し、アプリの対応表で使用GPUとモデルを照らし合わせてください。

デスクトップGPUの横にモデル相当のブロックが積まれ、一部だけがカードの近くに収まる様子
GPUを認識できても、モデル、コンテキスト、ランタイムがすべてVRAMに収まるとは限りません。

このPCに合うローカル実行経路を選ぶ

この文書アプリは、NVIDIA CUDAに対応しないノートPCでも動く場合があります。AMD GPUなら、そのカードとOSに対応するROCm、Vulkanなどのバックエンドがアプリにあるか確認します。AMD GPUがあればROCmが使えるとは限りません。対応GPU世代、モデル、OS、ドライバーはアプリごとに異なり、同じアプリでもバックエンドによって機能が変わることがあります。

Apple Silicon MacもCUDAを実行しません。MacにCUDA Toolkitを入れてもCUDA用PCにはなりません。Macでローカルモデルを動かすなら、MetalやApple Silicon向けのMLX13などに対応するアプリを確認します。CUDA専用ライブラリを開発するには、そのライブラリがサポートするNVIDIA GPUとOSの構成が必要です。

NVIDIA GPUがなくても、CPU、Apple SiliconのMetal、AMD向けバックエンド、ブラウザー内のローカルWebGPUで実行できます。ただしブラウザーアプリが必ずローカル計算とは限りません。モデル計算をリモートサーバーへ送るサービスでは、自分のPC上で実行していません。CPUでは大きなモデルや長いコンテキストに時間がかかることがあるため、アプリの対応モデルと目的の作業を先に照らし合わせましょう。

異なる計算経路を持つGPU搭載デスクトップ2台とノートPC
ローカルモデルは複数の計算バックエンドを使えます。CUDAはNVIDIA GPU向けの経路です。

公式案内と小さな要約処理で確認する

文書アプリの公式対応表で、OS、GPUモデル、バックエンド、最低ドライバーを確認します。ノートPC用GPUは似た名前のデスクトップカードと電力やメモリー構成が異なる場合があるため、実際のノートPCの仕様と照らし合わせてください。モデルカードの推奨仕様はアプリの対応表の代わりにはなりません。

CUDAが必要なNVIDIAアプリでは、まずnvidia-smiでドライバーがGPUを認識しているか確認し、アプリの案内に従います。OSからカードが見えない場合は、アプリのパッケージを変える前にドライバーやシステム設定を直します。PyTorchを自分で入れるときは、公式選択ツールで現在の環境に合うコマンドを取得してください。古い記事の固定cuXXX URLはPythonやドライバーの条件に合わないことがあります。

最後に小さなタスクで実行経路を確認します。アプリのデバイス情報、フレームワークのCUDA利用可否、タスク中のGPU使用状況を合わせて見ると、インストール済みである状態と実際にGPUで計算している状態を区別しやすくなります。短い処理では使用率が低く表示される場合があり、VRAM使用量だけでもGPU計算の証明にはなりません。フレームワークの診断とアプリのログを合わせて読みます。

要約結果を見てソフトウェアや機器を選ぶ

アプリがGPUを認識し、同じ文書を問題なく要約できるなら、CUDA Toolkitを追加する必要はありません。アプリがCUDAを要求し、GPUやドライバーが対応条件を満たさない場合は、そのアプリの案内に沿って環境を準備します。PyTorch開発では公式選択ツールでフレームワークとドライバーを選び、CUDAコードをコンパイルするときにToolkitとnvccを用意します。

要約速度に問題がなく、アプリで必要なモデルを動かせるなら、今の機器を使い続けられます。必要なGPU経路にアプリが対応していない、またはモデルとコンテキストがメモリーを超えて作業できない場合は、アプリの対応条件を確認してから機器の変更を比較しましょう。CUDAの案内だけではGPUやToolkitを購入する理由になりません。

用語の注釈

  1. CPU — コンピューターで汎用のプログラム命令を実行する中央処理装置です。AI処理ではGPUなど他のプロセッサーと役割を分けることがあります。

    本文に戻る
  2. CUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。

    本文に戻る
  3. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  4. PyTorch — AIモデルを作成・実行するソフトウェアフレームワークです。モデルと合わせて、対応するPyTorchの版やハードウェアも確認します。

    本文に戻る
  5. Metal — Apple機器でグラフィックスやGPUの並列計算を実行する低水準の技術です。モデルを選んで会話するアプリそのものではありません。

    本文に戻る
  6. ROCm — AMD GPUでAIや高性能計算を実行するソフトウェア基盤です。対応状況はGPUだけでなく、OS・ドライバー・フレームワークの版の組み合わせで確認します。

    本文に戻る
  7. WebGPU — ウェブブラウザーでグラフィックスや汎用GPU計算を行うための標準APIです。対応機能はブラウザーや端末によって異なることがあります。

    本文に戻る
  8. ランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあり、GPUランタイムライブラリと完成したサービングアプリは別の構成要素です。

    本文に戻る
  9. オフロード — 容量が足りないとき、モデルデータの一部をGPUメモリからシステムRAMやストレージへ移して処理する方法です。データ転送が追加されます。

    本文に戻る
  10. VRAM — グラフィックカードのGPUが使うメモリです。モデルの重みや計算途中の値を置き、システムRAMとは区別されます。

    本文に戻る
  11. KVキャッシュ — 過去トークンのAttention用キー・バリューを保存し、後続トークン生成で再利用するメモリです。容量はコンテキスト長やバッチサイズで変わります。

    本文に戻る
  12. システムRAM — プログラムの実行中にデータを一時保存するシステムメモリです。ストレージや独立GPUのVRAMとは異なります。

    本文に戻る
  13. MLX — Appleが開発する機械学習フレームワークです。Apple siliconでは統合メモリとMetalを活用し、別途Linux向けの実行経路も提供します。対応モデルや機能はMLXを使うツールごとに異なります。

    本文に戻る