GPU利用率低的解决办法

GPU利用率低的解决办法watch-n0.1-dnvidia-smi#检查GPU利用率参数解决办法:1.dataloader设置参数2.增大batchsize3.减少IO操作,比如tensorboard的写入和打印。4.换显卡

大家好,又见面了,我是你们的朋友全栈君。

watch -n 0.1 -d nvidia-smi # 检查GPU利用率参数

解决办法:

1. dataloader设置参数

GPU利用率低的解决办法

2.增大batchsize

3. 减少IO操作,比如tensorboard的写入和打印。

4. 换显卡

5. 性能分析

import time
import cProfile, pstats, profile


def add(x, y):
    time.sleep(1)
    value = x + y
    return value


def sub(x, y):
    time.sleep(1.5)
    value = x - y
    return value


class TestProfile:
    def calc(self, x, y):
        time.sleep(1)
        add_result = add(x, y)
        sub_result = sub(x, y)
        print(f"{x} add {y} result is: {add_result}")
        print(f"{x} sub {y} result is: {sub_result}")


if __name__ == '__main__':
    obj = TestProfile()
    # 要分析的函数。
    # 原来调用该怎么写就写成相应的字符串形式就好了
    be_analysed_function = "obj.calc(1,2)"
    # 给此次监测命个名,随意起。
    analysed_tag_name = "test_analysed"
    # 使用c语言版的profile进行分析,好处是自身占用资源更少,对函数的耗时定位更准确
    cProfile.run(be_analysed_function, analysed_tag_name)
    # 使用python版的profile进行分析,格式都一样的。
    # profile.run(be_analysed_function, analysed_tag_name)

    # 对此次监测进行分析。
    s = pstats.Stats(analysed_tag_name)
    # 移除文件目录,减少打印输出
    # s.strip_dirs()
    # 排序。
    # "time"表示按函数总耗时排序,python3.7后可用枚举变量pstat.SortKey来取排序项
    s.sort_stats("time")
    # 打印统计结果
    # ncalls--函数被调用的次数
    # tottime--此函数在所有调用中共耗费的时间秒数(不包括其调用的子函数耗费的时间)。分析耗时主要看这个。
    # percall--此函数平均每次被调用耗时。分析耗时次要看这个
    # cumtime--执行此函数及其调用子函数所占用的时间。
    # percall--此函数平均每次调用每个子函数所用的时间。
    s.print_stats()
    # print_stats的结果并不显示谁调用的谁,比如是A调用的C还是B调用的C是不清楚的
    # 要打印出函数的调用者,可使用print_callers()
    # 结果中右边是被调用函数,左边是调用该函数的函数
    # s.print_callers()

https://blog.csdn.net/DD_PP_JJ/article/details/111829869

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147473.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月30日 上午8:36
下一篇 2022年6月30日 上午8:36


相关推荐

  • LOTO课5:三极管音频放大电路实践[通俗易懂]

    LOTO课5:三极管音频放大电路实践[通俗易懂]我们在项目中经常会遇到音频信号的采集处理,我们今天做一个最简单的音频采集模块。它的电路其实就是在我们上节课的三极管的放大电路上的一个改进,在上一节课三极管放大电路的基础之上,将输出信号换成驻极体话筒,输出端加上截止频率在20KHZ左右的RC低通滤波电路,通过滤波电路来滤除频率在20KHZ以上的噪声信号。上一节课关于三极管放大的文章链接如下:添加链接描述设计的电路原理图如图所示,通过传感器获取一个交流的小信号,经过三级管放大电路放大信号之后再进行输出:等不及打板,手工焊接了一个样品进行试验:通过

    2022年5月3日
    75
  • mysql主从复制原理面试_数据库主从复制 读写分离

    mysql主从复制原理面试_数据库主从复制 读写分离为什么要做主从复制在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运行。做数据的热备,主库宕机后能够及时替换主库,保证业务可用性。架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O……

    2022年8月13日
    9
  • 切比雪夫不等式及其证明

    切比雪夫不等式及其证明切比雪夫不等式及其证明定理 设随机变量 XXX 具有数学期望 E X E X muE X 方差 D X 2D X sigma 2D X 2 则对 0 forall epsilon ge0 0 不等式 P X 2 2P X mu ge epsilon le frac sigma 2 epsilon 2 P X

    2026年3月19日
    0
  • 激活windows 10

    激活windows 10企业版1、鼠标右键点击window键,点击”windowpowershell(管理员)”,进入管理员命令行。2、输入以下命令,进行删除密钥slmgr.vbs/upk此时弹出窗口显示“已成功卸载了产品密钥”。3、接着输入以下命令:密钥可以自己网上找对应的版本,可以更换slmgr/ipkNPPR9-FWDCX-D2C8J-H872K-2YT43弹出窗口提示:“成功的安装了产品密钥”。4、继续输入以下命令:slmgr/skmszh.us.to#这个名

    2022年5月29日
    47
  • python数组操作方法_python 数组赋值

    python数组操作方法_python 数组赋值python列表数组类型,用中括号代表,具有顺序关系,可以修改,是最常用的数组bracket=[‘b’,’r’,’a’,’c’,’k’,’e’,’t’]pyhon元组数组类型,用小括号代表,具有顺序关系,不可以修改,是只读型数组,用来保护不需要改变的数据parentheses=(‘p’,’a’,’r’,’e’,’n’,’t’,’h’,’e’,’s’,’e’,’s’)python字典数组

    2022年8月13日
    13
  • Android经典蓝牙开发全流程

    Android经典蓝牙开发全流程一 基本介绍 所谓蓝牙 Bluetooth 技术 实际上是一种短距离无线电技术 最初是由爱立信公司公司发明的 技术始于爱立信公司 1994 方案 它是研究在移动电话和其他配件间进行低功耗 低成本无线通信连接的方法 发明者希望为设备间的通讯创造一组统一规则 标准化协议 用来解决用户间相互不兼容的移动电子设备 1998 年 5 月 20 日 索尼以立信 国际商业机器 英特尔 诺基亚及东芝公司等业界龙头创立 特别兴趣小组 SpecialInter 即蓝牙技术联盟的前身 目标是开发一

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号