type
status
date
slug
summary
tags
category
icon
password
AI summary
前提条件
- Windows 10 版本 21H2 或更高版本或者 Win 11
- NVIDIA 的显卡
- WSL 2 上安装的是 Ubuntu 20.04 或更高版本
- Windows 已经安装了 Nvidia 的驱动程序
驱动程序需要适用于 WSL,即能使用虚拟 GPU,因为在 WSL 上,使用的 CUDA 驱动程序是系统上安装的 Windows 驱动程序的一部分,目前电脑最新的驱动程序基本上都是支持的
在进行测试安装时,本地配置为 Windows 11;安装的是 WSL2,系统为 Ubuntu 22.04;Windows 已经安装最新的 Nvidia 驱动程序。
自定义安装 WSL 🌟
顺便写一下之前是如何自定义安装 WSL 的,即非 C 盘安装。
- 按照 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual 执行完步骤五(步骤三之后重启电脑)
- 在 下载发行版 这个标题下选择一个版本进行安装
- 安装之后得到的是 .appx 之类后缀的压缩包
- 解压,得到两个架构的 .appx Ubuntu
- 解压 x64 的 .appx
- 点击 ubuntu.exe 进行安装
ok,这就安装好了,适用于之前未安装过 WSL 的,如果之前通过任何方式安装过,需要将相关旧文件都删除,还挺麻烦的,删不干净安装可能会报错等!
安装 CUDA
确定支持的版本
首先在终端中输入
nvidia-smi
来获取目前显卡支持的最高 cuda 的版本,如图,目前我的电脑支持使用的最高 CUDA 版本是 12.6。nvidia-smi
命令需要在安装驱动后才能使用在 Ubuntu 上安装 NVIDIA CUDA
通常,Linux 版 CUDA 工具包会附带打包 GPU 的设备驱动程序。但在 WSL 2 上,使用的 CUDA 驱动程序是系统上安装的 Windows 驱动程序的一部分,因此必须注意不能直接使用
apt-get install cuda
的形式安装 CUDA,直接从 Ubuntu 存储库安装 CUDA 工具包软件包将导致安装 Linux NVIDIA 显卡驱动程序,这不适用于 WSL2。1- 首先删除旧的 GPG 密钥:
- 下载 CUDA 安装优先级文件:这个文件定义了 APT 包管理器在安装过程中如何为 CUDA 软件包设置优先级,以确保 CUDA 包在系统中的高优先级处理。
- 移动优先级文件到指定目录:这个目录用于存放 APT 包的优先级配置文件,确保 CUDA 包的优先级比其他包更高,避免安装其他版本时发生冲突。
- 获取 NVIDIA 的 GPG 密钥:APT 包管理器使用 GPG 公钥来验证从远程仓库下载的软件包的真实性和完整性。这里下载的是 NVIDIA 提供的公钥,保证从 NVIDIA 服务器下载的 CUDA 软件包是安全和可信的。
- 添加 CUDA 软件源到系统:添加 NVIDIA 的 CUDA 软件源到 APT 包管理器中,使得我们可以从这个源中直接安装 CUDA 相关的软件包。
- 更新 APT 包索引和安装 CUDA 工具包
首先查看目前可用的 CUDA 包的版本,然后根据之前步骤确定的系统支持的最高 CUDA 版本来确定安装的版本。
但同时也要注意,一般要求 Pytorch 支持的 CUDA 版本最好能够和安装的 CUDA 版本一致,虽然有向下兼容性,但是为了后续出现一些 bug,最好选择相同的版本。从图中可以看出目前的 Pytorch 最高仅支持到 12.4 的 CUDA,所以我们选择安装
cuda-toolkit=12.4.1-1
这里是有一些疑问的,我在进行最后一步安装的是
cuda-toolkit
,但是教程给的是 cuda
。因为之前提到 sudo apt-get install cuda
将安装整个 CUDA 软件包,其中包括 CUDA 工具包和必要的 NVIDIA 驱动程序,但是驱动是不必要的,而 cuda-toolkit
软件包专注于提供创建和构建 CUDA 应用程序所需的开发工具,包括库、头文件和其他资源,不包括驱动程序。1
但是我发现之前添加的CUDA 软件源是单独为 WSL 适配的,可以看到: compute/cuda/repos/wsl-ubuntu/x86_64/
,所以不清楚使用 apt-get install cuda
进行安装会不会产生什么影响?- 设置环境变量
编辑
~/.bashrc
,添加以下内容,保存然后执行source ~/.bashrc
- 验证安装
这个命令将显示已安装的 CUDA 编译器(
nvcc
)的版本信息。如果成功安装会看到类似如下的输出:安装 cuDNN
在安装好 CUDA 之后,通常还需要安装 cuDNN(CUDA Deep Neural Network library),特别是使用深度学习框架(如 PyTorch 或 TensorFlow)进行 GPU 加速的深度学习任务。
为什么需要安装 cuDNN?
cuDNN 是 NVIDIA 提供的一个高性能库,专门优化了深度学习的常见操作,例如卷积运算、池化、归一化和激活函数等。它在 CUDA 的基础上进一步优化了这些操作,使得深度学习框架能够更高效地使用 GPU。
- 深度学习框架的依赖:大多数深度学习框架(如 PyTorch 和 TensorFlow)都使用 cuDNN 来加速卷积神经网络等深度学习模型中的常见操作。虽然这些框架可以只使用 CUDA 进行加速,但安装 cuDNN 能够显著提升性能。
- 计算效率:cuDNN 对神经网络的操作进行了高度优化,特别是在多层卷积、RNN 等操作中,cuDNN 的性能大大优于只使用 CUDA 的实现。
下载对应版本的 cuDNN
首先访问 https://developer.nvidia.com/rdp/cudnn-archive 选择最新版本的 cuDNN
之前安装的是 12.4 版本的 CUDA,所以我们选择第一个进行安装,对于 cuDNN 安装就和普通的 Linux 安装步骤一样,不需要考虑 WSL 的特殊性了,因此我们下载 linux x86_64 的:https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz/
解压并复制相关文件到指定位置
1. 解压 .tar.xz
文件
首先需要将
.tar.xz
文件解压。假设你下载的文件名是 cudnn-linux-x86_64-<version>.tar.xz
,可以使用以下命令来解压缩文件:这会将文件解压到一个文件夹中,通常会包含
cuda/include
和 cuda/lib64
目录。2. 将 cuDNN 文件复制到 CUDA 目录
接下来,将 cuDNN 的头文件和库复制到 CUDA 安装目录中。通常 CUDA 会安装在
/usr/local/cuda/
目录下。执行以下命令:
这些命令会将解压出来的 cuDNN 文件复制到系统的 CUDA 安装目录中,确保 cuDNN 的库和头文件正确集成到 CUDA 环境中。
3. 检查 cuDNN 是否安装成功
安装完成后,你可以通过检查
cudnn_version.h
文件来确认 cuDNN 是否正确安装。执行以下命令:你应该会看到类似以下的输出,显示已安装的 cuDNN 版本号:
这个输出表明你已经成功安装了 cuDNN,并且你当前安装的版本是
8.9.7
。安装 Pytorch
如之前提到的,访问页面:https://pytorch.org/get-started/locally/,然后选择相应的选项,CUDA 版本选择之前安装的,我这里使用的是 conda,所以最终的命令如下:
可以看到这里面也有一些
torchvision
等库,可能暂时用不到,可以自行选择安装然后就是验证是否安装成功并且设置好 GPU 环境,运行以下代码即可:
总结
总的安装过程大概就是:
- 确定系统支持的最高的 CUDA 版本
- 确定目前 Pytorch 支持哪些 CUDA 的版本
- 通过官方给的 WSL 软件源,下载合适版本的 cuda-toolkit
- 找到支持选定的 CUDA 版本的 cuDNN
这只是安装方法的一种,可以参考下方的参考链接 1 和 2 使用其他方法安装,比如本地 deb 安装等。
之前的环境在另一个电脑上配置的,也是刚开始学习 DL 时配置的,后面实习、做项目用到卡也都是用的服务器,本地只适合做些小实验和用来学习,所以换新电脑后也没配。最近上人工智能攻防课,需要环境,所以打算在 WSL 中配置,因为 Linux 下写代码还是比 Windows 舒服的。前前后后找了相关文档和教程,问了 AI,总体还是顺利的,没有出现配置错误~
参考
- 作者:huhu
- 链接:https://blog.mwwlzz.top/article/wsl_pytorch
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。