WSL2端配置pytorch GPU加速环境

2023-11-13

Windows端Pytorch GPU加速的教程:Pytorch使用GPU加速的步骤

前置教程:WSL2安装及其python环境配置


配置好WSL2相关环境后,要想对pytorch进行GPU加速,需要进行以下步骤:

  1. 更新Windows系统,只有版本在Win10 21H2以上,也就是目前最新的Win10版本才行,这是一个大坑,官方更新网址:https://www.microsoft.com/zh-cn/software-download/windows10

  2. 在更新系统之后,我们需要给电脑更新驱动,我们需要在Windows端安装一个带有WSL2驱动的nvidia驱动。只需要安装这一个驱动,就可以涵盖Windows和WSL2的驱动,而WSL2内部不需要安装驱动。驱动下载地址:https://developer.nvidia.com/cuda/wsl/download

  3. 安装好驱动后打开WSL2,输入nvidia-smi,应当能够看到:
    在这里插入图片描述

    如果没有请检查前面的步骤是否正确。

  4. 此时我们的驱动支持cuda11.6的安装,但是我们不要在WSL2端直接安装cuda11.6,因为最新的cuda往往是torch尚未支持的,我们应当安装稳定的cuda11.3。

    打开安装地址:https://developer.nvidia.com/cuda-11.3.0-download-archive,选择我们需要的版本,然后在WSL2的控制台输入对应的命令即可。

    在这里插入图片描述

  5. 安装一下相关的依赖库,执行命令:

    sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
    
  6. 执行命令:

    sudo vim ~/.bashrc
    

    在最后添加:

    export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    

    更新文件:

    source ~/.bashrc
    
  7. 此时cuda安装已完成,输入nvcc -V进行检查,如果有下列输出则表示正常:

在这里插入图片描述

  1. 安装CUDNN,这个是cuda用到的一些库。下载地址:https://developer.nvidia.com/rdp/cudnn-archive。我们选择那个v8.2.1的11.x的版本,这个版本适配cuda11.3。我们选择其中的cuDNN Library for Linux (x86_64)进行下载。

  2. 下载好后把文件放到WSL2中的一个地方,可以在WSL2端执行explorer.exe .的命令,使得windows能直接以图形化界面的方式访问WSL2的文件。然后把这个安装包拖到WSL2中即可。

  3. 安装CUDNN,实际上是把这个库放进对应的CUDA位置。执行命令即可:

    tar -zxvf cudnn-11.3-linux-x64-v8.2.1.32.tgz
    sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.3/lib64/
    sudo cp cuda/include/cudnn.h /usr/local/cuda-11.3/include/
    sudo chmod a+r /usr/local/cuda-11.3/include/cudnn.h
    sudo chmod a+r /usr/local/cuda-11.3/lib64/libcudnn*
    
  4. 测试cuda是否能够正常运行,执行命令:

    #找到测试项目BlackScholes
    cd /usr/local/cuda/samples/4_Finance/BlackScholes
     
    #进行编译
    sudo make
     
    #在当前目录查看编译结果
    ./BlackScholes
    

    如果输出以下内容,代表cuda运行正常:

    [./BlackScholes] - Starting...
    GPU Device 0: "Pascal" with compute capability 6.1
    
    Initializing data...
    ...allocating CPU memory for options.
    ...allocating GPU memory for options.
    ...generating input data in CPU mem.
    ...copying input data to GPU mem.
    Data init done.
    
    Executing Black-Scholes GPU kernel (512 iterations)...
    Options count             : 8000000
    BlackScholesGPU() time    : 0.822840 msec
    Effective memory bandwidth: 97.224265 GB/s
    Gigaoptions per second    : 9.722426
    
    BlackScholes, Throughput = 9.7224 GOptions/s, Time = 0.00082 s, Size = 8000000 options, NumDevsUsed = 1, Workgroup = 128
    
    Reading back GPU results...
    Checking the results...
    ...running CPU calculations.
    
    Comparing the results...
    L1 norm: 1.741792E-07
    Max absolute error: 1.192093E-05
    
    Shutting down...
    ...releasing GPU memory.
    ...releasing CPU memory.
    Shutdown done.
    
    [BlackScholes] - Test Summary
    
    NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
    
  5. 接下来就剩下pytorch本身的问题了,我们需要安装好对应的pytorch版本就能顺利地点燃GPU。访问pytorch官网:https://pytorch.org/get-started/locally/https://pytorch.org/get-started/locally/。选择Linux,Stable的pytorch版本。我自己选择的是pip的安装。这里又有一个坑,我在这里装cuda11.3对应的pytorch GPU加速失败了。但是我装cuda10.2对应的pytorch成功点燃GPU了。因此这里我执行的命令是:

    pip3 install torch torchvision torchaudio
    
  6. 检查GPU是否有效,先执行python命令进入python编程环境。然后输入下面的代码:

    import torch
    print(torch.cuda.is_available())
    

    如果输出为True,则说明我们的深度学习的程序可以顺利地利用GPU加速了!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL2端配置pytorch GPU加速环境 的相关文章

