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

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


相关推荐

  • cockpit二次开发_laravel api

    cockpit二次开发_laravel api背景:最近公司要基于cockpit,来定制自己的一个服务器管理web应用。嗯。。cockpit是啥?能干嘛?我要拿它干嘛?如你所见,我此刻是懵逼的。cockpit了解我熟练的打开了百度又打开了bing哦吼,二度懵逼。经过几番了解,大概是知道了LinuxCockpit是一个基于Web界面的应用,它提供了对系统的图形化管理。因为功能集成,对服务器管理来说,可以称得上是神器,深受linux开发者的喜爱。(呵呵。。)最后我大概是知道了,公司就是想让我在人..

    2025年7月27日
    4
  • html div 隐藏滚动条样式,div滚动条样式隐藏与显示

    html div 隐藏滚动条样式,div滚动条样式隐藏与显示DIV滚动条样式是可以设置的,CSS滚动条同样也可以显示与隐藏,对div设置滚动条,设置其横向滚动条和纵向滚动条样式应该怎么做呢?要设置CSS滚动条样式,需要用到overflow-y和overflow-x来设置div盒子对象右侧和底部滚动条效果。同时也可以使用CSS样式设置html框架iframe的滚动条隐藏,接下来为大家介绍。常规overflow怎么设置overflow-y:scroll总是显…

    2022年7月12日
    33
  • 2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]

    2021年Vue最常见的面试题以及答案(面试必过)[通俗易懂]这里写目录标题对MVVM的理解?Vue数据双向绑定原理Vue的响应式原理vue中组件的data为什么是一个函数vue中created与mounted区别Vue中computed与method的区别Vue中watch用法详解Vue中常用的一些指令说说vue的生命周期对MVVM的理解?MVVM由Model、View、ViewModel三部分构成,Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,它负责将数据模型转化成UI展现出来;ViewMode

    2022年5月31日
    110
  • idea企业开发之插件推荐

    idea企业开发之插件推荐推荐在企业开发中,使用IntelliJIDEA时常使用到的插件。

    2022年6月6日
    58
  • [转] can not find module @angular/animations/browser

    [转] can not find module @angular/animations/browser

    2021年6月14日
    131
  • NB-IoT、LoRa、RPMA从业者请勿选择性遗忘,你们绕得开监管的“五指山”吗?

    NB-IoT、LoRa、RPMA从业者请勿选择性遗忘,你们绕得开监管的“五指山”吗?

    2022年3月13日
    51

发表回复

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

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