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/147474.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 六轴机器人轨迹规划之五段位置s曲线插补

    六轴机器人轨迹规划之五段位置s曲线插补1 轨迹规划的定义轨迹规划 trajectorypl 是运动规划 motionplanni 研究的主要内容 运动规划指的是运动插补 在起始点和终止点之间插入中间点序列 实现沿着轨迹的平稳运动 运动控制包含路径规划 pathplanning 和轨迹规划 路径规划是规划位置 在起终点之间经过的路径点 轨迹规划是规划时间 将路径点与时间相对应 对于我们的六轴机器人而言轨

    2025年6月27日
    3
  • 理解TIME_WAIT,彻底弄清解决TCP: time wait bucket table overflow

    理解TIME_WAIT,彻底弄清解决TCP: time wait bucket table overflow一直对这个问题知其然而不知其所以然,这些日子再次碰到,看了很多的资料,彻底解决一下,呵呵,先上个图,所有理解围绕着此图来看,此图描述了四次挥手的整个过程:650)this.width=650;”title=”QQ截图20160425180531.png”alt=”wKiom1cd6_mwEZr2AACU62IiAp4333.png”src=”http://s5.51cto.com/wyfs

    2022年5月12日
    51
  • Java面试宝典4.0版

    Java面试宝典4.0版JAVA面试宝典V4.0版本基础1.简述JDK跟JRE的区别Jdk是java开发人员在开发过程使用的软件开发包,他提供了java的开发环境和运行环境JRE是JavaRuntimeEnviroment是指Java的运行环境如果你只想跑java程序,只要安装jre就够了,如果要从事开发就得安装jdk2.简述path跟classpat…

    2022年9月20日
    4
  • Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结

    Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结1.增加一个字段 代码如下 复制代码 //增加一个字段,默认为空altertableuseraddCOLUMNnew1VARCHAR(20)DEFAULTNULL; //增加一个字段,默认不能为空altertableuseraddCOLUMNnew2VARCHAR(20)NOTNULL; 2….

    2022年6月1日
    54
  • Postman 汉化(Postman中文版)

    Postman 汉化(Postman中文版)postman官网下载地址https://www.postman.com/downloads/postman汉化包https://github.com/hlmd/Postman-cn/releases1.首先从官网下载postMan安装包2.下载postMan汉化包(app.zip)3.将汉化包解压并复制到Postman目录下4.重启postMan即可完成汉化…

    2025年8月7日
    3
  • springboot框架图解_spring boot框架搭建

    springboot框架图解_spring boot框架搭建本文链接:https://blog.csdn.net/qq_41063141/article/details/83239941

    2022年8月20日
    6

发表回复

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

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