WeiJoseph

在 Titan RTX 上的深度学习模型还没有 CPU 和 1650 快

  •  
  •   WeiJoseph · Oct 19, 2020 · 3678 views
    This topic created in 2055 days ago, the information mentioned may be changed or developed.
    一个机器学习小作业 mnist 数据集上的一个小模型 同样的代码在 titan rtx 的服务器上要跑 2min 我用自己 i9 9980 的 MacBook Pro 只需要 1:35
    在同学 1650 的笔记本上用 cuda 只跑了 1:28
    十分疑惑 求大佬解释
    15 replies    2021-01-20 22:50:55 +08:00
    ztyMCR
        1
    ztyMCR  
       Oct 19, 2020
    两分钟真的看的出啥来吗,是不是 GPU 没启用
    WeiJoseph
        2
    WeiJoseph  
    OP
       Oct 19, 2020 via iPhone
    @ztyMCR 肯定启用了噻 几个电脑上都是一份代码
    csunny
        3
    csunny  
       Oct 19, 2020
    看看运行时的负载呢
    WeiJoseph
        4
    WeiJoseph  
    OP
       Oct 19, 2020 via iPhone
    @csunny 就 50 多瓦
    minami
        5
    minami  
       Oct 19, 2020
    GPU 调用是异步的,可能是计时不准的原因。建议加入取回 CPU 的操作,保证 GPU 上任务计算完毕
    Porphet
        6
    Porphet  
       Oct 19, 2020
    如果显存几乎占满了,50w 的负载,原因可能是模型设计的问题。如果没满,可以尝试提高 batch_size
    WeiJoseph
        7
    WeiJoseph  
    OP
       Oct 19, 2020 via iPhone
    @minami 感谢 我回去试试
    Porphet
        8
    Porphet  
       Oct 19, 2020
    模型设计问题有可能是没有及时 backward,导致大量的计算图被暂时存储起来没有 backward,也就不能及时释放
    WeiJoseph
        9
    WeiJoseph  
    OP
       Oct 19, 2020
    @Porphet 24G 显存用了 1G 吧
    Porphet
        10
    Porphet  
       Oct 19, 2020
    @WeiJoseph 提高 batch_size, 这么少的显存占用肯定跑不满 rtx, 简直是浪费这块大显存显卡黑盒😂
    WeiJoseph
        11
    WeiJoseph  
    OP
       Oct 19, 2020 via iPhone
    @Porphet 感谢 晚上我提升一下 batch size
    different
        12
    different  
       Oct 19, 2020 via Android
    如 5 楼所示,可能 GPU 并行数据量太少了,大部分时间都在 cpu_gpu 交互或者 cpu 串行时间过长。
    你的服务器 cpu 可能主频较低,服务器 cpu 一般都不超过 2.5GHz 。服务器 cpu 主频一般随着核心数的增多,主频会稍微下降,大部分在 2.2GHz 以下。

    为了凸现 gpu 的优势,缩小 cpu 差距,你可能需要增大在 GPU 并行的数据量。不知道和楼上说的 batch size 是否同一个意思。
    Escapist367
        13
    Escapist367  
       Oct 19, 2020
    代码发出来看看

    很可能是读取数据和加载模型的时间占了总耗时的大部分
    高主频+SSD 的个人电脑在读数据和加载模型上相对于服务器有巨大优势
    WeiJoseph
        14
    WeiJoseph  
    OP
       Oct 19, 2020
    @minami
    @Porphet
    @different
    @Escapist367
    今晚拉大 batch_size 虽然占用的显存还是只有 1G 但是终于运算速度终于大幅度超过 cpu 了 看来是我之前 batch_size 设置的太小了
    不过 batch_size 拉大以后训练效果就下降了 综合下来还是感觉这个小模型和小数据集根本不需要服务器来跑
    感谢大家
    kickcellardoor
        15
    kickcellardoor  
       Jan 20, 2021
    @WeiJoseph 加 batchsize 的同时一般要同比例地提高 learning rate,加 batchsize 一般是不会有负面作用的。不过 mnist 是用不着服务器(
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3201 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:45 · PVG 18:45 · LAX 03:45 · JFK 06:45
    ♥ Do have faith in what you're doing.