PyTorch - GPU入门教程1

news2025/1/21 18:38:15

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.0

Attached GPUs                             : 1
GPU 00000000:01:00.0
    Product Name                          : NVIDIA GeForce GTX 1650
    Product Brand                         : GeForce
    Product Architecture                  : Turing
    Display Mode                          : Disabled
    Display Active                        : Disabled
    Persistence Mode                      : N/A
    MIG Mode
        Current                           : N/A
        Pending                           : N/A
    Accounting Mode                       : Disabled
    Accounting Mode Buffer Size           : 4000
    Driver Model
        Current                           : WDDM
        Pending                           : WDDM
    Serial Number                         : N/A
    GPU UUID                              : GPU-fc8d7cba-de6b-c3b4-f29a-1554c1aa0ba0
    Minor Number                          : N/A
    VBIOS Version                         : 90.17.46.00.ab
    MultiGPU Board                        : No
    Board ID                              : 0x100
    Board Part Number                     : N/A
    GPU Part Number                       : 1F99-753-A1
    Module ID                             : 1
    Inforom Version
        Image Version                     : G001.0000.02.04
        OEM Object                        : 1.1
        ECC Object                        : N/A
        Power Management Object           : N/A
    GPU Operation Mode
        Current                           : N/A
        Pending                           : N/A
    GSP Firmware Version                  : N/A
    GPU Virtualization Mode
        Virtualization Mode               : None
        Host VGPU Mode                    : N/A
    IBMNPU
        Relaxed Ordering Mode             : N/A
    PCI
        Bus                               : 0x01
        Device                            : 0x00
        Domain                            : 0x0000
        Device Id                         : 0x1F9910DE
        Bus Id                            : 00000000:01:00.0
        Sub System Id                     : 0x09EF1028
        GPU Link Info
            PCIe Generation
                Max                       : 3
                Current                   : 3
                Device Current            : 3
                Device Max                : 3
                Host Max                  : 3
            Link Width
                Max                       : 16x
                Current                   : 8x
        Bridge Chip
            Type                          : N/A
            Firmware                      : N/A
        Replays Since Reset               : 0
        Replay Number Rollovers           : 0
        Tx Throughput                     : 0 KB/s
        Rx Throughput                     : 0 KB/s
        Atomic Caps Inbound               : N/A
        Atomic Caps Outbound              : N/A
    Fan Speed                             : N/A
    Performance State                     : P8
    Clocks Throttle Reasons
        Idle                              : Active
        Applications Clocks Setting       : Not Active
        SW Power Cap                      : Not Active
        HW Slowdown                       : Not Active
            HW Thermal Slowdown           : Not Active
            HW Power Brake Slowdown       : Not Active
        Sync Boost                        : Not Active
        SW Thermal Slowdown               : Not Active
        Display Clock Setting             : Not Active
    FB Memory Usage
        Total                             : 4096 MiB
        Reserved                          : 146 MiB
        Used                              : 710 MiB
        Free                              : 3239 MiB
    BAR1 Memory Usage
        Total                             : 256 MiB
        Used                              : 2 MiB
        Free                              : 254 MiB
    Compute Mode                          : Default
    Utilization
        Gpu                               : 0 %
        Memory                            : 0 %
        Encoder                           : 0 %
        Decoder                           : 0 %
    Encoder Stats
        Active Sessions                   : 0
        Average FPS                       : 0
        Average Latency                   : 0
    FBC Stats
        Active Sessions                   : 0
        Average FPS                       : 0
        Average Latency                   : 0
    Ecc Mode
        Current                           : N/A
        Pending                           : N/A
    ECC Errors
        Volatile
            SRAM Correctable              : N/A
            SRAM Uncorrectable            : N/A
            DRAM Correctable              : N/A
            DRAM Uncorrectable            : N/A
        Aggregate
            SRAM Correctable              : N/A
            SRAM Uncorrectable            : N/A
            DRAM Correctable              : N/A
            DRAM Uncorrectable            : N/A
    Retired Pages
        Single Bit ECC                    : N/A
        Double Bit ECC                    : N/A
        Pending Page Blacklist            : N/A
    Remapped Rows                         : N/A
    Temperature
        GPU Current Temp                  : 56 C
        GPU Shutdown Temp                 : 99 C
        GPU Slowdown Temp                 : 94 C
        GPU Max Operating Temp            : 75 C
        GPU Target Temperature            : N/A
        Memory Current Temp               : N/A
        Memory Max Operating Temp         : N/A
    Power Readings
        Power Management                  : N/A
        Power Draw                        : 3.65 W
        Power Limit                       : N/A
        Default Power Limit               : N/A
        Enforced Power Limit              : N/A
        Min Power Limit                   : N/A
        Max Power Limit                   : N/A
    Clocks
        Graphics                          : 300 MHz
        SM                                : 300 MHz
        Memory                            : 405 MHz
        Video                             : 540 MHz
    Applications Clocks
        Graphics                          : N/A
        Memory                            : N/A
    Default Applications Clocks
        Graphics                          : N/A
        Memory                            : N/A
    Deferred Clocks
        Memory                            : N/A
    Max Clocks
        Graphics                          : 1785 MHz
        SM                                : 1785 MHz
        Memory                            : 6001 MHz
        Video                             : 1650 MHz
    Max Customer Boost Clocks
        Graphics                          : 1785 MHz
    Clock Policy
        Auto Boost                        : N/A
        Auto Boost Default                : N/A
    Voltage
        Graphics                          : N/A
    Fabric
        State                             : N/A
        Status                            : N/A
    Processes
        GPU instance ID                   : N/A
        Compute instance ID               : N/A
        Process ID                        : 8260
            Type                          : C
            Name                          : D:\PYTHON\Anaconda\envs\basic_torch\python.exe
            Used GPU Memory               : Not available in WDDM driver model
        GPU instance ID                   : N/A
        Compute instance ID               : N/A
        Process ID                        : 14084
            Type                          : C+G
            Name                          : 
            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.coloradmin.cn/o/812911.html

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

