Pytorch の一般的な問題 - cuda ランタイム エラー

1. プログラムを実行すると、「RuntimeError: cuda runtime errorr (77): an不正なメモリアクセスが発生しました」というエラーが報告されます。

解決策: コードの前に次のコマンドを追加します。

os.environ['CUDA_LAUNCH_BLOCKING'] = '1'

2. 次に、「RuntimeError: CUDA error: no kernel image is available for run on the device」というエラーが表示されます。

解決策: Python コンソールに次のテスト コードを入力します。

#1. 导入torch
import torch

# 2. 检测CUDA是否安装正确并能被Pytorch检测
torch.cuda.is_available()

#3. 查看Pytorch能不能调用cuda加速
t = torch.ones(1,1,28,28)
t = t.cuda()
t

事実は、3 番目のステップのコードが正常に実行できないことが証明されており、「RuntimeError: CUDA error: no kernel image is available for run on the device」というエラーが報告され、cuda のバージョンが GPU と一致しないことを示します。関連情報を参照する

cudaのコンピューティングパワー

 計算能力 8.6 の 3090 グラフィックス カードを使用しています。最初に torch=1.10.1 をインストールしましたが、依存する cuda は計算能力 8.6 の GPU をサポートしていないため、コードを正常に実行できません。次のコマンドに従ってトーチのバージョンを置き換え、cuda 11 に依存すると、上記のテスト コードは正常に実行できます。

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

ただし、次のエラーが表示されます。「元のエラー: ..../lib/python3.6/site-packages/cupy_backends/cuda/api/runtime.cpython-36m-x86_64-linux-gnu.so: シンボル cudaDeviceSetMemPool バージョン」 libcudart.so.11.0 がリンク時間参照を持つファイル libcudart.so.11.0 で定義されていません」

cupy が正常にインストールされていない可能性があると考えられるので、次のコマンドを入力して cupy をインストールします。

pip install cupy-cuda111
pip install --user --no-cache-dir cupy-cuda111

Cupy 8.3.0 は cupy-cuda111 と一致しません。次のコマンドを使用して cupy を再インストールします。

conda install -c conda-forge cupy cudatoolkit=11.1 cudnn cutensor nccl

ついにうまくいきました!

おすすめ

転載: blog.csdn.net/weixin_41698730/article/details/121266697