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.rhkb.cn/news/74442.html

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

相关文章

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有: 工具最新版本:Visual Paradigm 17.1 更新时间:2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…

论文阅读-BotPercent: Estimating Twitter Bot Populations from Groups to Crowds

目录 摘要 引言 方法 数据集 BotPercent架构 实验结果 活跃用户中的Bot数量 Bot Population among Comment Sections Bot Participation in Content Moderation Votes Bot Population in Different Countries’ Politics 论文链接:https://arxiv.org/pdf/23…

基于SpringCloud+Vue的分布式架构网上商城系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Qt、C/C++环境中内嵌LUA脚本、实现LUA函数的调用执行

Qt、C/C环境中内嵌LUA脚本、实现LUA函数的调用执行 Chapter1. Qt、C/C环境中内嵌LUA脚本、实现LUA函数的调用执行1、LUA简介2、LUA脚本的解释器和编译器3、C环境中内嵌LUA执行LUA函数调用4、Qt内嵌LUA执行LUA函数调用5、运行结果6、内嵌LUA脚本在实际项目中的案例应用 Chapter1…

迁移学习(新人必看)

先说一下深度学习常见的问题: 1.数据集不够,通常用数据增强解决。 2.参数难以确定,训练时间长,这就需要用迁移学习来解决 什么叫迁移学习呢:比方说有一个对100w的自行车数据集,并用VGG模型训练好的网络&…

MySQL 极速安装使用与卸载

目录 mysql-5.6.51 极速安装使用与卸载 sqlyog工具 mysql简化 mysql-8.1.0下载配置 再完善 mysql-5.6.51 极速安装使用与卸载 mysql-8.1.0下载安装在后 mysql中国官网 MySQLhttps://www.mysql.com/cn/ 点击MySQL社区服务器 点击历史档案 下载完 解压 用管理员运行cmd&a…

第一百二十一天学习记录:线性代数:矩阵乘法运算(宋浩板书)

在编程和学习数据结构的过程中,发现有些算法会用到矩阵和矩阵的乘法运算,因此先将这一个知识点学习一下。 矩阵和行列式的区别 各种矩阵的概念 矩阵运算 乘法☆ 总结三条不满足

【前端|Javascript第1篇】一文搞懂Javascript的基本语法

欢迎来到JavaScript的奇妙世界!作为前端开发的基石,JavaScript为网页增色不少,赋予了静态页面活力与交互性。如果你是一名前端小白,对编程一无所知,或者只是听说过JavaScript却从未涉足过,那么你来对了地方…

【二等奖方案】Web攻击检测与分类识别赛题「爆汁大橘少糖」团队解题思路

2022 CCF BDCI 数字安全公开赛 赛题「Web攻击检测与分类识别」 地址:http://go.datafountain.cn/4Zj 爆汁大橘少糖战队获奖方案 团队简介 团队成员来自海康威视研究院,目前从事大数据算法相关的工作,具有丰富的数据挖掘实践经验。曾获得过…

【2023 华数杯全国大学生数学建模竞赛】 C题 母亲身心健康对婴儿成长的影响 Python代码实现

【2023 华数杯全国大学生数学建模竞赛】 C题 母亲身心健康对婴儿成长的影响 1 题目 母亲是婴儿生命中最重要的人之一,她不仅为婴儿提供营养物质和身体保护, 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况,如抑郁、焦虑、压力等…

MySQL操作命令详解:增删改查

文章目录 一、CRUD1.1 数据库操作1.2 表操作1.2.1 五大约束1.2.2 创建表1.2.3 修改表1.2.3 删除表1.2.4 表数据的增删改查1.2.5 去重方式 二、高级查询2.1 基础查询2.2 条件查询2.3 范围查询2.4 判空查询2.5 模糊查询2.6 分页查询2.7 查询后排序2.8 聚合查询2.9 分组查询2.10 联…

C高级DAY2

1.思维导图 2. 递归实现,输入一个数,输出这个数的每一位 递归实现,输入一个数,输出这个数的二进制c 写一个脚本,包含以下内容: 显示/etc/group文件中第五行的内容创建目录/home/ubuntu/copy切换工作路径到…

MySQL(一)基本架构、SQL语句操作、试图

MySQL系列文章 MySQL(一)基本架构、SQL语句操作、试图 MySQL(二)索引原理以及优化 MySQL(三)SQL优化、Buffer pool、Change buffer MySQL(四)事务原理及分析 MySQL(五&a…

性能优化-react路由懒加载和组件懒加载

背景 随着项目越来越大,打包后的包体积也越来越大,严重影响了首屏加载速度,需要对路由和组件做懒加载处理 主要用到了react中的lazy和Suspense。 废话不多说,直接上干货 路由懒加载 核心代码 import React, { lazy, Suspens…

MySQL数据库——多表操作

文章目录 前言多表关系一对一关系一对多/多对一关系多对多关系 外键约束创建外键约束插入数据删除带有外键约束的表的数据删除外键约束 多表联合查询数据准备交叉连接查询内连接查询外连接查询左外连接查询右外连接查询满外连接查询 子查询子查询关键字ALL 关键字ANY 和 SOME 关…

MySQL 远程操作mysql

可以让别人在他们的电脑上操作我电脑上的数据库 create user admin identified with mysql_native_password by admin; //设置账号密码都为admingrant all on *.* to admin; //给admin账号授权 授权完成

RabbitMQ-API

这里写目录标题 Hello word 模式添加依赖生产者消费者获取信道工具类 Work Queues模式消费者代码 C1开启多线程运行启动 消费者代码 C2生产者代码 消息应答自动应答消息应答的方法Multiple 的解释消息自动重新入队消息手动应答代码消费者API 队列持久化消息持久化不公平分发消息…

MyBatis-基础操作-CRDU

前端页面展示提供对于数据的删除操作,后端为其实现 根据id删除数据(D) 具体的SQL语句 delete from emp where id 17; 接口方法 Delete("delete from emp where id #{id} ")public int DeleteByID(Integer id); 测试方法 Testpub…

【项目设计】MySQL 连接池的设计

目录 👉关键技术点👈👉项目背景👈👉连接池功能点介绍👈👉MySQL Server 参数介绍👈👉功能实现设计👈👉开发平台选型👈👉MyS…

【力扣】 12. 整数转罗马数字 模拟

力扣 12. 整数转罗马数字 解题思路 当某个位数的某个数不为4或9时,高位对应的字符总是在低位对应的字符前面。只有当该数为4或9时,低位对应的字符在高位前面。 根据这一特性,我们进行分类讨论。 1.当数为4时,则对应的罗马数为 10 …