从0开始进行WSL的一些配置(网络,headers、CUDA、Container)

一、WSL2配置网络

WSL 2 发布了最新版本 2.0.0,这个版本开始,自带支持新的镜像网络解决所有的网络相关问题。

需要条件:Windows 11 22H2以上的版本,安装好的WSL2和linux。

更新 WSL:wsl --update --pre-release

在用户目录 %USERPROFILE% 下面创建一个配置文件 .wslconfig,写入以下内容:

[experimental]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

如果你遇到 docker 无法从 Windows 访问的问题,这个是 iptables 的问题,在 /etc/docker/daemon.json 里添加一句 "iptables": false 就好了。

二、安装WSL2头文件

基本上参考 WSL升级到最新版本Linux内核headers的方法 - 知乎 (zhihu.com) 的步骤,前提条件如下:

1)安装好的WSL2,并已选用。

2)sudo apt-get install dwarves

3)sudo mount -t debugfs debugfs /sys/kernel/debug

步骤如下:

  1. 首先,到 Releases · microsoft/WSL2-Linux-Kernel · GitHub 这里下载你内核对应版本的源码(查看内核版本:echo $(uname -r),建议直接升级到最新版本的内核,方法参考参考资料)
  2. 安装依赖:sudo apt install libelf-dev build-essential pkg-config bison flex libssl-dev bc
  3. 内核源码下载后,上传到wsl里面的home目录
  4. 执行解压缩:tar -zxvf xxxx.tar.gz
  5. 进入源码文件夹,执行 cp Microsoft/config-wsl .config
  6. 上一步执行完毕,参照bpftrace的要求,在.config文件末尾加上bpftrace/INSTALL.md at master · iovisor/bpftrace (github.com) 这里提到要加的配置项
  7. 再执行 make oldconfig && make prepare
  8. 执行 make scripts
  9. 再执行 sudo make modules && sudo make modules_install
  10. 手动安装bpftool,cd ./tools/bpf/bpftool;make;sudo make install

上述执行完毕,执行:sudo apt install bpftrace,安装上bpftrace,执行:sudo bpftrace -e 'tracepoint:syscalls:sys_enter_open { printf("%s %s\n", comm, str(args->filename)); }' 看看是否可行,可行就表示安装成功了

三、CUDA

参考官网流程:CUDA Toolkit 12.3 Downloads | NVIDIA Developer

1、安装依赖

sudo apt-get "${APT_ARGS[@]}" install \
 build-essential \
 curl \
 "linux-headers-$(uname -r)"

2、通过CUDA_TOOLKIT安装CUDA

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/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-3

3、查看结果
nvcc -V

四、CUDNN

CUDNN_TAR_FILE="cudnn-11.3-linux-x64-v8.2.0.53.tgz"
  wget -q https://developer.download.nvidia.com/compute/redist/cudnn/v8.2.0/${CUDNN_TAR_FILE}
  tar -xzvf ${CUDNN_TAR_FILE}
  sudo cp -P cuda/include/cudnn.h /usr/local/cuda-11/include
  sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11/lib64/
  sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11/lib64/
  sudo chmod a+r /usr/local/cuda-11/lib64/libcudnn*
  sudo ldconfig

五、Nvidia Container

  1. Configure the repository:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-   toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
&& \
sudo apt-get update
  1. Install the NVIDIA Container Toolkit packages:
$ sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
  1. 测试
sudo docker run --gpus 1 nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04 nvidia-smi

参考资料:

WSL2 网络的最终解决方案 - 知乎 (zhihu.com)

WSL升级到最新版本Linux内核headers的方法 - 知乎 (zhihu.com)

CUDA Toolkit 12.3 Downloads | NVIDIA Developer

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.14.3 documentation

posted on 2023-11-15 09:13  MJ未来  阅读(786)  评论(0编辑  收藏  举报