PyTorch - GPU入门教程1

1. 安装GPU版本的PyTorch

登录PyTorch官网https://pytorch.org/,下载对应CUDA版本的PyTorch【不能直接pip install,否则安装上的是CPU版本的】
在这里插入图片描述

2. 查看GPU信息

(1)重要信息

!nvidia-smi

我的GPU版本很垃圾,本blog仅为阐述使用方法
在这里插入图片描述

(2)详细信息

!nvidia-smi -i 0 -q
==============NVSMI LOG==============Timestamp                                 : Sun Jul 30 19:59:38 2023
Driver Version                            : 527.37
CUDA Version                              : 12.0Attached GPUs                             : 1
GPU 00000000:01:00.0Product Name                          : NVIDIA GeForce GTX 1650Product Brand                         : GeForceProduct Architecture                  : TuringDisplay Mode                          : DisabledDisplay Active                        : DisabledPersistence Mode                      : N/AMIG ModeCurrent                           : N/APending                           : N/AAccounting Mode                       : DisabledAccounting Mode Buffer Size           : 4000Driver ModelCurrent                           : WDDMPending                           : WDDMSerial Number                         : N/AGPU UUID                              : GPU-fc8d7cba-de6b-c3b4-f29a-1554c1aa0ba0Minor Number                          : N/AVBIOS Version                         : 90.17.46.00.abMultiGPU Board                        : NoBoard ID                              : 0x100Board Part Number                     : N/AGPU Part Number                       : 1F99-753-A1Module ID                             : 1Inforom VersionImage Version                     : G001.0000.02.04OEM Object                        : 1.1ECC Object                        : N/APower Management Object           : N/AGPU Operation ModeCurrent                           : N/APending                           : N/AGSP Firmware Version                  : N/AGPU Virtualization ModeVirtualization Mode               : NoneHost VGPU Mode                    : N/AIBMNPURelaxed Ordering Mode             : N/APCIBus                               : 0x01Device                            : 0x00Domain                            : 0x0000Device Id                         : 0x1F9910DEBus Id                            : 00000000:01:00.0Sub System Id                     : 0x09EF1028GPU Link InfoPCIe GenerationMax                       : 3Current                   : 3Device Current            : 3Device Max                : 3Host Max                  : 3Link WidthMax                       : 16xCurrent                   : 8xBridge ChipType                          : N/AFirmware                      : N/AReplays Since Reset               : 0Replay Number Rollovers           : 0Tx Throughput                     : 0 KB/sRx Throughput                     : 0 KB/sAtomic Caps Inbound               : N/AAtomic Caps Outbound              : N/AFan Speed                             : N/APerformance State                     : P8Clocks Throttle ReasonsIdle                              : ActiveApplications Clocks Setting       : Not ActiveSW Power Cap                      : Not ActiveHW Slowdown                       : Not ActiveHW Thermal Slowdown           : Not ActiveHW Power Brake Slowdown       : Not ActiveSync Boost                        : Not ActiveSW Thermal Slowdown               : Not ActiveDisplay Clock Setting             : Not ActiveFB Memory UsageTotal                             : 4096 MiBReserved                          : 146 MiBUsed                              : 710 MiBFree                              : 3239 MiBBAR1 Memory UsageTotal                             : 256 MiBUsed                              : 2 MiBFree                              : 254 MiBCompute Mode                          : DefaultUtilizationGpu                               : 0 %Memory                            : 0 %Encoder                           : 0 %Decoder                           : 0 %Encoder StatsActive Sessions                   : 0Average FPS                       : 0Average Latency                   : 0FBC StatsActive Sessions                   : 0Average FPS                       : 0Average Latency                   : 0Ecc ModeCurrent                           : N/APending                           : N/AECC ErrorsVolatileSRAM Correctable              : N/ASRAM Uncorrectable            : N/ADRAM Correctable              : N/ADRAM Uncorrectable            : N/AAggregateSRAM Correctable              : N/ASRAM Uncorrectable            : N/ADRAM Correctable              : N/ADRAM Uncorrectable            : N/ARetired PagesSingle Bit ECC                    : N/ADouble Bit ECC                    : N/APending Page Blacklist            : N/ARemapped Rows                         : N/ATemperatureGPU Current Temp                  : 56 CGPU Shutdown Temp                 : 99 CGPU Slowdown Temp                 : 94 CGPU Max Operating Temp            : 75 CGPU Target Temperature            : N/AMemory Current Temp               : N/AMemory Max Operating Temp         : N/APower ReadingsPower Management                  : N/APower Draw                        : 3.65 WPower Limit                       : N/ADefault Power Limit               : N/AEnforced Power Limit              : N/AMin Power Limit                   : N/AMax Power Limit                   : N/AClocksGraphics                          : 300 MHzSM                                : 300 MHzMemory                            : 405 MHzVideo                             : 540 MHzApplications ClocksGraphics                          : N/AMemory                            : N/ADefault Applications ClocksGraphics                          : N/AMemory                            : N/ADeferred ClocksMemory                            : N/AMax ClocksGraphics                          : 1785 MHzSM                                : 1785 MHzMemory                            : 6001 MHzVideo                             : 1650 MHzMax Customer Boost ClocksGraphics                          : 1785 MHzClock PolicyAuto Boost                        : N/AAuto Boost Default                : N/AVoltageGraphics                          : N/AFabricState                             : N/AStatus                            : N/AProcessesGPU instance ID                   : N/ACompute instance ID               : N/AProcess ID                        : 8260Type                          : CName                          : D:\PYTHON\Anaconda\envs\basic_torch\python.exeUsed GPU Memory               : Not available in WDDM driver modelGPU instance ID                   : N/ACompute instance ID               : N/AProcess ID                        : 14084Type                          : C+GName                          : Used GPU Memory               : Not available in WDDM driver model

