IT评测·应用市场-qidao123.com技术社区
标题: 痛楚的windows WSL2的CUDA安装过程 [打印本页]
作者: 商道如狼道 时间: 2024-10-16 03:54
标题: 痛楚的windows WSL2的CUDA安装过程
1. 为什么要安装?
在做深度学的过程中,发现大部分的情况下都是在Linux体系的情况下做的。本身又不想装双体系,又想便捷地使用Linux来调用GPU,进行模型的推理。网上搜索了一番,使用VMWare虚拟机好像调用不了CUDA的。颠末多番查找,发现WSL2,这个虚拟机是可以直接调用CUDA 运算的,而且有人安装乐成并跑通了。然后就开始了痛楚的情况安装过程了~~~。
2. 安装前的预备:
一台带有GPU的x86_64,windows10 或win10以上的体系的电脑。(我这台是笔记本电脑,比较久了,还可以战斗{*-*})
3. 安装WSL:
必须运行 Windows 10 版本 2004 及更高版本 1,本电脑是win10 22H2版本,假如之前有安装过Virtua Box 虚拟机的话会显示叫你卸载Virtualbox 才气升级,我这边明显都卸载了,还显示未卸载,烦闷了很久,找了一波,终于找到了 2 这个链接,可以卸载的VirtuaBOx 都卸了,删的也都删了。问题就出在C盘的一个文件夹没删 virtualbox这个文件一样平常在C:Program Files下(如ldplayer) 这个文件夹删完就可以升级体系了。
升级完体系后就可以安装WSL了。首先以管理员的方式打开 Windows PowerShell,输入下令
- wsl --install
- #将默认版本设置为WSL 2
- wsl --set-default-version 2
复制代码 不要在微软市肆安装Ubuntu20.04,会直接安装在C盘上面的,C盘安装虚拟机,真的很炸裂。详细怎样在其他盘安装请参考 3 主要的下令如下:
- cd D:\Linux-ubuntu\
- # 下载
- Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
- # 压缩
- Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
- # 自己解压
复制代码 鼠标左键双击解压出来的.exe 文件,有报错的话 安裝 WSL2 Linux Kernel 更新包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi,安装完后再双击.exe 文件打开Ubuntu虚拟机。至此,WSL2的虚拟机安装完成。
检察 虚拟机状态,在PowerShell中输入以下下令。
- # 查看wsl 版本
- wsl -l -v
- # 查看虚拟机的状态
- wsl --status
- # 关闭虚拟机
- wsl --shutdown
复制代码 我们是本身的电脑,可以设置默认打开方式是root用户打开。首先 双击.exe 文件, 进入Ubuntu用户。输入以下下令设置root账号密码 4
- 打开终端(ctrl+alt+t)
- 1、输入 :sudo passwd root
- 2、输入 : 输入user的密码
- 3、输入 :输入新的UNIX密码
- 4、输入 :重新输入新的UNIX密码
- 设置完成
- 输入: su
- 密码:
- 进入root模式下
复制代码 设置进入Ubuntu的用户是root 用户,在PowerShell 中输入
- ubuntu2004.exe config --default-user root
复制代码 虚拟机和Windows电脑的文件传输,可以在文件导航窗口输入
至此WSL2的Ubuntu虚拟机开端完成安装了。
4 固定ip,方便使用xshell大概MobaXterm毗连虚拟机:
ssh的安装,安装软件一样平常使用root用户,避免出现各种权限问题的错误。参考 5
- # root目录下
- 更新源 apt-get update
- 1.安装ssh;(请确保有网络,可ping www.baidu.com确认)
- apt-get install openssh-server
- 2.重启ssh服务;
- service ssh restart
- 3.查看启动情况;
- ps -e |grep ssh
- 关闭防火墙
- 1.查看防火墙是否关闭
- ufw status
- 2.关闭防火墙
- ufw disable
- 3.启动22端口
- ufw allow 22
复制代码 网上搜了蛮久的,说是WSL2每次重启ip都会改变的,无法固定。不过可以使用脚本开启wsl2虚拟机,每次使用脚本打开就可以了,参考 6 。要使用管理员权限打开脚本。以下保存为xxx.bat文件
- @echo off
- setlocal enabledelayedexpansion
- :: 重新拉起虚拟机,并且用root身份,启动ssh服务和docker服务
- wsl -u root service ssh start | findstr "Starting ssh" > nul
- if !errorlevel! equ 0 (
- echo docker ssh success
- :: 设置wsl2虚拟机ubuntu的ip
- wsl -u root ip addr | findstr "192.168.10.101" > nul
- if !errorlevel! equ 0 (
- echo wsl ip has set
- ) else (
- :: 没有的话给安排上
- wsl -u root ip addr add 192.168.10.101/24 broadcast 192.168.10.0 dev eth0 label eth0:1
- echo set wsl ip success: 192.168.10.101
- )
- :: 设置windows宿主机网卡vEthernet (WSL)的IP,与虚拟机同一网段
- ipconfig | findstr "192.168.0.102" > nul
- if !errorlevel! equ 0 (
- echo windows ip has set
- ) else (
- netsh interface ip add address "vEthernet (WSL)" 192.168.10.102 255.255.255.0
- echo set windows ip success: 192.168.10.102
- )
- )
- pause
复制代码 至此 固定ip完用MobaXterm,毗连,脚本是root启动ssh的,毗连一样平常也使用root用户。
5. 安装英伟达的驱动,安装wsl对应的cuda
英伟达的驱动要安装在Windows体系上面。一开始以为安装最新的版本驱动就可以了,看来是想多了,不行。。。nvidia-smi ,报错。厥后颠末一番查找 7 发现要下载对应的驱动版本537.58才行 8 下载驱动的链接 。下载安装好驱动后。使用管理员权限,打开第4个步骤的xxx.bat文件,启动虚拟使用MobaXterm 毗连虚拟机。在root用户下,输入一下下令 9 :
- cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi
- chmod ogu+x /usr/bin/nvidia-smi
复制代码输入 nvidia-smi ,没有啥问题,就阐明英伟达驱动安装完成。
安装cuda:10 cuda下载链接
- # Ubuntu 下载链接
- wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run
- sh cuda_12.6.0_560.28.03_linux.run
复制代码设置情况:在.bashrc 文件大概/etc/profile 文件添加情况变量。发起在/etc/profile 下设置。这样所有的用户都可以用到。
- vi /etc/profile
- # 根据自己的的路径,粘贴到 profile的最后面
- export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
- export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
复制代码保存好后 输入
source /etc/profile
激活情况。输入
nvcc -V
有显示对应的版本阐明cuda安装完毕。
安装annaconda3来管理python 情况 版本下载路径 ,下载Linux x86_84 版本的。
- wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
复制代码下载完后,安装
- # 赋予权限chmod +x Anaconda3-2024.06-1-Linux-x86_64.sh# 安装
- ./Anaconda3-2024.06-1-Linux-x86_64.sh
- # 一直yes下去,安装完后 输入以下命令 激活annaconda3
- source ~/.bashrc
复制代码
创建 pytorch 的python为3.8的python conda情况:
conda create -n pytorch python=3.8 -y
创建完后 ,使用
conda activate pytorch
激活情况。
用conda 下载 pytorch 深度学习框架
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
安装完后,测试是否可以调用cuda:11
输入
python
import torch
torch.cuda.is_available()
输入 Ture 则阐明pytorch 可以调用GPU啦!!!!!
6. 安装docker
docker 用来做情况的摆设好坏常方便的,相称于一个小型的虚拟机,每个docker容器情况都是相互隔离的。打开虚拟机,进入root用户,输入docker 下令提示安装docker。要使用apt 来安装,另一个下令的安装会出现一些未知的问题。输入下令
- apt update
- apt install docker.io
复制代码使用 dockerd,启动docker。
让docker可以使用cuda ,参考 12 输入以下下令
- distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
- curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker-keyring.gpg
- curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-docker-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- sudo apt-get update
- sudo apt-get install -y nvidia-docker2
复制代码检验是否完成安装 13
- docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
复制代码
至此,docker安装完成。
开机自启,和ssh一样的脚本,如下,添加了,启动docker
- @echo off
- setlocal enabledelayedexpansion
- :: 重新拉起虚拟机,并且用root身份,启动ssh服务和docker服务
- wsl -u root service docker start | findstr "Starting Docker" > nul
- wsl -u root service ssh start | findstr "Starting ssh" > nul
- if !errorlevel! equ 0 (
- echo docker start success
- echo docker ssh success
- :: 设置wsl2虚拟机ubuntu的ip
- wsl -u root ip addr | findstr "192.168.10.101" > nul
- if !errorlevel! equ 0 (
- echo wsl ip has set
- ) else (
- :: 没有的话给安排上
- wsl -u root ip addr add 192.168.10.101/24 broadcast 192.168.10.0 dev eth0 label eth0:1
- echo set wsl ip success: 192.168.10.101
- )
- :: 设置windows宿主机网卡vEthernet (WSL)的IP,与虚拟机同一网段
- ipconfig | findstr "192.168.0.102" > nul
- if !errorlevel! equ 0 (
- echo windows ip has set
- ) else (
- netsh interface ip add address "vEthernet (WSL)" 192.168.10.102 255.255.255.0
- echo set windows ip success: 192.168.10.102
- )
- )
- pause
复制代码至此,情况都安装好了,开始AI开发之旅吧!!!!!
参考毗连:
1 安装 WSL | Microsoft Learn
2 Win10升级要卸载virtualbox virtualbox怎么办_更新win10要卸载virtual-CSDN博客
3 https://zhuanlan.zhihu.com/p/690428564
4ubuntu无法远程root远程登录(远程调试)root直接登录(没有root用户登录)(创建root用户新建root用户)PermitRootLogin yes(prohibit-password)_ubunto18.04root 用户无法远程登岸-CSDN博客
5 xshell安装与设置,Xftp(不能毗连虚拟机xshell无法毗连,openssh-server,服务没开怎么传输数据?)(虚拟机和windows之间自由复制)_xshell不能关联xftp-CSDN博客
6 给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通_wsl2 与宿主机用同一个局域网ip-CSDN博客
7 wsl2输入nvidia-smi后显示一部分信息后报segmentation fault的错误(已解决)_nvidia-smi segmentation fault-CSDN博客
8 英伟达官网怎么找老版本的显卡驱动_英伟达显卡驱动官网-CSDN博客
9 Windows下Linux虚拟机共享GPU显卡-CSDN博客
10 WSL2和Docker使用GPU_wsl2容器使用gpu-CSDN博客
11 检察Pytorch的GPU是否可用_pytorch:测试gpu是否可用-CSDN博客
12 WSL 中的 GPU 加快 ML 训练 | Microsoft Learn
13 WSL2和Docker使用GPU_wsl2容器使用gpu-CSDN博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) |
Powered by Discuz! X3.4 |