通过wsl2搭建pytorch1.10+cuda11.4+nvidiadriver深度学习框架(代码片段)

loongembedded loongembedded     2023-02-24     338

关键词:

文章目录


WSL,即Windows Subsystem for Linux(Windows下的Linux子系统),可以免去双系统安装的复杂性,使Linux系统依附于Windows运行。最新的WSL2支持了GPU加速运算,对搞深度学习的是件不错的事。

参考链接

在wsl2(Ubuntu20.04)中安装cudnn
Windows10/11 WSL2 安装nvidia-cuda驱动
win11的ubuntu子系统 WSL2 下配置cuda、cudnn、GPU pytorch环境
Ubuntu 20.04配置cuda-toolkit-11-4以及cuDNN一遍过
通过WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度学习框架全过程
解决conda安装pythorch报错:CondaHTTPError: HTTP 000 CONNECTION FAILED
WSL 上的 CUDA 用户指南

一、WSL的安装

1. 首先去windows官网查看安装方法

windows下WSL安装linuxu系统
按下组合键“WIN+X”,打开管理员模式的命令行,

安装命令:
wsl --install -d # 将更换成想要的版本,例如:ubuntu-20.04

安装后启动ubuntu,报错
在网上找,得到解决方案:下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包

下载链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装演示
下载完毕后,点击程序进行安装,然后点击【Next】,安装完成后如下

再次运行Ubuntu子系统,你就会发现,可以了。

查看已安装的系统、状态、使用的wsl版本。

2. WSL与Windows的文件传输

在Windows资源管理器地址输入:\\wsl$


可以查看以及操作WSL内的文件。
而在WSL中,进入目录/mnt,

二、NVIDIA Driver

WSL2 Ubuntu系统的NVIDIA驱动版本与Windows系统中的NVIDIA驱动版本一致,升级驱动只需要升级Windows下的驱动即可随之更新。

1. 找到显卡型号,到nvidia geforce驱动下载并安装对应的驱动

官方GeForce驱动程序 | NVIDIA

  • 【!!!这里有个坑,就是不用再在Ubuntu系统下再安装显卡驱动了!!!】
    我一开始不知道,安装了很多次都一直报错,提示:
    You do not appear to have an NVIDIA GPU supported by the 510.54 NVIDIA Linux graphics driver installed in this system. For further details, please see the appendix SUPPORTED NVIDIA GRAPHICS CHIPS in the README available on the Linux driver download page at www.nvidia.com.

  • 直到看到这位兄弟的文章,才知道不需要再安装显卡驱动了:链接
    image.png

2. 使用“nvidia-smi”命令查看更新后的版本号

装好之后,在windows和WSL端通过nvidia-smi可查看到版本号

三、CUDA与Pytorch安装

注:WSL只有CUDA 11.x版本支持
首先贴出官方文档,英文的,很全,希望自己琢磨的可以看这个自行进行安装,比如如何使用自己早就在Windows安装好的CUDA 11.x等等,我在这里只会提到我用到的CUDA Toolkit的新安装方法。

1. 下载安装CUDA Toolkit

可直接去官网下载所需版本:
https://developer.nvidia.com/cuda-toolkit-archive
如果你的显卡支持11.4,也可直接运行下述语句:
下载CUDA11.4的命令如下:

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.4.4/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.4-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.4-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

该命令可以只安装CUDA Toolkit,而不会附带安装NVIDIA Driver,等待完成即可。一定要选择的WSL版本,截图如下:

在终端用命令“nvcc -V”能打印出版本信息,则安装成功,提示"Command ‘nvcc’ not found, but can be installed with:"

这并不是因为系统没有安装CUDA,而是环境中没有罢了。

注意: 千万不要执行apt install nvidia-cuda-toolkit,否则就会重新安装一个版本。

解决方法是进入bin目录,首先找到cuda的bin目录,例如:/usr/local/cuda/bin,查看是否有nvcc

1.1 cuda环境变量配置

