当前位置 博文首页 > 解决PyTorch与CUDA版本不匹配的问题

    解决PyTorch与CUDA版本不匹配的问题

    作者:v-space 时间:2021-05-08 18:26

    1.CUDA驱动和CUDA Toolkit对应版本

    表一:CUDA驱动及CUDA Toolkit最高对应版本

    最新可查阅官方文档

    注:驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。

    2.CUDA Toolkit版本及其可用PyTorch对应版本(参考官网)

    表二:CUDA Toolkit版本及可用PyTorch对应关系

    CUDAToolkit版本 可用PyTorch版本
    7.5 0.4.1 ,0.3.0, 0.2.0,0.1.12-0.1.6
    8.0 1.1.0,1.0.0 ,0.4.1
    9.0 1.1.0,1.0.1, 1.0.0,0.4.1
    9.2 1.7.1,1.7.0,1.6.0,1.5.1,1.5.0,1.4.0,1.2.0,0.4.1
    10.0 1.2.0,1.1.0,1.0.1 ,1.0.0
    10.1 1.7.1,1.7.0,1.6.0,1.5.1,1.5.0, 1.4.0,1.3.0
    10.2 1.7.1,1.7.0,1.6.0,1.5.1,1.5.0
    11.0 1.7.1,1.7.0
    11.1 1.8.0

    注:虽有的卡驱动更新至较新版本,且CUDA Toolkit及PyTorch也可对应更新至新版本。但有的对应安装包无法使用,有可能是由于卡太旧的原因。

    3.安装指导

    在安装时会同时安装CUDA Toolkit以及PyTorch,这是我们要知道的。

    步骤一:

    使用nvidia-smi查询驱动版本:

    如图中Driver Version所示,该卡目前的驱动版本为384.81。

    步骤二:

    此处提供三种方法可供选择。

    (1)指定CUDA Toolkit版本

    根据表一查询到可安装的CUDA Toolkit版本,384.81对应最高的CUDA Toolkit版本为9.0。

    运行conda install pytorch cudatoolkit=9.0 -c pytorch即可。

    此方法指定CUDA Toolkit版本后,conda会自动匹配到合适版本的PyTorch。

    (2)指定PyTorch版本

    根据表一查询到可安装的CUDA Toolkit版本,再根据表二查询到合适版本的PyTorch。384.81对应最高的CUDA Toolkit版本为9.0,9.0可安装PyTorch1.1.0版本。

    运行conda install pytorch=1.1.0 -c pytorch即可。

    此方法指定PyTorch版本后,conda会自动匹配到合适版本的CUDA Toolkit。

    (3)同时指定CUDA Toolkit版本和PyTorch(推荐)

    根据表一查询到可安装的CUDA Toolkit版本,根据表二查询到合适版本的PyTorch。

    运行conda install pytorch=1.1.0 cudatoolkit=9.0 -c pytorch即可。

    注:PyTorch1.8.0和1.0.0以前版本使用conda安装时命令有些许不同,具体可查看官网。

    4.验证安装是否成功

    #使用python运行
    import torch
    print(torch.__version__)
    print(torch.cuda.is_available())

    卸载当前版本PyTorch:

    conda uninstall pytorch

    补充:查看PyTorch的版本及CUDA和cuDNN版本

    检查PyTorch版本

    torch.version # PyTorch version
    torch.version.cuda # Corresponding CUDA version
    torch.backends.cudnn.version() # Corresponding cuDNN version
    torch.cuda.get_device_name(0) # GPU type
    

    更新PyTorch

    conda update pytorch torchvision -c pytorch

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了