WSL2配置cuda、cudnn、TensorRT、VScode、miniconda开发环境
选择安装的WSL2发行版本
# 查看可用发行版列表
wsl --list --online
# 安装选用的发行版本
wsl -- install -d <Distribution Name> # 将<Distribution Name>替换为要安装的发行版的名称
wsl2常用命令
# 将分发设置为默认分发
wsl --set-default,-s <Distro>
# 注销分发并删除根文件系统
wsl --unregister <Distro>
wsl --help
内容
用法: wsl.exe [Argument] [Options...] [CommandLine]
运行 Linux 二进制文件的参数:
如果未提供命令行,wsl.exe 将启动默认 shell。
--exec, -e <CommandLine>
不使用默认 Linux shell 执行指定的命令。
--shell-type <Type>
使用提供的 shell 类型执行指定的命令。
类型:
standard
使用默认 Linux shell 执行指定的命令。
login
使用默认 Linux shell 作为登录 shell 执行指定的命令。
none
不使用默认 Linux shell 执行指定的命令。
--
按原样传递命令行的剩余部分。
选项:
--cd <Directory>
将指定的目录设置为当前工作目录。
如果使用 ~,则将使用 Linux 用户的主路径。如果路径以
/ 字符开头,它将解释为绝对 Linux 路径。
否则,该值必须为绝对 Windows 路径。
--distribution, -d <Distro>
运行指定的分发。
--user, -u <UserName>
以指定的用户身份运行。
--system
为系统分发启动 shell。
用于管理适用于 Linux 的 Windows 子系统的参数:
--help
显示用法信息。
--debug-shell
打开 WSL2 调试 shell 以进行诊断。
--event-viewer
打开 Windows 事件查看器的应用视图。
--install [Distro] [Options...]
安装适用于 Linux 的 Windows 子系统分发。
若要查看可用的分发列表,请使用 'wsl.exe --list --online'。
选项:
--no-launch, -n
安装后不要启动分发。
--web-download
从 Internet 而不是 Microsoft Store 下载分发。
--mount <Disk>
在所有 WSL 2 分发中附加并装载物理或虚拟磁盘。
选项:
--vhd
指定 <Disk> 代表虚拟硬盘。
--bare
将磁盘附加到 WSL2 但不装载。
--name <Name>
为装入点使用自定义名称装载磁盘。
--type <Type>
装载磁盘时使用的文件系统,如果未指定则默认为 ext4。
--options <Options>
其他装载选项。
--partition <Index>
要装载的分区索引,如果未指定则默认为整个磁盘。
--release-notes
打开 Web 浏览器查看 WSL 发行说明页面。
--set-default-version <Version>
更改新分发的默认安装版本。
--shutdown
立即终止所有正在运行的分发和 WSL 2
轻型虚拟机。
--status
显示适用于 Linux 的 Windows 子系统的状态。
--unmount [Disk]
从所有 WSL2 分发中卸载并分离一个磁盘。
如果未使用参数调用,则卸载并分离所有磁盘。
--update
更新适用于 Linux 的 Windows 子系统程序包。
选项:
--web-download
从 Internet 而不是 Microsoft Store 下载更新。
--pre-release
如果可用,则下载预发布版本。表示使用 --web-download.
--version, -v
显示版本信息。
用于管理适用于 Linux 的 Windows 子系统中的分发的参数:
--export <Distro> <FileName> [Options]
将分发导出为 tar 文件。
对于标准输出,文件名可以是“-”。
选项:
--vhd
指定要导出为 .vhdx 文件的分发。
--import <Distro> <InstallLocation> <FileName> [Options]
将指定的 tar 导入为新分发。
对于标准输入,文件名可以是“-”。
选项:
--version <Version>
指定要为新分发使用的版本。
--vhd
指定提供的文件为 .vhdx 文件,而不是 tar 文件。
此操作将在指定的安装位置生成一个 .vhdx 文件的副本。
--import-in-place <Distro> <FileName>
将指定的 .vhdx 导入为一个新分发。
此虚拟硬盘必须使用 ext4 文件系统类型格式化。
--list, -l [Options]
列出分发。
选项:
--all
列出所有分发,包括
目前正在被安装或被卸载的分发。
--running
仅列出目前正在运行的分发。
--quiet, -q
仅显示分发名称。
--verbose, -v
显示所有分发的相关详细信息。
--online, -o
使用 'wsl.exe --install' 显示可以安装的可用分发列表。
--set-default, -s <Distro>
将分发设置为默认分发。
--set-version <Distro> <Version>
更改指定分发的版本。
--terminate, -t <Distro>
终止指定分发。
--unregister <Distro>
注销分发并删除根文件系统。
VScode环境
安装VScode及扩展
访问 VS Code 安装页,选择 32 位或 64 位安装程序。 在 Windows 上(不是在 WSL 文件系统中)安装 Visual Studio Code。
当在安装过程中系统提示“选择其他任务”时,请务必选中“添加到 PATH”选项,以便可以使用代码命令在 WSL 中轻松打开文件夹。
VScode扩展:安装远程开发扩展包(Remote Development)。 除了 Remote - SSH 和 Dev Containers 扩展之外,此扩展包还包含 WSL 扩展,使你能够打开容器中、远程计算机上或 WSL 中的任何文件夹。
更新wsl中的Linux发行版
某些 WSL Linux 发行版缺少启动 VS Code 服务器所需的库。 可以使用其他库的包管理器将其他库添加到 Linux 发行版中。
例如,要更新 Debian 或 Ubuntu,请使用:
sudo apt-get update
若要添加 wget(从 Web 服务器检索内容)和 ca 证书(允许基于 SSL 的应用程序检查 SSL 连接的真实性),请输入:
sudo apt-get install wget ca-certificates
VScode使用
若要从 WSL 发行版打开项目,请打开wsl发行版的命令行并输入:code .
还可以通过使用 VS Code 中的快捷方式 CTRL+SHIFT+P 调出命令面板,以访问更多 VS Code WSL 选项。 如果随后键入 WSL,你将看到可用的选项列表,你可以在 WSL 会话中重新打开文件夹,指定要在哪个发行版中打开,等等。
命令面板输入:REMOTE-WSL
,选择需要的命令。
CUDA
安装Toolkit Driver
显卡驱动在Windows中安装就可以,无需在wsl2中安装。
使用CUDA前,要求GPU驱动与cuda的版本要匹配,匹配关系可在此查看
输入nvidia-smi
命令,查看GPU驱动版本。
Thu Jan 11 15:05:53 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.36 Driver Version: 546.33 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4060 Ti On | 00000000:01:00.0 On | N/A |
| 0% 41C P8 10W / 165W | 1340MiB / 16380MiB | 6% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 23 G /Xwayland N/A |
+---------------------------------------------------------------------------------------+
可以看到当前安装的驱动版本是 546.33
安装CUDA
在 Nvidia 官网选择对应版本:https://developer.nvidia.com/cuda-toolkit-archive。选择需要的版本,选择 Linux , x86_64 , WSL-Ubuntu , 2.0 , deb(local)
使用提示的安装命令直接安装即可
CUDA默认安装路径为/usr/local/cuda/
配置CUDA环境变量
# 查看CUDA安装位置
cd /usr/local&&ls
# 打开、编辑环境变量的配置文件
vim ~/.bashrc
在文件末尾加入
# cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
然后按:wq保存退出编辑模式
刷新配置文件使其生效
source ~/.bashrc
安装nvcc
sudo apt install nvidia-cuda-toolkit
输入nvcc –version
查看是否正确安装
# 输出(具体内容视版本而定)
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
安装cuDNN
在官网,下载tar包。
将其放入到wsl中,依次输入
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
X.Y 和 v8.x.x.x 分别用你本机 CUDA 和cuDNN 的版本信息替代
安装TensorRT
访问TensorRT下载官网下载deb版本的TensorRT
GA为稳定版本,下载稳定版本
os="ubuntuxx04"
tag="8.x.x-cuda-x.x"
sudo dpkg -i nv-tensorrt-local-repo-${os}-${tag}_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-${os}-${tag}/*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install tensorrt
将os和tag替换成自己的版本信息
验证
(base) root@LAPTOP-476JT8H0:~/workstation/# dpkg -l | grep TensorRT
ii libnvinfer-bin 8.6.0.12-1+cuda12.0 amd64 TensorRT binaries
ii libnvinfer-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT development libraries
ii libnvinfer-dispatch-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT development dispatch runtime libraries
ii libnvinfer-dispatch8 8.6.0.12-1+cuda12.0 amd64 TensorRT dispatch runtime library
ii libnvinfer-headers-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT development headers
ii libnvinfer-headers-plugin-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT plugin headers
ii libnvinfer-lean-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT lean runtime libraries
ii libnvinfer-lean8 8.6.0.12-1+cuda12.0 amd64 TensorRT lean runtime library
ii libnvinfer-plugin-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT plugin libraries
ii libnvinfer-plugin8 8.6.0.12-1+cuda12.0 amd64 TensorRT plugin libraries
ii libnvinfer-samples 8.6.0.12-1+cuda12.0 all TensorRT samples
ii libnvinfer-vc-plugin-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT vc-plugin library
ii libnvinfer-vc-plugin8 8.6.0.12-1+cuda12.0 amd64 TensorRT vc-plugin library
ii libnvinfer8 8.6.0.12-1+cuda12.0 amd64 TensorRT runtime libraries
ii libnvonnxparsers-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT ONNX libraries
ii libnvonnxparsers8 8.6.0.12-1+cuda12.0 amd64 TensorRT ONNX libraries
ii libnvparsers-dev 8.6.0.12-1+cuda12.0 amd64 TensorRT parsers libraries
ii libnvparsers8 8.6.0.12-1+cuda12.0 amd64 TensorRT parsers libraries
ii tensorrt 8.6.0.12-1+cuda12.0
miniConda
miniConda官网下载,按照官网提示进行下载。