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

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


相关推荐

  • vdbench数据校验翻译

    vdbench数据校验翻译本文翻译自vdbench的使用手册中的数据校验章节,如有纰漏,还请不吝赐教。vdbench源码下载地址:https://www.oracle.com/downloads/server-storage/vdbench-source-downloads.html数据校验在性能测试的时候不应该被使用,处理器开销可能影响性能测试的结果。在我开始之前,我想问一个想了很多次的问题:“为什么我使用vdbench去检查数据冲突?我也可以写一个大文件,计算校验和,然后重新读这个文件并比较校验和。”当然,你可.

    2022年5月12日
    53
  • 面试官问你离职原因,你答对了么?

    面试官问你离职原因,你答对了么?

    2022年2月12日
    54
  • 十进制的小数转换为二进制的方法_二进制转十进制公式

    十进制的小数转换为二进制的方法_二进制转十进制公式今天在学习十进制与二进制的相互转换,学到小数的十进制转换到二进制时,所以我想着能不能用我这菜鸡技术,利用C++来实现只把十进制小数转换成二进制。【思路】输入要计算的二进制小数部分“decimals”以及要计算出的二进制位数循环while()部分●进行小数*2的运算,只输出整数部分(获得二进制数值),这部分利用了floor()函数,它会返回比参数小的最大整数●把整数…

    2025年11月22日
    3
  • SQL 配置管理器找不到了

    SQL 配置管理器找不到了想用数据库建立远程连接,于是想把数据库改成IP地址连接,突然发现配置管理器不见了!!!!???百度了一下,有人说可以用win+R打开后,输入SQLServerManager10.msc后确定,就可以找到了,大家可以试试,不知道为什么我的不行。于是,花了点时间找了一下,发现,点击计算机——>右键——>管理——>服务应用程序——>终于找到了。。。…

    2022年7月21日
    11
  • createprocess error=2_CreateProcess

    createprocess error=2_CreateProcessOpenProcess函数声明如下,失败则返回NULL(0,也就是false)#include<Windows.h>HANDLEOpenProcess(DWORDdesiredAccess,//读取权限BOOLblnheritHandle,//是否继承DWORDprocessId//想要读取的PID)代码示例,注意下面的代码可能运行失败,请按照如下设置VS右键项目名(例如ConsoleApplication123)->属性->配置属性(注意左上角是活动D

    2025年11月2日
    3
  • evaluateJavascript_javascript alert报错

    evaluateJavascript_javascript alert报错当前位置:我的异常网»Ajax»jquery.validationEngine验证AJAX不起作用解决方jquery.validationEngine验证AJAX不起作用解决方法www.myexceptions.net网友分享于:2013-03-26浏览:232次jquery.validationEngine验证AJAX不起作用解决办法使用ajax时返回必须是js…

    2022年9月27日
    4

发表回复

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

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