Bootstrap

WSL2 安装cuda+cudnn+pytorch

  • Notes
    • WSL2 对 cuda 有很好的支持,采样 proxy 的方式,直接使用 windows 的显卡驱动,所以不要在 WSL2 里面装驱动。如果装了需要手动删除(没装过就不用了):

      sudo apt-get --purge remove “cublas” “cuda*” “nsight*”
      sudo apt-get --purge remove “nvidia
      sudo rm -rf /usr/local/cuda*
      sudo apt autoremove

    • 大约 cuda 11.4~11.6 对 pybind 的支持坏了,所以不要用这些版本,很多 cpp cu 混用的代码都编译不过
    • 第一个支持 4090 的 cuda 是 11.8,如果是 4090 必须至少使用 11.8
    • 本文是 2023.4.20,如果暂时没有迁移 pytorch 2.0,最建议的版本是 pytorch 1.13.1 + cuda 11.7 + cudnn 8.8

1. 安装 wsl2

2. 不要在 wsl 里面安装驱动

  • 启动 wsl 之后,直接输入 nvidia-smi 直接就能看到显卡

    nvidia-smi

  • 如果看不到,需要更新 windows 的显卡驱动,不要在 wsl 里面装驱动

3. 安装 cuda,cudnn

  • CUDA Toolkit 11.7
    • Linux/.../WSL-Ubuntu
    • 或者直接跑下面代码

    wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
    sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
    sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
    sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    sudo apt-get -y install cuda

  • cuDNN Archive

    wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.8.1/local_installers/11.8/cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz/
    tar -xvf cudnn-linux-x86_64-8.8.1.3_cuda11-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*

  • 激活 cuda path

    echo ‘export PATH=/usr/local/cuda/bin:$PATH’ >> ~/.bashrc
    echo ‘export CUDA_HOME=/usr/local/cuda’ >> ~/.bashrc
    source ~/.bashrc
    sudo ldconfig
    # ldconfig 如果出错参见下面的 Issue

4. 安装 anaconda

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
bash Anaconda3-2023.03-Linux-x86_64.sh

5. 安装 pytorch

  • 创建 conda 环境,起个自己的名字吧

    conda create -n pt1.13 python=3.8
    conda activate pt1.13

  • 参考 NeRFStudio

    pip install torch==1.13.1 torchvision functorch --extra-index-url https://download.pytorch.org/whl/cu117

  • 检测可用性

    python
    import torch
    torch.version.cuda
    torch.cuda.is_available()
    torch.backends.cudnn.version()

Issue

  • /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

    • 参考 https://github.com/microsoft/WSL/issues/5548#issuecomment-966321533

    cd /usr/lib/wsl/lib
    sudo mkdir backup
    sudo mv libcuda.so ./backup/
    sudo mv libcuda.so.1 ./backup/
    sudo ln -s libcuda.so.1.1 libcuda.so.1
    sudo ln -s libcuda.so.1.1 libcuda.so

  • ld: cannot find -lcuda: No such file or directory

    • https://github.com/NVlabs/tiny-cuda-nn/issues/269#issuecomment-1444552780

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;