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を気づかずにインストールしてしまっている場合があります。
![](https://assets.st-note.com/img/1709429460934-ViM9eOkZTe.png?width=1200)
インストールしたPyTorchのバージョンは、”print(torch.__version__)”で確認することができます。2.1.0+cu121のように+cudaバージョンが表示されていれば、CUDA有効のPyTorchをインストールできています。
さらに"print(torch.cuda.is_available())”で、CUDAが利用可能か確認できます。
import torch
print(torch.__version__)
print(torch.cuda.is_available())
![](https://assets.st-note.com/img/1709430234306-CXWRiMEgMC.png)
できていない場合は+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をインストールしたほうが無難です。
![](https://assets.st-note.com/img/1709430861896-VoR26PxlPC.png)
コマンドプロンプトで"nvcc -V"を実行して、インストールしたCUDA ToolKitのバージョンを確認できます。
![](https://assets.st-note.com/img/1736912200-9KACB4xZhv7PVbEiNfUgm2Ld.png)
3. GPUドライバーは利用したいCUDA ToolKitバージョン以上ですか?
コマンドプロンプトで"nvidia-smi"を実行すると、GPUドライバーが対応している最大のCUDAバージョンが表示されます。(CUDA ToolKitのバージョンとは異なることに注意してください!)
以下の例では、12.7が表示されていますが、利用したいCUDA ToolKitバージョンである12.1以上のため問題なしという意味になります。
![](https://assets.st-note.com/img/1736912277-fphLP5zin90XYlFCMTH1y6rb.png?width=1200)
例えばこのときに、CUDA ToolKit未満のバージョン(今回でいうと12.1未満)が表示される場合は、GPUドライバーを最新にアップデートする必要があります!GPUドライバーのアップデートは通常通りこちらから可能です。通常最新のドライバーをインストールすれば、最新のCUDA ToolKitに対応できるはずです。(バージョンhttps://www.nvidia.co.jp/Download/index.aspx?lang=jp
![](https://assets.st-note.com/img/1709432649897-akUEHEUgxz.png?width=1200)
その他
ここまでの手順で、PyTorchでCUDAが利用可能なはずです。
冒頭で紹介しましたが、CUDAが利用可能かはtorch.cuda.is_available()で確認できます。
![](https://assets.st-note.com/img/1709433519574-T2bEF2wtbO.png)
また、私が調べていた時にcuDNNが必要という情報もありましたが、現在のPyTorchにcuDNNは不要です。
どうしてもうまく環境構築できない人へ
Google colabratoryを使いましょう。
pip installすら不要で、すぐにCUDA有効のPyTorchを利用できます!
課金なしでもGPUが利用できます。(時間制限あり)
![](https://assets.st-note.com/img/1709434009674-SgK3mJTTiI.png)
ランタイム設定でGPUを有効にしておく必要があります。
![](https://assets.st-note.com/img/1709434112840-uTocbSOQBn.png)
![](https://assets.st-note.com/img/1709433923156-legtqsI7rw.png)
アドバイスや質問等がありましたら、ぜひコメントからお知らせください。