前言

安装WSL 2(Windows Subsystem for Linux 2)是因为它为Windows用户提供了一个强大的开发环境,具有以下优点:

  • 原生Linux内核支持:WSL 2与WSL 1最大的不同之处在于它使用了真正的Linux内核。这意味着它能够提供更好的性能、更好的兼容性和更多的功能。与模拟Linux系统不同,WSL 2在Windows和Linux之间提供了真正的虚拟化层,因此在WSL 2上运行的Linux发行版可以访问原生Linux内核。

  • 更好的性能:由于WSL 2使用了真正的Linux内核,因此通常比WSL 1具有更好的性能。对于诸如文件I/O和网络性能等任务,WSL 2通常表现更出色。

  • 更好的兼容性:WSL 2支持更多的Linux系统调用,并且对Linux应用程序的兼容性更高。这意味着您可以运行更多的Linux应用程序,并且它们在WSL 2中的运行方式更接近在原生Linux环境中的运行方式。

  • 更好的开发体验:对于开发人员来说,WSL 2提供了一个更接近真实Linux环境的开发环境,这使得在Windows上开发Linux应用程序变得更加容易和舒适。您可以在WSL 2中运行常用的开发工具和命令行实用程序,并且可以使用本地编辑器进行开发,同时可以利用WSL 2提供的Linux环境。

  • 更好的生产力:由于WSL 2提供了更好的性能、更好的兼容性和更接近原生Linux的环境,因此它可以提高开发人员的生产力。您可以更快地构建、测试和调试应用程序,并且可以更轻松地在Windows和Linux之间切换。

综上所述,安装WSL 2可以为Windows用户提供一个强大的开发环境,帮助他们更轻松地开发、测试和部署Linux应用程序,并提高他们的生产力和工作效率。

1. 检查开启CPU虚拟化和虚拟机平台

1.1 开启虚拟化

  • 打开任务管理器,点击性能,查看CPU虚拟化的状态,默认为禁用,需要进Bios开启:
  1. 开机按F12或者DEL进入Bios(不同主板可能不一样,请自行查询)
  2. 点击Advanced Mode (F7)进入高级选项
  3. 点击Advanced,找到并点击 CPU Configuration
  4. 下拉菜单找到Intel Virtualization Technology,在其子菜单下把选项改成Enabled
  5. 按F10保存并推出,CPU虚拟化开启成功。

快捷键查看:ctrl+shift+esc

在这里插入图片描述
上面已经开启成功

1.2 开启虚拟机平台

可以直接使用 Windows+R 快捷键,在打开的「运行」窗口中直接执行optionalfeatures打开「Windows 功能」,或者在控制面板中打开「Windows 功能」启用需要的功能,然后重新启动电脑:
在这里插入图片描述

2. 安装ubuntu系统(本文中安装20.04)

2.1 设置默认WSL版本

输入命令行:wsl --set-default-version <Version>

wsl --set-default-version 1
wsl --set-default-version 2
二选一即可,1表示wsl1,2表示wsl2

在这里插入图片描述

2.2 安装Linux发行版本

2.2.1 方式一:直接在Microsoft Store安装

在这里插入图片描述

2.2.2 方式二:使用命令行安装

  1. 查看可安装的Linux发行版本
wsl --list --online

输出:

C:\Users\888>wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed
  1. 指定安装版本:
wsl --install -d <Distribution Name>

将替换成安装的对应版本
输出:

C:\Users\888>wsl --install -d Ubuntu-20.04
正在安装: Ubuntu 20.04 LTS
已安装 Ubuntu 20.04 LTS。
正在启动 Ubuntu 20.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
···
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
This message is shown once a day. To disable it please create the
/home/amos/.hushlogin file.
  1. 打开Linux发行版本
wsl -l

输出:

C:\Users\888>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
  1. 打开方式:可直接在应用里面点击ubuntu 20.04.4 LTS打开、

3. 安装CUDA

  1. 输入nvidia-smi
    如果输出结果是:
amos@DESKTOP-K2UHV5L:/mnt/c/Users/5555$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

解决方案,安装正确的驱动,如下所示:驱动安装

  1. 安装cuda:cuda 12.1 直接复制命令行即可

