欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

最编程 2024-10-14 19:16:49
...

一. 报错:RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

二. 原因:

使用的 PyTorch 版本和 NVIDIA RTX 4090 的 CUDA 支持不匹配。RTX 4090 需要较新的 CUDA 版本(至少 CUDA 11.8 )。以下是解决步骤:

  1. 检查 CUDA 版本:在终端运行以下命令,查看你安装的 CUDA 版本是否支持 RTX 4090:

    nvcc --version

  2. 更新 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

  3. 更新 cuDNN:错误信息中提到了 cuDNN 算法问题。你需要确保 cuDNN 版本与 CUDA 版本匹配。可以通过包管理器安装或从 NVIDIA 官网下载并更新。

  4. 重新编译 PyTorch(如果需要):如果你使用的是自定义编译的 PyTorch 或特定的二进制文件,可能需要重新编译 PyTorch,并确保支持 CUDA 11.8 以上版本。

三.  我的解决:

torch版本1.10.2适合什么版本的cuda ?

ChatGPT 说:

PyTorch 1.10.2 支持的 CUDA 版本主要有以下几种:

  1. CUDA 10.2
  2. CUDA 11.3

你可以根据你的系统中安装的 CUDA 版本选择对应的 PyTorch 版本。要查看适合的版本并进行安装,可以通过以下方式操作:

  1. 在 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))