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

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


相关推荐

  • JS 获取当前年份,月份[通俗易懂]

    JS 获取当前年份,月份[通俗易懂]functiondoHandleDate(){varmyDate=newDate();vartYear=myDate.getFullYear();vartMonth=myDate.getMonth();varm=tMonth+1;if(m.toString().length==1){m…

    2026年3月3日
    4
  • Android浏览器插件开发[通俗易懂]

    Android浏览器插件开发[通俗易懂]最近做android浏览器插件学到一些东西和大家分享:需要了解的有以下几个方面的知识:1.插件是什么2.android浏览器怎样加载插件和创建实例3浏览器插件和脚本语言的交互4插件内部的数据流一浏览器插件介绍:  1.1概述浏览插件本质是一个功能模块,是浏览器功能的一种扩充。其载体是dll或则so文件。它依附浏览器完成某一特定的功能。插件需要实现浏览器规定的一些函数这些函数叫着NPAPI.正是插件实现了这些函数才可以和浏览器交互。同时浏览器也为插件提供一些函数。在android平台下还有一些专有的函数

    2022年5月14日
    60
  • C语言指针的初始化和赋值

    1、指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。例如:inta=25;int*ptr=&a;intb[10];int*point=b;  int*p=&b[0];

    2022年4月18日
    58
  • 企业微信接入OpenClaw升级:支持扫码一键部署与自动化文档操作

    企业微信接入OpenClaw升级:支持扫码一键部署与自动化文档操作

    2026年3月17日
    2
  • spring框架中各种注解区别以及混淆点「建议收藏」

    spring框架中各种注解区别以及混淆点「建议收藏」spring框架中各种注解区别以及混淆点

    2022年4月23日
    48
  • 怎么设置ie兼容性视图设置_ie浏览器兼容性视图怎么设置

    怎么设置ie兼容性视图设置_ie浏览器兼容性视图怎么设置【关键词】:IE兼容性视图【适用版本】:FusionAccess各版本【故障模式】:兼容性/应用软件兼容性【问题现象】:通过域策略和用户配置文件,设定IE的兼容性视图后,新发放虚拟机兼容性视图设置没有效果兼容性视图设置界面:工具->兼容性视图设置域策略配置界面:【告警信息】:无【问题分析】:通过processmonitor抓取IE兼容性视图设置更改的注册表项,通过脚本导入到当前登录用户…

    2025年10月4日
    4

发表回复

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

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