添加环境变量,sudo vi ~/.bashrc

export PATH=/usr/local/cuda-11.4/bin$PATH:+:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH

按 “ESC” 推出插入模式,“:wq” 保存并退出vim。输出命令“source ~/.bashrc”,立即生效。

再次输入nvcc -V查看即可显示CUDA的版本

1.2 验证cuda是否安装成功

cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make

耐心等待编译…,编译完成后后再输入:

./BlackScholes

出现Test passed说明安装成功。

2.下载和安装cudnn

严格来讲cuDNN不能叫安装。它其实是对CUDA的一些补充,所以“安装”过程很简单。去英伟达官网下载对应CUDA 11.4的cuDNN压缩包(这一步可能需要注册英伟达账号)。解压之后得到cuda目录,cuda目录下面有include和lib64两个子目录,将这两个目录下面的所有文件拷贝到CUDA 11.4安装路径对应的目录下面即可。

英伟达cudnn下载链接
安装cudnn的时候也需要登录Nvidia账号,我下载的如下版本:
找到对应CUDA 11.4版本对应的cudnn

文件保存在D:\\download下,注意,这个路径跟下面的操作有关,(这里的存放路径,原则上必须在子系统里下载安装,但是实际上,和你之前设置的有关)。

2.1 解压cudnn的安装包

把压缩包复制到Ubuntu系统里面去(在Ubuntu中先进入到Windows系统的文件夹下面去,用命令“cd /mnt/d/download”进入目录再用sudo命令复制文件到/usr/local/下,最后用sudo命令解压文件)

cd /mnt/d/dowload/
sudo cp cudnn-11.4-linux-x64-v8.2.4.15.tgz /usr/local/
cd /usr/local/
sudo tar -xvf cudnn-11.4-linux-x64-v8.2.4.15.tgz

tar解压后的信息,可以看到解压之后把cudnn.h、libcudnn*.so这些库解压到/usr/local/cuda下

2.2 解压后的文件复制到对应的cuda位置上

链接,此链接提到要做拷贝和更改权限的操作,

但我看了我的cuda-11.4文件夹下已经有这些文件,所以没有做上面的操作

2.3 检查cudnn是否安装成功

at /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

3.下载并安装Anaconda3

可以去官网下包,通过 \\wsl$ 将包可以直接下载到Ubuntu目录,后面的正常按照Linux中Anaconda的安装步骤进行即可

没翻墙情况下清华镜像站 下载anaconda 的速度较官网上要快很多
链接

3.1 sh命令安装Anaconda3

sh Anaconda3-2022.10-Linux-x86_64.sh

安装完成,我们选择yes让anaconda3安装路径写进环境变量

3.2 “conda info”验证安装是否成功

安装成功后,重启系统,输入“conda info”可看到下面的信息,表示安装成功

4. 下载和安装pytorch

pytorch官网
获取安装pytorch的命令,没有找到对应CUDA11.4 的pytorch版本,网上说可以用CUDA11.3对应的pytorch版本,

用下面的命令安装

 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

报错信息

Collecting package metadata (current_repodata.json): failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/pytorch/linux-64/current_repodata.json>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
'https//conda.anaconda.org/pytorch/linux-64'

4.1 conda命令安装pythorch:添加国内镜像源方式没有成功

ubuntu 20.04 Conda 创建环境出错:Collecting package metadata (current_repodata.json): failed

解决conda安装pythorch报错:CondaHTTPError: HTTP 000 CONNECTION FAILED

重点:去除命令中的 -c pytorch,这一点指令指向了conda官方的Pytorch下载库通道,会非常慢,而且极其容易下载失败,去掉后会到我们之前配置的channel中寻找。
使用命令conda config --show-sources可以查看这个配置文件和它的路径。

通过下面的命令添加清华镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

然后再执行命令

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

这过程可能会有某个软件下载失败的情况,可以再重新执行命令,全部软件成功下载和安装后如下图:

4.2 采用wheel方式安装:没有尝试过


