文章目录
- WSL安装Anaconda
- 下载Anaconda安装包
- 安装
- 配置conda命令
- conda换国内源
- conda初始化shell环境
- conda init
- 手动源激活脚本:
- 安装Windows上的NVIDIA GPU驱动
- WSL安装CUDA Toolkit
- 安装12.1版本
- 环境配置
- 报错1
- 报错2 内存不足导致安装崩溃
- 问题描述
- 问题分析
- 问题解决
- WSL2 Ubuntu安装NVIDIA cuDNN深度学习库
- 官网下载
- 安装步骤
- 验证是否可以GPU加速
- 卸载cudnn
- WSL2 Ubuntu安装NVIDIA cuDNN深度学习库 2
- pytorch安装
- 安装libtorch
- 参考
WSL安装Anaconda
下载Anaconda安装包
直接在wsl中执行wget命令即可。
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
安装
直接执行bash命令即可。
bash Anaconda3-2024.02-1-Linux-x86_64.sh
一路enter,遇到下面的提示
这里直接选择默认路径。
配置conda命令
安装完成之后输入conda命令,报错command not found。
这没有将anaconda的安装路径放入环境变量中,执行下面命令进行添加
vim ~/.bashrc
export PATH=$PATH:/root/anaconda3/bin # export PATH=$PATH:【你的安装目录】
source ~/.bashrc
测试
conda换国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda初始化shell环境
conda init
damon@damonmac:~$ conda init
no change /home/damon/anaconda3/condabin/conda
no change /home/damon/anaconda3/bin/conda
no change /home/damon/anaconda3/bin/conda-env
no change /home/damon/anaconda3/bin/activate
no change /home/damon/anaconda3/bin/deactivate
no change /home/damon/anaconda3/etc/profile.d/conda.sh
no change /home/damon/anaconda3/etc/fish/conf.d/conda.fish
no change /home/damon/anaconda3/shell/condabin/Conda.psm1
no change /home/damon/anaconda3/shell/condabin/conda-hook.ps1
no change /home/damon/anaconda3/lib/python3.11/site-packages/xontrib/conda.xsh
no change /home/damon/anaconda3/etc/profile.d/conda.csh
no change /home/damon/.bashrc
No action taken.
damon@damonmac:~$ conda activate baseCondaError: Run 'conda init' before 'conda activate'
即使运行了conda init,您的Conda环境仍然没有正确初始化。这种情况可能是因为conda init命令没有成功修改您的shell配置文件,或者修改没有生效。
手动源激活脚本:
在您的shell中手动执行Conda的激活脚本,看看是否可以解决问题。对于bash用户,您可以在终端运行:
source ~/anaconda3/etc/profile.d/conda.sh
然后尝试再次激活Conda环境:
conda activate base
检查.bashrc或其他Shell配置文件:
检查您的~/.bashrc文件,看看是否真的包含了初始化Conda的相关行。您应该在文件中找到类似这样的行:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/damon/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/damon/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/damon/anaconda3/etc/profile.d/conda.sh"elseexport PATH="/home/damon/anaconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<
如果这些行不存在,您可以手动添加它们,然后保存并关闭文件,再运行:
source ~/.bashrc
安装Windows上的NVIDIA GPU驱动
作为一个虚拟机,WSL2居然可以访问到物理宿主机的GPU设备,博主之前还没听说过有哪家公司的虚拟机可以做到这一点。如果WSL2当真可以做到,并且性能可以接受的话,那真是科研党的福音!
WSL安装CUDA Toolkit
官方的教程地址
官方下载地址
安装12.1版本
CUDA Toolkit 12.1 Downloads
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/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
测试
安装完成后还需要进行环境配置。
环境配置
上述安装完成后,需更新 ~/.bashrc 文件
sudo vi ~/.bashrc
i 进入insert模式,添加以下代码到文件最后,注意修改为对应版本。
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Esc, :wq,回车保存。
source ~/.bashrc
运行以下代码,输出如图则CUDA安装成功。
报错1
damon@damonmac:/opt$ sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
Selecting previously unselected package cuda-repo-wsl-ubuntu-12-1-local.
(Reading database ... 81755 files and directories currently installed.)
Preparing to unpack cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb ...
Unpacking cuda-repo-wsl-ubuntu-12-1-local (12.1.0-1) ...
Setting up cuda-repo-wsl-ubuntu-12-1-local (12.1.0-1) ...The public cuda-repo-wsl-ubuntu-12-1-local GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-F7B46061-keyring.gpg /usr/share/keyrings/damon@damonmac:/opt$
报错解决
报错信息表明,在为WSL(Windows Subsystem for Linux)安装的CUDA包安装过程中,需要验证包完整性的公共GPG密钥没有被安装。这可能会影响到将来的更新或者包的信任度。
以下是解决这个问题的步骤:
安装GPG密钥:错误信息中已经提供了一个命令,这个命令会将GPG密钥从CUDA包的安装目录复制到系统目录中,以便包管理系统使用这个密钥来验证CUDA包。在您的终端中运行以下命令:
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-F7B46061-keyring.gpg /usr/share/keyrings/
更新包列表:安装密钥后,更新包列表是一个好主意,以确保所有的仓库都是最新的:
sudo apt update
然后重新安装即可。
报错2 内存不足导致安装崩溃
问题描述
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/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
在执行上述安装时,运行 “sudo apt-get -y install cuda”,出现wsl闪退情况。
问题分析
出现上述问题,可能有以下情况
- 系统资源不足:CUDA安装是一个资源密集型的过程,需要大量的内存和处理能力。如果系统资源(如RAM或CPU)不足,这可能导致系统过载和崩溃。
- 驱动程序冲突:CUDA安装涉及到显卡驱动,如果已安装的驱动与CUDA不兼容,或者驱动安装不正确,可能会引起系统稳定性问题。
- 硬件问题:某些硬件问题,如故障的内存条或不稳定的电源供应,可能在资源要求高的操作中显现出来。
- 软件冲突:系统中可能有其他软件或服务与CUDA安装过程中的某些步骤冲突,导致系统崩溃。
- 磁盘空间不足:如果您的系统磁盘空间不足,安装过程中可能会因为没有足够空间而失败,有时这也可能导致系统崩溃。
通过查看系统日志文件(‘/var/log/syslog’),发现是内存导致的崩溃。
下面是syslog日志中最后部分内容
...
May 10 14:04:35 damonmac systemd[445]: Stopped Sound Service.
May 10 14:04:35 damonmac systemd[445]: Starting Sound Service...
May 10 14:04:35 damonmac pulseaudio[478]: Failed to open PID file '/run/user/1000/pulse/pid': Too many levels of symbolic links
May 10 14:04:35 damonmac pulseaudio[478]: pa_pid_file_create() failed.
May 10 14:04:35 damonmac systemd[445]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
May 10 14:04:35 damonmac systemd[445]: pulseaudio.service: Failed with result 'exit-code'.
May 10 14:04:35 damonmac systemd[445]: Failed to start Sound Service.
May 10 14:04:35 damonmac systemd[445]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
May 10 14:04:35 damonmac systemd[445]: Stopped Sound Service.
May 10 14:04:35 damonmac systemd[445]: pulseaudio.service: Start request repeated too quickly.
May 10 14:04:35 damonmac systemd[445]: pulseaudio.service: Failed with result 'exit-code'.
May 10 14:04:35 damonmac systemd[445]: Failed to start Sound Service.
May 10 14:04:35 damonmac systemd[445]: pulseaudio.socket: Failed with result 'service-start-limit-hit'.
May 10 14:05:03 damonmac systemd[1]: systemd-timedated.service: Deactivated successfully.
May 10 14:05:19 damonmac kernel: [ 48.978120] hv_balloon: Max. dynamic memory size: 16236 MB
问题解决
在WSL(Windows Subsystem for Linux)中使用Hyper-V的动态内存功能来调整内存使用,通常需要通过Windows的设置进行管理。以下是一些步骤和建议如何在WSL中调整虚拟内存:
调整Windows的Hyper-V设置
- 打开Windows的“控制面板”。
- 选择“程序和功能”,然后点击“启用或关闭Windows功能”。
- 在弹出的窗口中找到并展开“Hyper-V”,确保相关的所有选项都被选中,特别是“Hyper-V管理工具”和“Hyper-V平台”。
使用WSL命令调整内存
WSL2 允许用户在.wslconfig文件中配置虚拟机的内存限制。这个文件位于您的Windows用户目录下(例如C:\Users\YourUsername.wslconfig)。
若没有此文件,可以创建或修改这个文件,并添加如下设置来调整内存:
[wsl2]
memory=16GB # 设置WSL可用的最大内存
调整完毕后,保存文件并重启WSL(可以通过命令wsl --shutdown在Windows命令提示符中执行)
damon@damonmac:~$ free -mtotal used free shared buff/cache available
Mem: 15848 550 14893 3 405 15036
Swap: 4096 0 4096
damon@damonmac:~$
重新安装,成功。
WSL2 Ubuntu安装NVIDIA cuDNN深度学习库
官网下载
cuDNN Downloads 默认安装最新的。
cuDNN Archive 在这里选择其他版本
安装步骤
下载cuDNN安装包
打开终端并使用wget命令下载cuDNN的Debian包:
wget https://developer.download.nvidia.com/compute/cudnn/9.1.1/local_installers/cudnn-local-repo-ubuntu2204-9.1.1_1.0-1_amd64.deb
安装下载的包
使用dpkg命令安装下载的Debian包:
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.1.1_1.0-1_amd64.deb
安装GPG密钥
将cuDNN仓库的GPG密钥复制到系统的keyrings目录以便APT可以验证包的真实性:
sudo cp /var/cudnn-local-repo-ubuntu2204-9.1.1/cudnn-*-keyring.gpg /usr/share/keyrings/
更新软件源
更新APT的软件源,确保cuDNN的仓库已被包含:
sudo apt-get update
安装cuDNN
根据需要安装的CUDA版本,选择对应的cuDNN包进行安装:
对于CUDA 11
sudo apt-get -y install cudnn-cuda-11
对于CUDA 12
sudo apt-get -y install cudnn-cuda-12
验证是否可以GPU加速
pip3 install torch torchvision torchaudio
import torch
print(torch.cuda.is_available())
输出为 True 即表示 CUDA GPU 加速成功
卸载cudnn
sudo apt-get remove --autoremove libcudnn*sudo rm /usr/local/cuda/include/cudnn*.h
sudo rm /usr/local/cuda/lib64/libcudnn*
WSL2 Ubuntu安装NVIDIA cuDNN深度学习库 2
cuDNN Archive 下载tar压缩包
下载完成后执行如下命令安装
tar -xvf cudnn-linux-$arch-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.x.x,X.Y为具体的版本号,如本文实际执行命令为:
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-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*
pytorch安装
官网
pip3 install torch torchvision torchaudio
安装libtorch
https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.3.0%2Bcu121.zip
参考
WSL安装Anaconda
Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA
[yotroy.cool]WSL安装CUDA独显 PyTorch 深度学习环境配置,测速为什么要用WSL?