相关文章

Qgis二次开发-加载本地离线瓦片地图

1.使用详情 准备离线瓦片地图数据:首先,需要获取离线瓦片地图数据。可以从一些开源地图提供商(如OpenStreetMap)下载地图切片数据,或者使用一些工具(如MapTiler)将自己的地图数据切片成瓦片格式…

【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)

基于本地知识库的问答 1、简介(1)ChatGLM2-6B(2)LangChain(3)基于单一文档问答的实现原理(4)大规模语言模型系列技术:以GLM-130B为例(5)新建知识库…

分布式限流方案及实现

优质博文:IT-BLOG-CN 一、限流的作用和意义 限流是对高并发访问进行限制,限速的过程。通过限流来限制资源,可以提高系统的稳定性和可靠性,控制系统的负载,削峰填谷,保证服务质量。 服务限流后的常见处理…

CSS动画——实现波浪摇摆效果...

一、效果展示 以下主要实现四个动画: 元素上下摇摆动画波浪上下摇摆动画气泡上升及消失动画连续气泡右飘动画 二、实现思路 这里主要讲一下波浪上下摇摆动画和连续气泡右飘动画的实现思路 这里拿一张波浪图来举例解释实现波浪动画的思路: 波浪的摇…

14-测试分类

1.按照测试对象划分 ①界面测试 软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流的最直接的一层,界面的设计决定了用户对设计的软件的第一印象。界面如同人的面孔,具有吸引用户的直接优势&#xf…

深入理解Gradle构建系统的工作原理

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

《被讨厌的勇气》勇敢的人先享受世界

