如果您买得起优质的 Nvidia 显卡(具有相当数量的 CUDA 内核),那么您可以轻松地使用您的显卡来完成此类密集型工作。
此外,如果您拥有最新的 Nvidia GPU,那么您可能已经熟悉有关图形驱动程序等的麻烦。
出于所有这些原因,我正在考虑尝试一些不同的东西:利用新的 Windows 11 操作系统来使用我的显卡的 CUDA 内核。
看了很多视频,但是尝试了很多次都无法实现,很遗憾。最新版本的 PyTorch 与 CUDA 中的 Windows 11 内核存在一些差距。尽管如此,经过大量研究后,我发现 WSL2 应该可以正常工作。
经过几天的尝试,我已经成功地设置了所有必要的东西,并且可以在我的 Windows 机器上使用我的显卡的 CUDA 内核!有趣的是,在这个过程中,你不需要下载或使用 Microsoft Visual Studio 2022 和下载巨大的 30/35GB 文件只是为了安装推荐的编译器等。
(
我的电脑规格
对于本指南,我使用了我的桌面工作站。如果您也对我用于此任务的当前规范感兴趣,请看这里:
-
处理器:Ryzen 5 3500X 6核6线程
-
内存:32GB DDR4 3200MHz(16GB + 8GB + 8GB)
-
GPU:索泰 Nvidia GeForce RTX 3050 8GB GDDR6
-
主板:技嘉B450M Aorus Elite
-
存储:技嘉 240GB SATA SSD
-
显示器:MSI Optix G24 Gaming Curved 75Hz
我将使用 Windows 11 Pro(版本 22H2)和 WSL2(当然!)。
第 1 步:确保您拥有可靠的互联网和电力
这整个过程可能会花费很多时间。因此,请确保您已正确连接到互联网并且有稳定的电力。对我来说,总共花了将近7个小时。您还需要下载一些相当大的包。
另外,从Nvidia官网下载官方驱动后,请确保您已经安装了最新的Nvidia驱动。确保您已安装 Windows 11 的所有更新。
Windows更新
第 2步:下载最新的 PowerShell
我将使用最新的 PowerShell。你可以从微软商店下载,但我会从官方网站下载它,因为商店以后可能会产生一些问题。
去官方网站。这通常会将您重定向到当时可用的最新版本的 PowerShell。对我来说,最新版本是 7.3(2023 年 5 月 24 日)。对您来说,它可能是更新版本。别担心。只需下载最新的稳定版本。
-
单击“下载 PowerShell”按钮。
下载 Powershell 按钮
2.找到最新的PowerShell win-x64.msi
。下载那个。
最新的 PowerShell msi 文件
\3. 安装过程非常简单。但我会在整个过程中指导你。双击下载的文件。然后点击Next
。
微星软件
\4. 保持原样,点击Next
。
下一步
\5. 我还是喜欢保持原样,然后单击Next
。
下一步
\6. 我还是喜欢保持原样,然后单击Next
。
下一步
\7. 点击Install
。
安装
\8. 现在点击Finish
。
结束
第 3 步:检查您的 Windows 终端
我真的很喜欢 Windows 终端,因为我可以随时切换到任何其他 WSL 操作系统(Ubuntu、Kali、Git Bash 等)。但在继续之前,我必须确保我当前的 Windows 终端是更新的终端。
-
打开Microsoft Store并搜索
Windows Terminal
.
Microsoft Store 上的 Windows 终端
\2. 单击Update
是否需要更新。
\3. 确保您已经在最新更新的 Windows 终端上。
\4. 现在打开 Windows 终端,因为我们必须先更改一些设置。点击Open Settings
。
Windows 终端设置自定义
\5. 如果您没有看到Open Settings
提示,只需单击下拉箭头,然后单击Settings
。
设置
\6. 在 中Startup
,确保默认配置文件已设置PowerShell
(我们在第 2 步中安装的新 PowerShell)。应Default terminal application
设置为Windows Terminal
。
默认启动配置
\7. 然后点击Save
退出终端。
节省
第 4 步:硬件虚拟化
为了使用 WSL,我们必须确保我们的 CPU 虚拟化已启用。您可以通过任务管理器检查状态。如果它被禁用,则确保通过 BIOS 启用虚拟化。
虚拟化
第 5 步:安装 WSL 和 Ubuntu LTS
现在我们需要安装 WSL2 和 Ubuntu LTS。
-
以管理员身份打开 Windows 终端。
以管理员身份打开终端
\2. 要安装WSL,请使用命令wsl --install
。
VMP安装
\3. 然后,它会自动安装最新的 LTS 版本的 Ubuntu。
Ubuntu安装
\4. 任务完成后,会提示您重启电脑。保存其他工作并重新启动计算机。
重启电脑
\5. 重启 PC 后,它会自动打开终端并询问您 Linux 操作系统的用户名和密码。
重启电脑后
\6. 提供用户名和密码。确保在重新输入密码时使用相同的密码!
用户名和密码
\7. 稍后,它会安装必要的组件。
完整的Ubuntu
\8. 现在,确保WSL2成为此终端中的默认 WSL。应用命令,wsl --set-default-version 2
。
WSL 2 默认
\9. 如果要检查 WSL 操作系统状态(有多少操作系统可用,有多少正在运行或停止),请使用命令wsl --list --verbose
。
操作系统状态
在这里,它告诉我在我的 WSL 版本 2 上安装了Ubuntu,它目前已停止。
\10. 但是,在 WSL 操作系统上工作后,如果要关闭操作系统,则可以使用命令wsl -t distro_name
。对我来说,它是 Ubuntu,所以我使用wsl -t Ubuntu
. t
代表这里的终止命令。
终止命令
\11. 如果你在 WSL 中有多个操作系统,并且你想运行任何特定的发行版,那么使用命令wsl --distribution distribution_name
。例如,如果我想专门运行 Ubuntu,命令将是wsl --distribution Ubuntu
. 如果你只有一个发行版,那么你根本不需要担心这个。
运行特定发行版
12.您可以简单地使用exit
从终端退出发行版。它不一定会关闭分发。您可以专门为此使用终止命令。但是这里有一些常用的命令。
经常使用的命令
\13. 安装发行版后,您还可以使用 Windows 终端的下拉菜单查看和访问该发行版。
其他发行版的下拉菜单
第 6 步:配置 Ubuntu LTS
我们现在需要更新和安装一些应用程序。
-
使用 Windows 终端内的任何方法打开 Ubuntu。您显然可以使用专用的Ubuntu 应用程序。但我总是更喜欢终端,因为我可以在这里一起使用多个不同的发行版和命令行应用程序。
启动Ubuntu
\2. 使用命令更新系统sudo apt update
。
更新
\3. 如果您在更新/升级时遇到错误,说它无法到达服务器,请使用命令更改名称服务器echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
。
\4. 更新完成后,使用 升级系统sudo apt upgrade
。
升级
升级系统
您可以使用clear
命令清除终端。
\5. CUDA与C一起工作,所以我们需要先安装gcc编译器。使用命令sudo apt install gcc --fix-missing
。
海合会
gcc 安装
完成安装
第 7 步:安装 CUDA
现在是时候从Nvidia 的官方网站安装 CUDA 了。
确保选择以下内容:
-
操作系统: Linux
-
架构:x86_64
-
发行版:WSL-Ubuntu
-
版本:2.0
-
安装程序类型:deb(本地)
英伟达——CUDA
这将提供必要的命令。
命令 CUDA
现在您的任务是在 WSL Ubuntu 终端中连续应用每个命令。确保使用第一个命令两次。它通常会在以后解决密钥环的问题。
另外,请记住,这些命令稍后可能会更改。所以请始终关注官方网站。对于本指南,我将使用我用来在我的机器中设置 CUDA 的确切命令。
-
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
第一条命令
完成之前的交易后,我再次使用相同的命令。
\2. wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
第一条命令
\3. sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
第二个命令
\4. wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
第三条命令
这通常会花费很多时间,因为它会下载一个大文件(超过 2GB 的文件大小)。
大文件
\5. sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
第 4 个命令
\6. sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
第 5 条命令
\7. 然后使用更新系统sudo apt-get update
。
更新系统
更新
\8. sudo apt-get -y install cuda
安装CUDA
完成 CUDA 安装
步骤 8:安装后
Nvidia 的官方 CUDA 安装指南告诉我们添加export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
到PATH变量。
小路
我已经cuda-12.1
根据我安装的 CUDA 版本更改了 CUDA 版本。确保对更新的 CUDA 版本执行相同的操作。
执行以下操作:
-
在 Windows 终端中打开 Ubuntu。
-
使用 转到根目录
cd ~
。然后打开bashrc
in nano 使用nano .bashrc
根
\3. 转到文件末尾并复制粘贴路径。对我来说,路径是export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
.
小路
然后用Ctrl
+X
关闭。确保使用Y
保存在同一个文件中。
\4. 要应用更改,请使用source ~/.bashrc
。您可以使用检查路径echo $PATH
。
路径检查
第 9 步:Nvidia CUDA 工具包
使用 . 安装 Nvidia Cuda 工具包sudo apt install nvidia-cuda-toolkit
。
工具包 1
工具包 2
您可以使用检查驱动程序和 CUDA 版本nvidia-smi
。
smi
另外,请确保使用nvcc -V
.
nvcc
第 9 步:确认 Python 已安装
现在,确保您的系统中安装了 Python 3。您可以使用检查版本python3 --version
。如果显示“未找到 python3”或类似内容,请安装 Python。
使用. _ _sudo apt-get install python3-pip
点安装
第 10 步:安装 PyTorch
要安装 PyTorch,请访问PyTorch 的官方网站。然后确保选择相关部分。之后,它将为您提供一个命令。您必须在 Ubuntu 终端中使用该命令。
对我来说,选择是:
-
PyTorch 构建:稳定 (2.0.1) - 确保始终选择最新的稳定版本
-
你的操作系统:Linux
-
包装:点子
-
语言:Python
-
计算机平台:CUDA 11.8 - 确保选择最新可用的 CUDA 版本
之后,我得到了命令pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
。
PyTorch 命令
我只是在我的 Ubuntu 终端中使用了那个确切的命令。
PyTorch 命令
它还会下载一个大文件,如果您像我一样有较慢的互联网连接,可能会花费很多时间!
PyTorch 下载
第 11 步:CUDA 可用性
您可以通过在终端中运行两行 Python 代码来直接检查您的 CUDA 是否已安装。
-
使用 . 在终端中运行 Python
python3
。 -
使用
import torch
. -
使用检查 CUDA 可用性
torch.cuda.is_available()
。
如果它返回True
,那么你已经成功地在你的系统上完成了 CUDA 的安装!
是的
第 12 步:Nvidia 开发者设置
您必须启用 Nvidia 开发人员设置才能通过 WSL 使用 CUDA。只需遵循以下过程:
-
打开Nvidia 控制面板。
英伟达控制面板
\2. 点击“同意并继续”。
同意
\3. 在 Nvidia 控制面板中,单击桌面 > 启用开发人员设置。如果“启用开发人员设置”没有任何复选标记,则单击它以启用该功能。
不是复选标记
复选标记
4.开发人员部分将可见。单击管理 GPU 性能计数器。
GPU 计数器
\5. 选中“允许所有用户访问 GPU 性能计数器”单选按钮。
查看
\6. 单击“应用”和“是”以永久批准更改。
批准更改
\7. 最后,它应该是这样的。
最终的
\8. 您可以像之前一样再次检查 CUDA 可用性。
cuda可用性
第 12 步:安装 Jupyter Notebook
我通常更喜欢 Jupyter Notebook。您可以通过多种方式安装它,例如pip install notebook
.
笔记本 1
笔记本 2
但我更喜欢命令pip install jupyter notebook
。
jupyter笔记本
要打开 Jypyter Notebook,您只需jupyter notebook
在终端中使用即可。
笔记本客户端
该笔记本将立即打开,您可以使用给定的 URL 在您的网络浏览器中打开它:
在浏览器中打开笔记本
第 13 步:运行一些测试
我运行了两个代码来检查我的 CUDA 的性能。
-
在笔记本中打开 Python3 脚本。
打开脚本
\2. 我使用以下代码检查它是使用我的 CPU 还是来自我的 GPU 的 CUDA:
import torch
if torch.cuda.is_available():
device = torch.device("cuda")
else:
device = torch.device("cpu")
print("using", device, "device")
库达
3.为了比较我的CPU和GPU(CUDA)的性能,我使用了下面的代码:
import time
matrix_size = 32*512
x = torch.randn(matrix_size, matrix_size)
y = torch.randn(matrix_size, matrix_size)
print("************* CPU SPEED *******************")
start = time.time()
result = torch.matmul(x, y)
print(time.time() - start)
print("verify device:", result.device)
x_gpu = x.to(device)
y_gpu = y.to(device)
torch.cuda.synchronize()
for i in range(3):
print("************* GPU SPEED *******************")
start = time.time()
result_gpu = torch.matmul(x_gpu, y_gpu)
torch.cuda.synchronize()
print(time.time() - start)
print("verify device:", result_gpu.device)
CPU 与 GPU
第 14 步:删除 CUDA Deb 文件
如果您认为不再需要 CUDA deb 文件,则可以使用以下命令将其删除:
rm filename
对我来说是这样的:
rm cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
它不会从您的系统中删除 CUDA。它只是从您的系统中删除 deb 文件。
删除 deb
结论
我希望您已经使用 WSL2 在 Windows 11 系统上成功安装了 CUDA。
(