在 Titan RTX 上的深度学习模型还没有 CPU 和 1650 快 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
WeiJoseph

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

  •  
  •   WeiJoseph Oct 19, 2020 3579 views
    This topic created in 2018 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, 220 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     2839 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 15:23 PVG 23:23 LAX 08:23 JFK 11:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86