《被讨厌的勇气》勇敢的人先享受世界 岸见一郎,古贺史健 著 (岸见一郎:日本作家,心理学家,哲学家。致力于研究哲学和阿德勒心理学。) 渠海霞 译 文章目录 《被讨厌的勇气》勇敢的人先享受世界[toc]第一夜 我…

iOS 应用上架流程详解

iOS 应用上架流程详解 欢迎来到我的博客,今天我将为大家分享 iOS 应用上架的详细流程。在这个数字化时代,移动应用已经成为了人们生活中不可或缺的一部分,而 iOS 平台的 App Store 则是开发者们发布应用的主要渠道之一。因此,了解…

从电容到晶体管的基本介绍

​随着科技的不断进步,元器件在现代电子学中扮演着至关重要的角色。从电容器到晶体管,各种元器件都具有不同的特性和用途。本文将从基础知识出发,介绍电子学中常见的元器件,以及它们在电路中的作用和应用。 电容器 电容器是一种…

CommonCollections6链分析

前面和CC1一样 优点是不限制jdk版本和cc的版本 先开一个ChainedTransformer 然后创LazyMap 我们顺便执行一下避免上面写错 能弹计算器 没问题 后面就是CC6不同的地方了 我们需要一个TiedMapEntry 因为需要一个类调用了get方法 在TiedMapEntry的getValue()方法中调用了get()…

哪些元器件在未来会有更广泛的应用?

随着科技的发展和进步,电子技术已经成为现代社会的重要组成部分。元器件作为电子产品的基本构成单元,其发展和应用对于电子技术的进步和创新有着至关重要的作用。随着人工智能、物联网和智能制造等新兴技术的快速发展,一些元器件已经或者将在…

vue基础-diff算法

vue基础-diff算法 1、根元素改变2、根元素不变 1、根元素改变 同级比较-根元素的变化-整个dom树删除重建 2、根元素不变 同级比较,根元素不变-属性改变更新属性

【计算机网络】HTTP详解

系列综述: 💞目的:本系列是个人整理为了秋招工作面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于小林Codeing进行的,每个知识点的修正和深入主要参考…

Prometheus 服务端与客户端

服务端安装配置 1)下载服务端: wget https://github.com/prometheus/prometheus/releases/download/v2.43.0-rc.0/prometheus-2.43.0-rc.0.linux-amd64.tar.gztar zxvf prometheus-2.43.0-rc.0.linux-amd64.tar.gz#解压 tar -xvf prometheus-2.32.1.li…

iOS开发-启动页广告实现

iOS开发-启动页广告实现 启动页广告实现是一个非常常见的广告展示模式。 就是在启动时候显示广告,之后点击跳转到广告页面或者其他APP。 一、实现启动页广告 启动页广告控件实现,将View放置在keyWindow上,显示广告图片,点击广告…

https://app.hackthebox.com/machines/Sau

https://app.hackthebox.com/machines/Sau https://app.hackthebox.com/machines/Sau1.info collecting └─$ nmap -A 10.10.11.224 -T4 Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-30 15:36 HKT Nmap scan report for 10.10.11.224 (10.10.11.224) Host is up (…

Arrays(数组)工具类

java.util.Arrays 是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。 Arrays.toString ( 数组名 )将参数数组变成字符串(按照默认格式:[10, 20, 30])Array.sort ( 数组名 ) 按照默认升序&…

C++ ------类和对象详解六大默认成员函数

文章目录 类的6个默认成员函数概念 构造函数概念特点 析构函数概念特征 拷贝构造函数概念特点 赋值运算符重载运算符重载的概念特性赋值运算符重载格式特性 取地址及const取地址操作符重载 类的6个默认成员函数 如果我们定义一个类,然后这个类中什么也没有。那么这里…

java之juc

juc是java.util.current的简写,意思是并发编程。 锁是什么?如何判断锁的是谁? 生产者和消费者问题 synchronized版本 package com.demo.juc.pc;/*** 线程之间的通信问题,生产者和消费者问题!* 线程交替执行** a b …