3. 查看可用GPU数量

torch.cuda.device_count()

在这里插入图片描述

4. 这两个函数允许我们在请求的GPU不存在的情况下运行代码

def try_gpu(i=0):  """如果存在,则返回gpu(i),否则返回cpu()。"""if torch.cuda.device_count() >= i + 1:return torch.device(f'cuda:{i}')return torch.device('cpu')def try_all_gpus():  """返回所有可用的GPU,如果没有GPU,则返回[cpu(),]。"""devices = [torch.device(f'cuda:{i}') for i in range(torch.cuda.device_count())]return devices if devices else [torch.device('cpu')]try_gpu(), try_gpu(10), try_all_gpus()

在这里插入图片描述

5. 在GPU上定义tensor

在这里插入图片描述

6. 在GPU上定义网络

在这里插入图片描述

7. 再次查看GPU信息

!nvidia-smi

在这里插入图片描述

如果发现仅仅定义了几个很小的tensor,GPU显存就占用了好几百兆,这是正常现象,GPU初始化需要占用的显存,根据测试,不同GPU初始化需要的显存大小不同,1060 Ti需要583M左右,而服务器上的V100需要1449M左右,这部分无法优化。初始化显存的意思是,即使只是执行a = torch.randn((1, 1)).to(‘cuda’)命令,显存的占用可能达到几百M,这其中只有极少是张量a占用的,绝大部分都是GPU初始化的占用。不必担心~

为了验证上面的说法,可以定义XX = torch.ones(2000, 3000, device=try_gpu()) ,然后发现,显存占用从710M增加到734M,600W数据量大小的tensor只占用了很少的显存。

8. 重启显存归0(CPU运行内存和GPU显存本质都是RAM,断电即无)

!nvidia-smi

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

COMSOL三维多孔介质3D多相材料颗粒夹杂复合材料达西渗流模拟

在实际工程中渗流路径往往不是单一材料,如渗流发生在夹杂碎石的土体中,这就造成渗流的复杂性。这里采用两项材料通过COMSOL达西定律模块对渗流进行模拟。 模型采用CAD随机球体颗粒&过渡区插件建立后导入到COMSOL软件内。 模型包括渗流发生的外侧基…

SOP/详解*和**/python数据结构(iter,list,tuple,dict)/ 解包

一、错误解决合集 1. > combined_seq.named_children() 2. isinstance 2th parameter : must be a type or tuple of types > 改为tuple,不要用列表。改为 LLLayer (nn.Conv2d,nn.Linear) 3. File “test.py”, line 90, in calculate_fin_fout print(“hi”…

非线性弹簧摆的仿真(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

<van-empty description=““ /> 滚动条bug

使用 <van-empty description"" /> 时&#xff0c;图片出现了个滚动条&#xff0c;图片可以上下滑动。 代码如下&#xff1a; <block wx:if"{{courseList.length < 0}}"><van-empty description"" /> </block> <…

教你使用Pyinstaller将Python源码打包成可执行程序exe的方法

pyinstaller是一个常用的Python打包工具&#xff0c;可以将Python程序打包成独立的可执行文件&#xff0c;支持Windows、Linux和macOS等平台。 ★★★Pyinstaller有许多参数&#xff0c;以下是其中一些主要参数的含义&#xff1a; -F, --onefile&#xff1a;打包一个单个文件…

项目管理困扰?这里有个6W3H解决方案

引言 在项目管理的过程中&#xff0c;我们经常面临各种各样的挑战和问题。例如&#xff0c;如何确定项目的目标&#xff1f;如何分配资源&#xff1f;何时开始执行项目&#xff1f;在哪里进行项目&#xff1f;这些问题如果没有得到正确的解答&#xff0c;将会严重影响项目的进…

【C++】初阶 --- 引用(超级详细版!!!)

文章目录 &#x1f36a;一、引用的概念&#x1f36a;二、引用的特性&#x1f37f;1、引用在定义时必须初始化&#x1f37f;2、一个变量可以有多个引用&#x1f37f;3、引用一旦引用一个实体&#xff0c;再不能引用其他实体 &#x1f36a;三、常引用(被const 修饰的引用)&#x…

Flink读取mysql数据库(java)

代码如下: package com.weilanaoli.ruge.vlink.flink;import com.ververica.cdc.connectors.mysql.source.MySqlSource; import com.ververica.cdc.connectors.mysql.table.StartupOptions; import com.ververica.cdc.debezium.JsonDebeziumDeserializationSchema; import org…

Excel修改日期格式,改变日期的筛选方式

我们有两列日期数据&#xff1a; 左边这一列筛选会显示&#xff1a; 右边这一列筛选会显示&#xff1a; 修改格式&#xff0c;将【日期1】改为【日期2】 将【日期1】的格式修改为文本格式即可 修改格式&#xff0c;将【日期2】改为【日期1】 选中日期2&#xff0c;点击【数据…

JDK各版本重要变革

各版本更新详情 JDK8(LTS)--2014/3 语法层面 lambda表达式(重要特色之一) 一种特殊的匿名内部类,语法更加简洁允许把函数作为一个方法的参数,将代码象数据一样传递&#xff0c;即将函数作为方法参数传递基本语法: <函数式接口> <变量名> (参数...) -> { 方法…

LeetCode 热题 100 JavaScript --226. 翻转二叉树

给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 3&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 提示&#xff1a; 树中节点数目范围在 [0, 100] 内 -100 < Node.val < 100 var invertTree function(root…

哈工大计算机网络课程网络安全基本原理详解之:消息完整性与数字签名

哈工大计算机网络课程网络安全基本原理详解之&#xff1a;消息完整性与数字签名 这一小节&#xff0c;我们继续介绍网络完全中的另一个重要内容&#xff0c;就是消息完整性&#xff0c;也为后面的数字签名打下基础。 报文完整性 首先来看一下什么是报文完整性。 报文完整性…

基于springboot+jpa+mysql+html网上中药商城系统

基于springbootjpamysqlhtml网上中药商城系统 一、系统介绍二、功能展示1.主页(客户)2.登陆&#xff08;客户&#xff09;3.注册&#xff08;客户&#xff09;4.购物车(客户)5.我的订单&#xff08;客户&#xff09;6.用户管理&#xff08;管理员&#xff09;7.分类管理&#x…

远程连接身份验证错误,又找不到加密Oracle修正

一、问题描述 远程连接服务器出现了错误&#xff0c;错误信息为&#xff1a;远程连接身份验证错误&#xff0c;又找不到加密Oracle修正。 二、原因分析 出错原因&#xff1a;Windows的CVE-2018-0886 的 CredSSP 更新将CredSSP 身份验证协议默认设置成了“缓解”&#xff0c;…

Informer 论文学习笔记

论文&#xff1a;《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》 代码&#xff1a;https://github.com/zhouhaoyi/Informer2020 地址&#xff1a;https://arxiv.org/abs/2012.07436v3 特点&#xff1a; 实现时间与空间复杂度为 O ( …

轻松批量文件改名!一键翻译重命名文件夹/文件,省时高效!」

繁忙的数字时代&#xff0c;我们经常需要处理大量的文件和文件夹。而手动逐个更改文件名不仅费时费力&#xff0c;还容易出错。因此&#xff0c;我们为您带来了一款强大的工具——批量文件改名软件&#xff01;现在&#xff0c;您可以一键翻译重命名文件夹和文件&#xff0c;轻…

在centos7.9安装tomcat8,并配置服务启动脚本,部署jpress应用

目录 一、简述静态网页和动态网页的区别 二、简述 Webl.0 和 Web2.0 的区别 三、 安装Tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用 3.1、Tomcat简介 3.2、安装Tomcat 3.2.1、配置环境 3.2.2、安装JDK 3.2.3、安装tomcat8 3.2.4、访问主页&#xff1…

go 如何知道一个对象是分配在栈上还是堆上?

如何判断变量是分配在栈&#xff08;stack&#xff09;上还是堆&#xff08;heap&#xff09;上&#xff1f; Go和C不同&#xff0c;Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用&#xff0c;则优先分配到栈上&#xff0c;否则分配到堆上。判断语句&#xff1a;…

数据可视化(4)散点图及面积图

1.简单散点图 #散点图 #scatter(x,y) x数据&#xff0c;y数据 x[i for i in range(10)] y[random.randint(1,10) for i in range(10)] plt.scatter(x,y) plt.show()2.散点图分析 #分析广告支出与销售收入相关性 dfcarpd.read_excel(广告支出.xlsx) dfdatapd.read_excel(销售…

1.3 eureka+ribbon,完成服务注册与调用,负载均衡源码追踪

本篇继先前发布的1.2 eureka注册中心&#xff0c;完成服务注册的内容。 目录 环境搭建 采用eurekaribbon的方式&#xff0c;对多个user服务发送请求&#xff0c;并实现负载均衡 负载均衡原理 负载均衡源码追踪 负载均衡策略 如何选择负载均衡策略&#xff1f; 饥饿加载…