推荐使用pip方式安装,conda会自动安装CUDA Toolkit 11.3。
等待完成,输入命令运行并查看是否成功:

4.3安装成功的验证

python
import torch
x=torch.rand(5,3)
print(x)
print(torch.cuda.is_available()) 

如果显示True,表示成功安装GPU版本pytorch

也可以通过下面的方法验证

import torch
torch.__version__

4.4 卸载pytorch

卸载命令

pip uninstall torch

四、安装yolov5

1. 克隆yolov5代码

git clone https://github.com/ultralytics/yolov5.git #clone yolov5代码
cd yolov5
pip install -r requirements.txt #配置yolov5环境

提示部分所需软件已经安装,但部分还没有

Installing collected packages: tensorboard-plugin-wit, tensorboard-data-server, rsa, protobuf, opencv-python, oauthlib, grpcio, cachetools, absl-py, thop, requests-oauthlib, google-auth, google-auth-oauthlib, tensorboard
Successfully installed absl-py-1.3.0 cachetools-5.2.0 google-auth-2.14.1 google-auth-oauthlib-0.4.6 grpcio-1.50.0 oauthlib-3.2.2 opencv-python-4.6.0.66 protobuf-3.20.3 requests-oauthlib-1.3.1 rsa-4.9 tensorboard-2.11.0 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 thop-0.1.1.post2209072238

【YOLO】在ubuntu上部署yolov5
目标检测—ubantu系统利用yolov5训练自定义检测模型

wsl_04wsl2与windows文件传输(代码片段)

...夹cdmntls则可以显示windows上的CD等盘分区参考通过WSL2搭建Pytorch1.10+CUDA11.4+NVIDIADriver深度学 查看详情

wsl2搭建rancher开发环境

...P地址,截止20211128,WSL2还不能固定IP现在有效的做法可以通过建立网络适配器固定WSL2的IP新建.bat文件,写入下面两行后以管理员执行其中Ubuntu-20.04是通过cmdwsl--list命令获得(发行版Unbutu升级后可能就不是20.04了)主机cmd执行ipconfig/a... 查看详情

利用wsl2搭建qemu仿真vexpress-a9开发环境(代码片段)

利用WSL2搭建Qemu仿真Vexpress-a9开发环境开发环境搭建更新软件源uboot-tools安装交叉编译环境安装qemu安装编译linux镜像和DBT文件启动qemu仿真kernelbusybox制作根文件系统制作rootfs使用u-boot启动kernel下载编译u-bootu-boot利用tftp网络引导方式... 查看详情

wsl2配置docker和php(代码片段)

...PHP文章目录WSL2配置docker和PHP1.了解PHP2.WSL升级为WSL23.WSL2上搭建docker①安装docker②基本使用Ⅰ.开启关闭docker4.docker搭建PHP环境①PHP环境准备拉取`nginx`②HelloPHP(CLI命令行方式)Ⅰ.拉取PHP镜像Ⅱ.运行容器,端口映射查看容器... 查看详情

通过本地网络连接到 WSL2 服务器

】通过本地网络连接到WSL2服务器【英文标题】:ConnectingtoWSL2servervialocalnetwork【发布时间】:2020-07-1501:54:41【问题描述】:我正在我的Windows10机器上使用WSL2/Ubuntu开发一个rails应用程序,这太棒了!问题是我无法从同一网络中的另... 查看详情

利用wsl2搭建qemu仿真vexpress-a9开发环境(代码片段)

利用WSL2搭建Qemu仿真Vexpress-a9开发环境开发环境搭建更新软件源uboot-tools安装交叉编译环境安装qemu安装编译linux镜像和DBT文件启动qemu仿真kernelbusybox制作根文件系统制作rootfs使用u-boot启动kernel下载编译u-bootu-boot利用tftp网络引导方式... 查看详情

pytorch1.10正式版上线:androidnnapi支持来了

