CUDA error: no kernel image is available for execution on the device 報錯解決方法


問題描述

裝新環境默認裝了個最新的 pytroch,訓練的時候報錯。
先是顯示 RuntimeError: CUDA error: no kernel image is available for execution on the device,網上查了一圈都說是當前顯卡的算力太低,不支持高版本的 CUDA。
看了一眼顯卡:3090;看了一眼 CUDA:11.1,都沒問題。而且之前用 pytorch 也沒出現這種問題。
往上翻了一下訓練途中的 warning,看到一句:
GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
驚了,3090的卡算力都不夠了嗎?立馬檢查了一下 pytorch 版本:1.10,尋思 pytorch版本也不低啊。。。

解決方法

網上查了一圈,發現是之前卸載又安裝好幾個版本的 pytorch,導致 cuda 的配件和當前版本的 pytorch 不適配。卸載全部重來。

  1. 卸載 pytorch pip uninstall pytorch
  2. 去官網復制安裝指令。用 conda 裝。
  • 官方指令: conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
  • 其中 torchvision torchaudio 如果不是 CV 方向不需要裝;-c 表示從官網下載,巨慢,不要這個,用鏡像;cudatoolkit=11.3 表示 cuda 配件版本,就是這個不適配導致報錯,替換成你自己的版本號。
  • 最終 CUDA 11.1 版本下的安裝指令簡化為:conda install pytorch cudatoolkit=11.1 pytorch

雖然最終還是給我裝了 1.10.0 的 pytorch,但是這次能正常運行了。裝環境真是噩夢。

pytorch各版本和cuda版本對應關系

官網鏈接:https://pytorch.org/get-started/previous-versions/
食用方法:注意低版本的 pytorch 是否支持更高版本的 cuda。(高版本的pytorch一般能兼容低版本cuda)例如:你需要 1.7.0 的 pytorch,那么 cuda 只能 11.0 及以下。官方推薦的cuda版本為10.2和11.3,這兩種 cuda 支持大多數的 pytorch 版本。
(不過一般人都是根據cuda裝pytorch,誰沒事指定pytorch版本反裝cuda啊,哦是復現baseline啊,那沒事了(哭

PyTorch 版本 CUDA 環境
0.4.1、1.2.0、1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 9.2
1.2.0、1.1.0、1.0.0(1) 10.0
1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 10.1
1.5.0(1)、1.6.0、1.7.0(1)、1.8.0(1)、1.9.0、1.10.0 10.2
1.7.0(1) 11.0
1.8.0(1)、1.9.0、1.10.0 11.1
1.8.0(1)、1.9.0、1.10.0 11.3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM