RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
一. 报错:RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
二. 原因:
使用的 PyTorch 版本和 NVIDIA RTX 4090 的 CUDA 支持不匹配。RTX 4090 需要较新的 CUDA 版本(至少 CUDA 11.8 )。以下是解决步骤:
-
检查 CUDA 版本:在终端运行以下命令,查看你安装的 CUDA 版本是否支持 RTX 4090:
nvcc --version
-
更新 PyTorch:确保你使用的 PyTorch 版本支持 RTX 4090 的 CUDA 架构(sm_89)。可以用以下命令安装支持 CUDA 11.8 或更高版本的 PyTorch:
如果使用 CUDA 11.8 及以上版本:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
-
更新 cuDNN:错误信息中提到了 cuDNN 算法问题。你需要确保 cuDNN 版本与 CUDA 版本匹配。可以通过包管理器安装或从 NVIDIA 官网下载并更新。
-
重新编译 PyTorch(如果需要):如果你使用的是自定义编译的 PyTorch 或特定的二进制文件,可能需要重新编译 PyTorch,并确保支持 CUDA 11.8 以上版本。
三. 我的解决:
torch版本1.10.2适合什么版本的cuda ?
ChatGPT 说:
PyTorch 1.10.2 支持的 CUDA 版本主要有以下几种:
- CUDA 10.2
- CUDA 11.3
你可以根据你的系统中安装的 CUDA 版本选择对应的 PyTorch 版本。要查看适合的版本并进行安装,可以通过以下方式操作:
- 在 PyTorch 官网 上选择合适的版本和 CUDA 版本进行安装。
例如,使用 pip
安装 PyTorch 1.10.2 与 CUDA 11.3 对应的版本:
pip install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f https://download.pytorch.org/whl/torch_stable.html
或者使用 conda
安装 PyTorch 1.10.2 与 CUDA 11.3 对应的版本:
conda install pytorch==1.10.2 torchvision==0.11.3 torchaudio==0.10.2 cudatoolkit=11.3 -c pytorch
如果你需要与 CUDA 10.2 兼容的版本,也可以替换相应的 CUDA 版本号。
我用了:
conda install pytorch==1.10.2 torchvision==0.11.3 torchaudio==0.10.2 cudatoolkit=11.3 -c pytorch
四. 而后出现张量不匹配问题,继续改张量某一维度的大小,例如
if short_range8.shape[4] < long_range1.shape[4]:
diff = long_range1.shape[4] - short_range8.shape[4]
short_range8 = F.pad(short_range8, (0, diff))
elif short_range8.shape[4] > long_range1.shape[4]:
diff = short_range8.shape[4] - long_range1.shape[4]
long_range1 = F.pad(long_range1, (0, diff))