随机推荐

  • 开源网盘空间本地挂载神器,挂载百度、阿里云盘、OneDrive等云盘到本地工具-AList

    开源网盘空间本地挂载神器 挂载百度 阿里云盘 OneDrive等云盘到本地工具 AList 什么是Alist 一个支持多种存储 支持网页浏览和 WebDAV 的文件列表程序 由 gin 和 Solidjs 驱动 AList 是一款免费开源支
  • Java中匿名对象

    匿名对象的使用 1 理解 我们创建的对象 没有显式的赋给一个变量名 即为匿名对象 2 特征 匿名对象只能调用一次 3 使用 如下 public class InstanceTest public static void main Strin
  • object转为有序json

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 引入依赖
  • 基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统——NLP自然语言处理算法应用(含Python全部工程源码及训练模型)+数据集

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 Python 环境 服务器环境 模块实现 1 构造数据集 2 识别网络 3 命名实体纠错 4 检索问题类别 5 查询结果 系统测试 1 命名实体识别网络测试 2 知识图谱问答系统整
  • 自定义炫酷powershell

    自定义炫酷powershell 美化 linux上的bash和zsh之类的命令行终端炫酷无比 window上的cmd和powershell丑的不忍直视 很久之前不知参考谁的一篇文章自定义了一下 还算勉强能看得过去 重装电脑时候发现了 便记录
  • 我是疫情期间的幸运儿

    疫情期间的人生百态 疫情持续了这么长时间 有非常非常多的人的工作受疫情的影响 有些人因为疫情 企业经营困难 被迫失业 有些人在疫情严重前夕 选择辞职 然后寻找更好的工作机会 可是因为疫情 被迫延长待业的时间 并且在焦虑中煎熬 有些人本想打算
  • 10秒钟脱口而出十位数相同两位数的乘法

    10秒钟脱口而出十位数相同两位数的乘法 一 范围 十位数相同的两位数 二 目标 计算两位数的相乘 10秒钟脱口而出 三 基本公式 以尾数之和展开讨论 假设两个数分别是10a b以及10a c 那么尾数之和就是b c 序号 分类 公式 举例
  • Python —— matplotlib库的温度图像绘制

    使用的环境是Jupyter Notebook 我是安装了python版本Anaconda 已经内置了各种python包 可进入官网下载 在Anaconda下安装Jupyter Notebook即可在web页面上进行代码编写 在python中
  • Shell--基础--07--基本运算符

    Shell 基础 07 基本运算符 1 介绍 Shell支持多种运算符 包括如下 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算 但是可以通过其他命令来实现 例如 awk 和 expr e
  • fancyhdr宏包设置latex页眉页脚

    LaTeX的fancyhdr宏包的使用 CTEXwiki关于fancyhdr的说明可以在这里找到 在latex中用自定义页眉页脚 一般都要使用宏包fancy 关键是琢磨一下下面的例子 在看看相应的说明 一般就可以得到你想要的结果了 下面的内
  • 腾讯云轻量数据库mysql服务快速入门!

    快速入门 本文旨在介绍如何快速使用轻量数据库服务 帮助用户快速了解轻量数据库服务使用的全流程 从数据库的创建到基本使用 您需要完成如下操作 创建数据库 登录 轻量数据库服务购买页 根据实际需求选择各项配置信息 确认无误后 单击立即购买 地域
  • styled-components常见使用方法

    yarn add styled components import styled from styled components 1 基础使用 const BoxStyle styled div color red 2 UI组件加样式 imp
  • 数据结构-malloc申请动态空间-链表的创建

    一 malloc申请动态空间注意以下事项 1 malloc申请动态空间时必须声明类型 2 使用malloc申请的空间在使用完成之后必须使用free释放 3 malloc申请空间的类型必须和指向他的指针类型匹配 such as int p p
  • 挖掘视频网站【优酷】上被截断的视频的地址--001

    不知道大家看视频的时候有没有注意过 一个稍微长的视频 比如超过20分钟 你刚开始看的时候暂停播放 它的进度条会在中途某一个位置停止加载 当你把播放位置调节到那个停顿的地方 视频又开始继续加载 如果视频还有很多 它会停顿很多次 我们不禁要问
  • 网管实战(7):CISCO网管设备学习笔记

    虽然现在管理的都是华为和H3C的网络设备 但有时候还是要管理一些思科的设备 比如CISCO 4506 CISCO 6504 3750等 作为网管小白 很多时候都需要查一些命令来操作 这里是我2019年9月25日开始学习CISCO设备时的学习
  • 给Delphi社群的公开信

    给Delphi社群的公开信 Borland RAD部门副总裁
  • php爬虫教程(五)提高爬虫抓取效率

    之前有一次抓取x浪图片库的时候200w图片跑了一整天的时间 后来采取多进程抓取提高了很高的效率 多进程的实现可以参考这个方法 http blog csdn net u014017080 article details 46925725 主进
  • 《代码大全2》第2章 用隐喻来更充分地理解软件开发

    Code Complete 2 持续更新中 来杯咖啡的博客 CSDN博客这本书有意设计成使你既可以从头到尾阅读 也可以按主题阅读 1 如果你想从头到尾阅读 那么你可以直接从第2章 用隐喻来更充分地理解软件开发 开始钻研 2 如果你想学习特定
  • 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题

    通用串行总线USB Universal Serial Bus 协议从1 0版本发展到现在 由于数据传输速度快 接口方便 支持热插拔等优点使USB设备被越来越多人使用 目前 市场上以USB2 0为接口的产品越来越多 而绘制符合要求的PCB板在
  • WSL2端配置pytorch GPU加速环境

    Windows端Pytorch GPU加速的教程 Pytorch使用GPU加速的步骤 前置教程 WSL2安装及其python环境配置 配置好WSL2相关环境后 要想对pytorch进行GPU加速 需要进行以下步骤 更新Windows系统 只