在NVIDIA CUDA Toolkit或其他NVIDIA软件安装过程中,您可能会遇到不同的安装器类型(Installer Type),尤其是在选择如何安装CUDA Toolkit时。这些安装器类型通常包括deb (local), deb (network), 和 runfile等选项。每种类型的安装器都有其特定的用途和安装流程。

deb (local)

  • 定义deb (local)是一种Debian包安装方式,它涉及下载一个包含所有必要文件的.deb文件。这个文件包含了所需软件的所有部分,因此不需要在安装过程中下载任何额外内容。
  • 优点:由于所有必要的组件都已包含在下载的.deb文件中,因此不需要在安装过程中连接到互联网。这对于安装大型软件包在没有可靠互联网连接的环境中特别有用。
  • 缺点.deb文件可能会非常大,因为它包含了所有需要的安装文件。

deb (network)

  • 定义deb (network)安装方式也是基于Debian包,但与deb (local)不同的是,它会从网络上的仓库下载所需的软件包和依赖。
  • 优点:初次下载的文件相对较小,因为它只包含获取其余安装文件所需的信息。这意味初次下载快,而且能确保安装的软件是最新版本。
  • 缺点:需要在安装过程中连接到互联网。如果网络连接不稳定或速度慢,可能会导致安装时间延长或安装失败。

runfile

  • 定义runfile是一种自解压的安装脚本,通常以.run为扩展名。这种安装方式为用户提供了更高的灵活性,允许更详细地控制安装过程中的选项。
  • 优点:提供更多的自定义安装选项,比如选择安装路径、选择性安装组件等。适用于需要精细控制安装过程的高级用户。
  • 缺点:安装过程比基于.deb包的方式更复杂,可能需要用户具备更多的命令行操作知

总结

选择哪种安装器类型取决于您的具体需求、您的系统环境以及您对安装过程的控制需求。如果您想要一个无需互联网且一次性下载所有内容的选项,deb (local)是一个好选择。如果您希望保证安装的软件是最新的,并且不介意在安装过程中下载内容,deb (network)可能更适合您。如果您需要更精细的安装控制或者要在没有Debian包管理器的系统上进行安装,runfile可能是最好的选择。

2.1 检查是否安装好 nvcc -V输出结果:

amos@DESKTOP-K2UHV5L:/mnt/c/Users/5555$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66

如果未出现,请检查
安装完毕之后,nvcc -V有可能还是报没安装CUDA-Toolkit,先去/usr/local/cuda/bin看一眼有没有nvcc的可执行文件,如果有的话打开vi ~/.bashrc,把cuda的bin目录加到PATH,也就是把下面这行加到.bashrc中。
export PATH=$PATH:/usr/local/cuda/bin

2.2 检查nvidia-smi
如果抑制出现报错:

-bash: /usr/bin/nvidia-smi: No such file or directory

检查是否是安装wsl1版本,如下所示:

C:\Users\5555>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         1

按照如下步骤进行:旧版wsl手动更新
最后输入nvidia-smi

amos@DESKTOP-K2UHV5L:/mnt/c/Users/5555$ nvidia-smi
Wed Mar 27 15:54:33 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.65                 Driver Version: 551.86         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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 4090 D      On  |   00000000:01:00.0  On |                  Off |
|  0%   41C    P8             28W /  425W |     642MiB /  24564MiB |     10%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
  1. cudnn下载:cudnn链接

安装时下载的小tips
在WSL2中的Ubuntu 20.04系统上,已经安装了CUDA 12.1的情况下,你应该选择与你的系统架构和操作系统版本相匹配的cuDNN版本进行安装。基于你提供的信息,有几个关键点需要考虑:

  1. 操作系统版本:你正在使用Ubuntu 20.04。
  2. CUDA版本:已安装的是CUDA 12.1。
  3. 系统架构:WSL2通常模拟的是x86_64架构,除非你明确知道你在使用基于ARM的处理器并通过某种方式在WSL2上运行ARM架构的Linux。
    鉴于以上信息,你应该选择与Ubuntu 20.04和x86_64架构相匹配的cuDNN安装程序:
  • Local Installer for Ubuntu20.04 x86_64 (Deb)
    这个版本是专为Ubuntu 20.04系统设计的,并且是针对x86_64架构的,这应该与大多数通过WSL2运行的系统兼容。使用.deb包格式意味着安装过程将会非常简单,只需几个命令就可以完成。
    安装这个版本的具体步骤通常包括下载.deb文件,然后使用dpkg命令安装,类似于之前解释的cuDNN安装步骤。确认下载的cuDNN版本与你的CUDA 12.1版本兼容非常重要,所以请参考NVIDIA官方文档来获取这些信息。

