pytorch 限制GPU使用效率详解(计算效率)
作者:脸码 发布时间:2022-01-24 06:55:53
问题
用过 tensorflow 的人都知道, tf 可以限制程序在 GPU 中的使用效率,但 pytorch 中没有这个操作。
思路
于是我想到了一个代替方法,玩过单片机点灯的同学都知道,灯的亮度是靠占空比实现的,这实际上也是计算机的运行原理。 那我们是不是也可以通过增加 GPU 不工作的时间,进而降低 GPU 的使用效率 ?
主要代码
import time
...
rest_time = 0.15
...
for _ in range( XXX ):
...
outputs = all_GPU_operations( data_set ) # 假设所有的GPU运算都在这里
time.sleep( rest_time ) # 让显卡休息一会再进行下个循环的使用
...
...
这样子 GPU 的使用效率就可以减小了。
rest_time 的越大 GPU 使用率越低,rest_time 的越小 GPU 使用率越高。
缺点是很难直接控制 GPU 的具体使用率,rest_time 得自己调试后确定。
补充知识:深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
在用tensorflow训练神经网络时,发现训练迭代的速度时而快时而慢,监督的GPU使用率也是周期性变化,通过了解,发现原因是:
GPU在等待CPU读取,预处理,并传输数据过来,因此要提高GPU的使用率,降低GPU的等待时间,需要加快CPU的处理速度.
在PYTORCH中的解决方案是用torch.utils.data.DataLoader,用num_workers设置线程数:
torch.utils.data.DataLoader(image_datasets[x],
batch_size=batch_size,
shuffle=True,
num_workers=8,
pin_memory=True)
在tensorflow中的解决方案是用tf.data.Dataset.map(num_parallel_calls=8)中的num_parallel_calls设置读取数据的线程数:
用 tf.data读取数据, tf.data.Dataset中有一个map函数,它有个num_parallel_calls参数,可以控制CPU的线程,加快数据的读取速度,一般将线程设置为8效果最好.
来源:https://blog.csdn.net/qq_38329094/article/details/105435559
猜你喜欢
- MySQL中有许多操作符和函数可以返回字符串。本节回答这个问题:返回的字符串使用什么字符集和 校对规则?对于简单的函数,即接收字符串输入然后
- 1、环境搭建需安装:python3.6Pycharm专业版django 2.2.6mysqlclientpip install django
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 什么是闭包?简单说,闭包就是根据不同的配置信息得到不同的结果。再来看看专业的解释:闭包(Closure)是词法闭包(Lexical Clos
- 大家好,我是朱小五。大家如果看过我的书《快学Python:自动化办公轻松实战》,会发现Python操作PDF文档内容,主要围绕PDF文档的内
- 新手学习Python,之前在网上看见一位朋友写的40行Python代码搞定京东秒杀,想在淘宝上帮女朋友抢玩偶,所以就照猫画虎的写了下淘宝的秒
- split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串,并返回分割后的字符串列
- 简介简介:零代码的22个小游戏集合 作者:Grant Jenks版本:2.4.0安装:D:\>pip install fre
- 这里其实是通过获取视频截图的方式获得大小的下面列举两个小demoimport cv2 #引入模块 获取视频截图的from PIL impor
- 存储和读取ASCII码形式的byte数据Python可以存byte数据到txt,但不要用str的方式直接存,转成数字列表储存,这样方便读取L
- 最新在学习 Python,PyCharm 编辑器启动太慢奈何我电脑太烂,所以我选择使用 Sublime Text3 做为编辑器不过 Subl
- 坑:在python3.7环境下,通过官方文档安装sanic即扩展插件,但是 sanic-ext包不起作用,具体的表现为:无法打开路由/doc
- 前言如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。今
- excel中有图片是很常见的,但是通过python读取excel中的图片没有很好的解决办法。网上找了一种很聪明的方法,原理是这样的:1、将待
- 1、str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况。>>> s1="
- 如下所示:# -*- coding: utf-8 -*-# 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。# 当
- 前言每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是Fals
- 本文实例讲述了python实现unicode转中文及转换默认编码的方法。分享给大家供大家参考,具体如下:一、在爬虫抓取网页信息时常需要将类似
- 目录1. np.multiply()函数1.1数组场景1.2 矩阵场景2. np.dot()函数2.1 数组场景2.2 矩阵场景3. 星号(
- 本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。一、