选择安装的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官网下载,按照官网提示进行下载。