点击机器学习算法与Python学习,选择加星标精彩内容不迷路机器之心报道广受人们欢迎的深度学习框架PyTorch刚刚更新了1.10正式版,在CUDAGraphsAPI等方面进行了诸多改进。PyTorch是一个开源的Python机器学习库,基于Torch&#x... 查看详情

pytorch1.10正式版上线:androidnnapi支持来了

点击机器学习算法与Python学习,选择加星标精彩内容不迷路机器之心报道广受人们欢迎的深度学习框架PyTorch刚刚更新了1.10正式版,在CUDAGraphsAPI等方面进行了诸多改进。PyTorch是一个开源的Python机器学习库,基于Torch&#x... 查看详情

wsl简单环境搭建以及踩坑

序言笔者的电脑配置不高,开虚拟机跑linux总觉得太重。最近才了解到windows早就上了wsl2——一款较为轻量的虚拟机软件。所以笔者打算一边安装一边记录笔记,方便以后查阅,同时将内容分享出来,给大家提供一些帮助。环境... 查看详情

断点无法通过 Windows 10 和 WSL2 上的 Visual Studio Code 在 Chrome 中调试 React 应用程序

】断点无法通过Windows10和WSL2上的VisualStudioCode在Chrome中调试React应用程序【英文标题】:BreakpointsnotworkingdebuggingReactappinChromethroughVisualStudioCodeonWindows10andWSL2【发布时间】:2020-09-0905:36:07【问题描述】:在今年的MSBuild会议和终端1.x... 查看详情

WSL2:Python 使用 VS Code 调试器重命名文件

...由code.在WSLUbuntu终端中启动)在Windows上读取和编辑文件(通过/mnt/c访问)。 查看详情

hostconfig.json 在哪里(Docker 桌面 + WSL2 环境)

...任何在制作容器后更改端口映射的命令。但是这个答案说通过更改hostconfig.json文件,我可以更改端口映射。HowdoIassignaportmapp 查看详情

wsl2 中的文件物理存储在哪里? [关闭]

...并不是说我想在文件资源管理器中浏览它们-我知道可以通过在资源管理器中输入\\\\wsl$\\来完成。如果我不得不猜测,我会说文件存储 查看详情

windows10安装wsl2和ubuntu的过程(代码片段)

...dows10环境中安装了2个相同的包导致冲突,所以想到了通过WSL2+Docker的方式进行编程开发。因为DockerDesktop直接安装就行了,不做介绍。本文主要介绍WSL2和Ubuntu的安装过程。一.安装前的环境准备1.升级Windows系统  因为... 查看详情

12步搞定wsl2,安装交互迁移vscode远程调试应有尽有

...在线安装WSL24.离线安装WSL25.提权到root用户6.Windows访问WSL7.通过WSL访问Windows8.在Windows中直接执行Linux的程序9.在Linux中执行Windows命令10.VSCode远程调试VSCode12.将WSL发行版迁移到另外一台机器上1.WSL2概述        WSL是WindowsSubsys 查看详情

wsl2中dockervolume的位置(代码片段)

想通过file/tail方式收集Docker日志,在linux没找到docker的容器目录,dockerinpsect显示的位置也不存在,搜索了一些资料也不对,最后在WSL2whereisdockervolumelocation?找到了答案。按照nvRelax的回复,找到了该位置。第一... 查看详情

Jupyter Notebook 无法在 Ubuntu WSL2 中打开

...令并弹出此错误。有人可以帮忙吗?【问题讨论】:你是通过anaconda安装的吗??请将错误信息发布为文字而不是图像,这将有助于以后在搜索引擎中搜索错误信息的 查看详情

windows11搭建tensorflowgpu开发环境rtx3060:2--基于wsl2docker方式的使用(代码片段)

...巨慢无比???参考文献接上文:windows11搭建TensorFlow2.6GPU开发环境【RTX3060】:1–windows11本地原生方式简介目前我看官网主要推荐docker方式了,那我们就用docker方式试试。而且网上的安装教程也是docker的居多【... 查看详情