当前位置: 首页 > article >正文

指定GPU运行python程序

文章目录

  • 一、命令行运行python程序时
  • 二、在python程序中指定GPU
  • 三、使用gpustat库可实时监测
  • 四、使用python的pynvml库
  • 参考文献

一、命令行运行python程序时

1、首先查看哪些GPU空闲,nvidia-smi显示当前GPU使用情况。

nvidia-smi

在这里插入图片描述

  • GPU:编号,这里是0和1

  • Fan:风扇转速,在0到100%之间变动,第一个是29%

  • Name:显卡名,这里两块都是GeForce

  • Temp:显卡温度,第一个是60摄氏度

  • Perf:性能状态,从P0到P12,P0性能最大,P12最小

  • Persistence-M:持续模式的状态开关,该模式耗能大,但是启动新GPU应用时比较快,这里是off

  • Pwr:能耗

  • Bus-Id:GPU总线

  • Disp.A:表示GPU的显示是否初始化

  • Memory-Usage:显存使用率

  • GPU-Util:GPU利用率,第一个是74%,第二个未用

  • Compute M.:计算模式

2、然后指定空闲的GPU运行python程序。

CUDA_VISIBLE_DEVICES=0,2,3 python test.py

二、在python程序中指定GPU

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"

PS:周期性输出GPU使用情况

每 10s 显示一次GPU使用情况:

watch -n 10 nvidia-smi

三、使用gpustat库可实时监测

安装gpustat库

pip install gpustat

运行命令

gpustat --w

效果如下:
在这里插入图片描述

四、使用python的pynvml库

安装pynvml库

pip install pynvml

下面为使用示例:

import pynvml
pynvml.nvmlInit()
handle = pynvml.nvmlDeviceGetHandleByIndex(0) # 指定显卡号
meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
print(meminfo.total/1024**2) #总的显存大小(float)
print(meminfo.used/1024**2)  #已用显存大小(float)
print(meminfo.free/1024**2)  #剩余显存大小(float)

参考文献

  • https://www.iotword.com/4559.html

http://www.kler.cn/a/14768.html

相关文章:

  • 若[x]补 =1,x1x2x3x4x5x6,其中x取0或1,若要x>-32,应当满足
  • 4月24日作业
  • Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn
  • #cordova添加plugin的方法#
  • day-01 one-day projects
  • sd卡中病毒的表现及sd文件消失后的恢复方法
  • 23年校赛
  • 【Mybatis代码生成器Mybatis-Generator】
  • JavaScript每日五题面试题(第六天)
  • 备忘录设计模式(Memento Pattern)[论点:概念、组成角色、示例代码、框架中的运用、适用场景]
  • 创新引擎:云计算五大优势解锁企业潜力
  • 大数据Doris(五):FE 扩缩容
  • CVE漏洞复现-CVE-2021-22205 GitLab未授权 RCE
  • 自动化测试的生命周期是什么?
  • 【设计模式】工厂模式
  • 自定义RecyclerView.LayoutManager实现类实现卡片层叠布局的列表效果
  • CDQ分治学习笔记
  • 二叉树遍历(先序、中序、后序、层次遍历)递归、循环实现
  • Python列表和字典前面为什么要加星号(**)?
  • 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)