【Stable-Diffusion/SD-WebUI】适配40系高算力之环境安装(WSL2+Docker+Nvdia-Smi+CUDA+cuDNN) StableDiffusion

mowen 2023-03-09 4187

1、 Win10安装最新nvidia显卡驱动(最新版本N卡驱动已经集成wsl)

1
The NVIDIA Windows GeForce or Quadro production (x86) driver that NVIDIA offers comes with CUDA and DirectML support for WSL
1
https://www.nvidia.com/Download/index.aspx?lang=zh-cn

2、Win10安装WSL2

1
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 启动管理员PowerShell
Start-Process powershell -Verb runAs
 
# 启用 wsl 低於18362 的版本不支持WSL 2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
 
# 启用虚拟机
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
 
# 设置 wsl 默认版本
wsl --set-default-version 2
 
# 查看可用Linux发行版
wsl -l -o
 
# 目前已安装发行版及版本
wsl -l -v
 
# 安装发行版
wsl -d Ubuntu-22.04 --cd 存储目录
 
# 默认登陆用户root
ubuntu2204.exe config --default-user root
 
# 进入子系统
bash
 
# 查看是否有显卡驱动
nvidia-smi
 
# nvidia-smi无效的解决办法,不用重装nvdia驱动
# 普通用户及root配置环境变量
vim ~/.bashrc
 
# 末尾加入
export PATH=$PATH:/usr/lib/wsl/lib
 
source ~/.bashrc


将已有ubuntu系统迁移到其他盘

1
2
3
wsl --export Ubuntu-22.04 d:\WSL\ubuntu2204.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 d:\WSL\Ubuntu-22.04 d:\WSL\ubuntu2204.tar


3、根据nvidia-smi,选择安装对应版本的cuda(11.8.0),选择Linux -> x86_64 -> WSL-Ubuntu -> 2.0 -> runfile(local)

https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local


1
2
3
4
5
6
# 安装gcc Cuda 安装需要
apt install -y build-essential
 
# 下载和安装
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
安装出错:
Unable to find the kernel source tree for the currently running kernel
 
解决方法:
 
# 查看内核版本
root@DESKTOP-990CIL0:~# uname -r
5.15.90.1-microsoft-standard-WSL2
 
# 下载安装对应内核头文件及源码(安装失败)
https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.90/
 
cd /opt 
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.90/amd64/linux-headers-5.15.90-051590-generic_5.15.90-051590.202301240242_amd64.deb &&
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.90/amd64/linux-headers-5.15.90-051590_5.15.90-051590.202301240242_all.deb &&
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.15.90/amd64/linux-image-unsigned-5.15.90-051590-generic_5.15.90-051590.202301240242_amd64.deb
 
sudo dpkg -i *.deb


1
2
3
4
5
6
# 下载安装对应内核头文件及源码(WSL2)
https://github.com/microsoft/WSL2-Linux-Kernel
 
cd /usr/src
wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.15.90.1.tar.gz &&
tar -xzvf linux-msft-wsl-5.15.90.1.tar.gz


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 修改环境变量
vim ~/.bashrc
 
# 文件未追加
#export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
#export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
 
export PATH=$PATH:/usr/local/cuda/bin:~/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
 
# reload 环境变量配置
source ~/.bashrc
 
# 检查是否生效
nvcc -V
1
2
3
4
5
6
7
8
# 测试cuda 
apt install -y git
cd /opt && git clone https://github.com/NVIDIA/cuda-samples.git
cd ./cuda-samples/Samples/1_Utilities/deviceQuery
make
./deviceQuery
 
# 输出Pass 则成功了


4、安装cuda对应的cudnn(8.9.1.23)

当前版本:

https://developer.nvidia.com/rdp/cudnn-download

历史版本:

https://developer.nvidia.com/rdp/cudnn-archive



https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

1
2
3
4
5
6
7
8
9
10
11
12
apt-get -y install zlib1g libfreeimage-dev &&
dpkg -i cudnn-local-repo-ubuntu2204-8.9.1.23_1.0-1_amd64.deb &&
cp /var/cudnn-local-repo-ubuntu2204-8.9.1.23/cudnn-local-1E24EB2B-keyring.gpg /usr/share/keyrings/ &&
dpkg -i cudnn-local-repo-ubuntu2204-8.9.1.23_1.0-1_amd64.deb &&
apt update &&
apt install -y libcudnn8 libcudnn8-dev libcudnn8-samples &&
cp -r /usr/src/cudnn_samples_v8/ $HOME &&
cd  $HOME/cudnn_samples_v8/mnistCUDNN &&
make clean && make &&
./mnistCUDNN
 
# 输出Test passed! 则成功了

1
2
# 查看cudnn版本
cat /etc/alternatives/cudnn_version_h |grep CUDNN_MAJOR -A 2
1
2
3
4
5
6
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
1
2
低版本升级到高版本cudnn,手动选择更新配置
sudo update-alternatives --config libcudnn


5、安装nvidia-docker2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
curl https://get.docker.com | sh 
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list \
   && curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
sudo apt update
sudo apt-get install nvidia-docker2
service docker start
 
# 搜索符合当前cuda版本的镜像
https://hub.docker.com/r/nvidia/cuda
 
# 拉取镜像
docker pull nvidia/cuda:12.0.1-devel-ubuntu22.04
 
# nvidia-docker 测试
sudo docker run -idt --name nvidia_docker_test --gpus all --shm-size 16G nvidia/cuda:12.0.1-devel-ubuntu22.04 &&
sudo nvidia-docker start nvidia_docker_test &&
sudo nvidia-docker attach nvidia_docker_test
 
# 查看是否有显卡驱动
nvidia-smi
 
# 有则判定 nvidia-docker 已经成功安装和使用
exit
最新回复 (0)
返回
发新帖
X