[DL021]Windows预览版WSL2-Ubuntu2004安装Cuda11.1及Cudnn(亲测可用、流程清晰)

1. 环境

  • Windows10_insider_preview,必须得是insider_preview版本(OS内部版本开头数字要是20150以上),要不安装好了也是检测不到GPU的,已安装WSL2下的Ubuntu20.04
  • WSL2
    • python3.8.5
    • pip 20.0.2
    • tensorflow==2.4.0

在这里插入图片描述

2. 安装步骤

2.1 驱动的安装

WSL2的Nvidia驱动安装说明

微软关于WSL安装英伟达驱动的说明:
https://docs.microsoft.com/en-us/windows/win32/direct3d12/gpu-cuda-in-wsl

  1. 前提条件:

    1. Windows OS内部版本号>20150
    2. WSL2
  2. 此网址根据显卡类型选择驱动下载,在Windows下安装

2.2 Cuda-11.1安装

编者按:官方给出的WSL安装Cuda教程给出了两种安装方式,经过亲身实践apt-get方式安装的是行不通的,因为在执行sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 /" > /etc/apt/sources.list.d/cuda.list'之后再执行apt-get的时候会报错The repository http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 is not signed以及BAG SIG错误,编者在网络搜索了很多方法(包括导入GPG公钥到keyserver.ubuntu.com等等方法)都是不可行的.

在这里插入图片描述

下文给出的是切实可行的办法,也就是通过runfile方法进行安装.

打开这个网址按照下图进行选择

在这里插入图片描述

先在shell里面切换到ubuntu的Downloads文件夹,接着在Ubuntu的Shell里面输入:

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run 
sudo sh cuda_11.1.0_455.23.05_linux.run

上面命令第一行会下载一个.run的文件到Downloads,第二行是进行安装.网络上其他教程可能会说在安装的时候不要选安装Driver的选项,但是实际操作过程中并没有让选择安装Driver的教程,猜想可能是因为cuda的版本(11.1)比较新,已经适配了WSL(毕竟在选择的网址那已经有了一个WSL-Ubuntu的选项).

安装完成之后在电脑的/usr/local目录下应该有一个cuda-11.1的文件夹(其中cuda那个是安装过程自动创建的软连接).

在这里插入图片描述

接下来还需要配置环境变量,这里如果是自己的电脑建议直接在/etc/profile里面配置,省的开机后环境变量会失效或者是从bash切换到zsh的时候导致环境变量失效(编者就是因为安装之后又嫌弃WindowsTerminal的终端太难看,又弄的zsh-ohmyzsh-powerline什么的):

 export PATH='$PATH:/usr/local/cuda-11.1/bin/:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin'
 export LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH"

完毕之后输入nvcc -V应该显示如下信息.如果没有,那就是没安装成功,卸载重装重新走一遍上面的流程.

在这里插入图片描述

2.3 Cudnn安装

说是安装实际也不是,就是下载文件然后复制到对应的cuda的文件夹就是了.

网址:https://developer.nvidia.com/rdp/cudnn-download

上面的网址需要注册成为开发者才能下载.cudnn的版本一定要和cuda的版本对应.

在这里插入图片描述

下载后得到的文件夹是cudnn-11.2-linux-x64-v8.1.0.77.arj,这里后缀名是arj,原因不详(我是在Windows下载的),但是可以直接把后缀改成tgz,之后移动到Ubuntu对应的文件夹(Windows的盘符比如说D盘在WSL-Ubuntu里面就是/mnt/d/),移动到Ubuntu的里面(此处我移动到了Ubuntu的Downloads文件夹,以下操作也是在Downloads文件夹下进行操作)就可以进行Cudnn文件的安装(其实是复制):

tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.1/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/
sudo cp /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10
sudo chmod +x /usr/local/cuda/include/cudnn.h
sudo chmod +x /usr/local/cuda/lib64/libcudnn*

这里一定要执行复制libcusolver.so.11的那行命令,不然cuda会无法正常工作报如下错误,找不到GPU.

Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: 
cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda-11.1/lib64

至此,在Windows的WSL-Ubuntu下安装Cuda以及Cudnn已结束.以下代码可以验证GPU的存在(需要已经安装tensorflow).

import tensorflow as tf
devices = tf.config.list_physical_devices()
print(devices)

输出:

[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

几处容易踩坑的地方

1 环境变量的配置

1.1 重启后nvcc -V显示comman not found怎么回事

如果是自己的电脑,建议直接将环境变量设置在/etc/profile里面,一劳永逸.也不会因为弃用bash(安装了zsh的情况下),导致~/.bashrc里面的环境变量失效.

2 Cudnn的安装

sudo cp /usr/local/cuda-11.1/lib64/libcusolver.so.11 /usr/local/cuda-11.1/lib64/libcusolver.so.10

上面这行命令可能随着安装的版本不同而改变,如果没有执行,在Jupyter里面运行下面这段代码是看不到报错的,但是就是检测不到GPU.这时候推荐在bash里面运行,就会报错缺少libcusolver.so.10等文件(这一点当初也是困扰了许久,到bash里面一运行才恍然大悟.).

import tensorflow as tf
devices = tf.config.list_physical_devices()
print(devices)
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Windows Subsystem for Linux (WSL2) 是 Windows 10 中的一项功能,它提供了一个在 Windows 上运行完整版 Linux 分区的环境。如果你想在 WSL2安装 CUDAcuDNN,这是一个通常用于深度学习的 GPU 加速库,你可以按照以下步骤操作: 1. **安装 NVIDIA GPU 驱动**: - 首先,确保你的 Windows 系统有支持 CUDA 的 NVIDIA GPU,并访问 NVIDIA 的官网下载适用于你的 GPU 和系统的最新驱动程序。 2. **启用开发者模式**: - 在设备管理器中,找到 NVIDIA GPU,右键点击选择“属性”>“高级”>“启用设备虚拟化”。 3. **安装 Ubuntu 或其他发行版**: - 从 Microsoft Store 或者通过命令行(`wsl --install -d <distro-name>`)安装 Ubuntu 或者其他你喜欢的 Linux 发行版,如 Debian 或者 CentOS。 4. **更新和安装依赖**: - 登录 WSL,运行 `sudo apt update && sudo apt upgrade` 更新系统。 - 安装 `cuda-toolkit` 和 `cudnn`,例如: ``` sudo apt install nvidia-cuda-toolkit sudo apt-get install libnvidia-cudnn-dev ``` 5. **配置环境变量**: - 需要设置 `LD_LIBRARY_PATH` 和 `CUDA_HOME` 环境变量指向正确的库目录。 6. **验证安装**: - 测试安装是否成功,可以尝试运行 `nvcc --version` 来查看 CUDA 版本,以及 `cudnn` 相关的测试工具。 **相关问题--:** 1. WSL2 支持哪些 Linux 发行版? 2. 如何在 WSL2 中查看已安装CUDA 版本? 3. 如何在 Ubuntu 中管理和更新软件包?
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值