具体安装步骤

  1. 下载cudnn,将下载好的cudnn移动到wsl2中的 linux 系统文件目录,我的目录是\\wsl.localhost\Ubuntu-20.04\home\amos\my_folder
  2. 转到上述目录中,并输入:sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
amos@DESKTOP-K2UHV5L:~/my_folder$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
出现问题:
[sudo] password for amos:
Selecting previously unselected package cudnn-local-repo-ubuntu2004-8.9.7.29.
(Reading database ... 106617 files and directories currently installed.)
Preparing to unpack cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb ...
Unpacking cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) ...
Setting up cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) ...

The public cudnn-local-repo-ubuntu2004-8.9.7.29 GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg >/usr/share/keyrings/

按上述要求输入sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg /usr/share/keyrings/
最终安装完成:

amos@DESKTOP-K2UHV5L:~/my_folder$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
(Reading database ... 106633 files and directories currently installed.)
Preparing to unpack cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb ...
Unpacking cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) over (1.0-1) ...
Setting up cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) ...
  1. 检查cudnn是否安装成功
tar -xvf cudnn-linux-x86_64-8.4.1.50_cuda11.6-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*

4. WSL2中安装anconda3

4.1 在vscode中安装WSL

  1. 安装WSL插件,在扩展中搜索WSL,选择安装即可
    在这里插入图片描述
  2. 连接至WSL2:

1.使用快捷键 ctrl+ p,再输入>,即可看到connect to WSL点击即可
在这里插入图片描述
如上显示即说明激活正确

4.2 Anconda开发环境的搭建

  1. 换源,修改Linux apt下载地址,以加快各种Linux下载速度,避免下载安装失败。在终端中输入并执行(第一次sudo需要输入用户密码)
    sudo chmod 777 /etc/apt/sources.list # 提权,方便直接使用vscode编辑文件
  2. 然后在左侧文件目录中找到并打开/etc/apt/source.list,将里面的文本替换为
#默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
 deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
​
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
​
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
​
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
​
# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

Ctrl+S保存即可。
3. 然后打开新的终端在终端中输入sudo apt update进行更新,等待更新完成.。
sudo apt update # apt更新
4. 下载anaconda安装包,这里可以登录https://repo.anaconda.com/archive/网站查找要下载的版本,选择Linux-x86_64.sh结尾的。

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

5.安装anconda3

bash /tmp/Anaconda3-2022.05-Linux-x86_64.sh # 安装anaconda

安装过程中会出现yesENTER
比如:

Anaconda3 will now be installed into this location:
/home/amos/anaconda3

- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below

此时应该输入ENTER

  1. 此时安装完成,没有则输入source /home/amos/anaconda3/bin/activate即完成anconda安装
    在这里插入图片描述

4.3 pytorch的安装

为了保证安装的正常下载,最好换源操作:

  1. 在这里插入图片描述
  2. conda、pip换源,加快各种依赖包的下载安装速度
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main # 添加conda下载源,目的是它自动生成的一个配置文件
  1. 执行完之后刷新左侧的资源管理器,可以在用户文件夹/home/<用户名>/下找到.condarc文件,替换成以下内容保存即可。
channels:
 - defaults
show_channel_urls: true
default_channels:
 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
  msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
  bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
  menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
  1. 更换下载源:
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple # 修改pip下载源
  1. 创建一个环境
conda create -n d2l python=3.9

6.再pytorch中下载linux适配的版本

# CUDA 11.8
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

7.安装完成,在该环境下检查安装是否成功
输入.py文件:

import torch
print(torch.__version__)
print(torch.cuda.is_available())

输出:

(pytorch_2.1.1_llm) (base) amos@DESKTOP-OR1VC42:~$ /home/amos/anaconda3/envs/pytorch_2.1.1_llm/bin/python /home/amos/test.py
2.1.1
True
GitHub 加速计划 / ws / WSL
17.09 K
797
下载
Issues found on WSL
最近提交(Master分支:2 个月前 )
86fa5afa 3 个月前
e899d0b7 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