見出し画像

PyTorchでCUDAが使えないときに確認すべき項目

結論から

PyTorchで利用したいCUDAバージョン≦CUDA ToolKitのバージョン≦GPUドライバーの対応CUDAバージョン
この条件を満たしていないとPyTorchでCUDAが利用できません。
どうしてもtorch.cuda.is_available()の結果がTrueにならない人を対象に、以下確認すべき項目を詳しく説明します。

1. CUDA有効バージョンのPyTorchをインストールしましたか?

単純にpip3 install torchを実行するとCUDA無効(CPU有効)のPyTorchがインストールされます。CUDA有効のPyTorchをインストールするためには、https://pytorch.org/get-started/locally/ こちらからRun this Commandをコピペしてコマンドラインに貼り付けてインストールする必要があります。特にPyCharmなどIDEを使ってPyTorchをインストールすると、CUDA無効バージョンのPyTorchを気づかずにインストールしてしまっている場合があります。

インストールしたPyTorchのバージョンは、以下のコードで確認することができます。2.1.0+cu121のように+cudaバージョンが表示されていれば、CUDA有効のPyTorchをインストールできています。

import torch

print(torch.__version__)
print(torch.cuda.is_available())
CUDA有効のPyTorchをインストールできている場合の実行結果
できていない場合は+cpuと表示されます

2. PyTorchで利用したいCUDAと同じバージョンのCUDA ToolKitをインストールしましたか?

例えば2024年3月現在のPyTorchの最新Stableバージョンは、PyTorch2.1.0+CUDA12.1です。したがって、12.1のCUDA ToolKitをPCにインストールする必要があります。CUDA Tooklitはhttps://developer.nvidia.com/cuda-toolkit-archive こちらからインストールできます。
実際のところCUDAには後方互換があるため、メジャーバージョン(今回の例では12の部分)が同じであれば、より新しいバージョンのCUDA ToolKitをインストールすれば問題なく動作します。しかし、特にこだわりがなければPyTorchと同じバージョンのToolKitをインストールしたほうが無難です。

コマンドプロンプトでnvcc -V を実行して、インストールしたCUDA ToolKitのバージョンを確認できます。

CUDA ToolKit 12.1をインストールしたときは上のように表示されます

3. GPUドライバーは利用したいCUDA ToolKitバージョン以上ですか?

コマンドプロンプトでnvidia-smiを実行すると、GPUドライバーが対応している最大のCUDAバージョンが表示されます。(CUDA ToolKitのバージョンとは異なることに注意してください!)
以下の例では、12.2が表示されていますが、利用したいCUDA ToolKitバージョンである12.1以上のため問題なしという意味になります。

例えばこのときに、CUDA ToolKit未満のバージョン(今回でいうと12.1未満)が表示される場合は、GPUドライバーを最新にアップデートする必要があります!GPUドライバーのアップデートは通常通りこちらから可能です。通常最新のドライバーをインストールすれば、最新のCUDA ToolKitに対応できるはずです。(バージョンhttps://www.nvidia.co.jp/Download/index.aspx?lang=jp

その他

ここまでの手順で、PyTorchでCUDAが利用可能なはずです。
冒頭で少し紹介しましたが、CUDAが利用可能かはtorch.cuda.is_available()で確認できます。

また、私が調べていた時にcuDNNが必要という記事がみうけられましたが、現在のPyTorchにはcuDNNのインストールは不要です。

どうしてもうまく環境構築できない人へ

Google colabratoryを使いましょう
pip installすら不要で、すぐにCUDA有効のPyTorchを利用できます!

ランタイム設定でGPUを有効にしておく必要があります。

アドバイスや質問等がありましたら、ぜひコメントからお知らせください。

この記事が気に入ったらサポートをしてみませんか?