zoukankan      html  css  js  c++  java
  • Win10 下安装 CUDA Toolkit ( for PyTorch )

      在选择安装哪一个版本的 CUDA Toolkit (工具包)之前,需要注意,待安装的 CUDA 开发工具包的版本不是越高越好。而是,首先要考虑安装 CUDA 开发工具包是否与本机的 CUDA 驱动版本兼容,即 CUDA 工具包的版本号不超过本机已安装的 CUDA 驱动版本号;其次, 还需要考虑安装 CUDA 开发工具包的目的是什么?是进行 C++ 开发,还是进行 Python 开发。如果基于 C++ 开发,则在兼容本机 CUDA 驱动版本的条件下,可以安装尽可能高版本;如果基于 Python 开发,则需根据所采用的深度学习框架(如 PytorchTensorFlow)支持的 CUDA 版本,选择可支持的最新版本安装。

    下面以我的个人电脑安装 CUDA Toolkit 为例,进行说明。个人电脑具体显卡和软件环境配置如下:

    • 硬件配置:NVIDIA GeForce RTX 2070 with Max-Q Design
    • 软件配置:Windows 10 +  anaconda + pytorch 

    如果需要安装 TensorFlow GPU 版本,则需要查看 Windows 从源码构建TensorFlow 网页,确认官方支持的 Python 版本和相应的 CUDA 版本,具体如下图(2020.12.20 截取)所示

     从图中可以看出,目前 TensorFlow 官方对 CUDA 版本支持最高为 10.1 ,支持的 Python 版本最高为 3.8。相对于 Pytorch 来说,落后一个版本,Pytorch 官方已经可以支持 CUDA 11.0,Python 版本可以支持 3.9,更多参见 https://pytorch.org/get-started/locally/ 。所以,如果只使用 Tensorflow ,推荐安装 CUDA Toolkit 10.1 ,以减少一些环境配置上的麻烦。

    具体步骤

    首先查看本机 CUDA 驱动版本,安装与其兼容的 CUDA Toolkit 版本,然后安装相应的 cuDNN,最后安装 PyTorch。

    1)查看本机 CUDA 驱动版本,确认 CUDA Toolkit 的兼容版本。

    在桌面上,右键,选择 “NVIDIA 控制面板”,然后,在 “NVIDIA 控制面板” 窗口中,单击 左下角的 “系统信息” ,即可显示 CUDA 驱动版本信息,如下图所示

    查看网上文档 CUDA Toolkit Release Note 中的 "Table 2. CUDA Toolkit and Compatible Driver Versions" 以确认本机CUDA驱动版本(上图中的 "驱动程序版本:452.41")是否与当前最新的 CUDA Toolkit 版本兼容,其内容截图如下:

    从上图中,可以看出,与本机 CUDA 驱动程序版本 452.41 兼容的最新的 CUDA Toolkit 版本为 CUDA 11.0.3 Update 1 ( >= 451.82 ),因此,在 CUDA Toolkit 历史版本 中,选择 CUDA 11.0.3 Update 1 进行下载。

    2)安装 CUDA 11.0.3 Update 1

    选择 “自定义(C)”,只安装 CUDA 开发套装部分,其他的不安装。如下图所示:

     

     

     单击 “下一步(N)” 进行安装。

    默认安装目录为 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0,示例程序安装目录为 C:ProgramDataNVIDIA CorporationCUDA Samplesv11.0。

    安装完成后,在命令行窗口(cmd)中,输入 nvcc -V 命令进行测试,然后转到 demo_suite 目录,运行demo程序 deviceQuery.exe 和 bandwidthTest.exe,如下所示:

    C:Usersklchang>nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2020 NVIDIA Corporation
    Built on Thu_Jun_11_22:26:48_Pacific_Daylight_Time_2020
    Cuda compilation tools, release 11.0, V11.0.194
    Build cuda_11.0_bu.relgpu_drvr445TC445_37.28540450_0
    
    cd C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0extrasdemo_suite
    deviceQuery.exe
    bandwidthTest.exe

    3)下载并安装与 CUDA 11.0 版本兼容的 cuDNN

    cuDNN 的全称为 NVIDIA CUDA® Deep Neural Network library,是 NVIDIA 专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计的基于 GPU 的加速库。下载 cuDNN 需要注册,官网下载地址为 https://developer.nvidia.com/cudnn 。本人下载的 cuDNN 版本为 cudnn-11.0-windows-x64-v8.0.5.39.zip。

    首先解压 cudnn-11.0-windows-x64-v8.0.5.39.zip,解压后的文件目录如下所示

     然后,将所有内容复制到 cuda 11.0 安装目录,即可完成 cuDNN 的安装,如下图所示

     

     4)conda 安装 pytorch

    anaconda 环境中,Python版本为 3.8.3,根据官网安装指南 ,如下图所示:

     conda 安装 pytorch gpu 1.7.1 稳定版本的命令如下:

    conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch

     安装完成后,测试 pytorch gpu。若安装成功,则打印输出 True,具体测试程序,如下所示:

    import torch
    print(torch.cuda.is_available())

    问题与解决

    问题 1:

    WARNING conda.gateways.disk.delete:unlink_or_rename_to_trash(139): Could not remove or rename C:Usersklchanganaconda3pkgspytorch-1.7.0-py3.8_cuda110_cudnn8_0Libsite-packages orchlibcaffe2_detectron_ops_gpu.dll.  Please remove this file manually (you may need to reboot to free file handles)

     

     InvalidArchiveError('Error with archive C:\Users\klchang\anaconda3\pkgs\pytorch-1.7.0-py3.8_cuda110_cudnn8_0.tar.bz2.  You probably need to delete and re-download or re-create this file.  Message from libarchive was: Could not unlink')

    解决方法:

    手动删除警告信息中提及的文件

    C:Usersklchanganaconda3pkgspytorch-1.7.0-py3.8_cuda110_cudnn8_0Libsite-packages orchlibcaffe2_detectron_ops_gpu.dll

    即可。

    问题 2:

    导入torch模块时,出现“找不到指定模块”错误,如下图所示:

    解决方法:

    从提示中的

    https://aka.ms/vs/16/release/vc_redist.x64.exe

    下载 Visual C++ 2015 – 2019 Redistributable(x64).exe,安装后,需要重启电脑,如下图所示。

    参考资料

    [1] Windows系统查看CUDA版本. https://cloud.tencent.com/developer/article/1351824

    [2] win10 安装CUDA 11.0后再安装GPU版torch的踩坑记录. https://blog.csdn.net/qq_29831163/article/details/108402722

  • 相关阅读:
    docker安装RabbitMQ
    通过Docker安装配置Mysql主从节点
    Docker基本使用命令
    flask接收post提交的json数据并保存至数据库
    前端面经
    js 仿朋友圈的时间显示 刚刚 几天前
    外部div宽度不是100%时,css设置图片宽高相等
    Vue项目图片剪切上传——vue-cropper的使用(二)
    Vue项目图片剪切上传——vue-cropper的使用
    vuex
  • 原文地址:https://www.cnblogs.com/klchang/p/14161002.html
Copyright © 2011-2022 走看看