WeiJoseph

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

  •  
  •   WeiJoseph · Oct 19, 2020 · 4143 views
    This topic created in 2211 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
    ztyMCR
    Oct 19, 2020
    1
    两分钟真的看的出啥来吗,是不是 GPU 没启用
    WeiJoseph
    WeiJoseph
    OP
    Oct 19, 2020 via iPhone
    2
    @ztyMCR 肯定启用了噻 几个电脑上都是一份代码
    csunny
    csunny
    Oct 19, 2020
    3
    看看运行时的负载呢
    WeiJoseph
    WeiJoseph
    OP
    Oct 19, 2020 via iPhone
    4
    @csunny 就 50 多瓦
    minami
    minami
    Oct 19, 2020
    5
    GPU 调用是异步的,可能是计时不准的原因。建议加入取回 CPU 的操作,保证 GPU 上任务计算完毕
    Porphet
    Porphet
    Oct 19, 2020
    6
    如果显存几乎占满了,50w 的负载,原因可能是模型设计的问题。如果没满,可以尝试提高 batch_size
    WeiJoseph
    WeiJoseph
    OP
    Oct 19, 2020 via iPhone
    7
    @minami 感谢 我回去试试
    Porphet
    Porphet
    Oct 19, 2020
    8
    模型设计问题有可能是没有及时 backward,导致大量的计算图被暂时存储起来没有 backward,也就不能及时释放
    WeiJoseph
    WeiJoseph
    OP
    Oct 19, 2020
    9
    @Porphet 24G 显存用了 1G 吧
    Porphet
    Porphet
    Oct 19, 2020
    10
    @WeiJoseph 提高 batch_size, 这么少的显存占用肯定跑不满 rtx, 简直是浪费这块大显存显卡黑盒😂
    WeiJoseph
    WeiJoseph
    OP
    Oct 19, 2020 via iPhone
    11
    @Porphet 感谢 晚上我提升一下 batch size
    different
    different
    Oct 19, 2020 via Android
    12
    如 5 楼所示,可能 GPU 并行数据量太少了,大部分时间都在 cpu_gpu 交互或者 cpu 串行时间过长。
    你的服务器 cpu 可能主频较低,服务器 cpu 一般都不超过 2.5GHz 。服务器 cpu 主频一般随着核心数的增多,主频会稍微下降,大部分在 2.2GHz 以下。

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

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