1
ztyMCR 2020-10-19 18:10:07 +08:00
两分钟真的看的出啥来吗,是不是 GPU 没启用
|
3
csunny 2020-10-19 18:27:11 +08:00
看看运行时的负载呢
|
5
minami 2020-10-19 18:35:22 +08:00
GPU 调用是异步的,可能是计时不准的原因。建议加入取回 CPU 的操作,保证 GPU 上任务计算完毕
|
6
Porphet 2020-10-19 18:36:56 +08:00
如果显存几乎占满了,50w 的负载,原因可能是模型设计的问题。如果没满,可以尝试提高 batch_size
|
8
Porphet 2020-10-19 18:40:32 +08:00
模型设计问题有可能是没有及时 backward,导致大量的计算图被暂时存储起来没有 backward,也就不能及时释放
|
12
different 2020-10-19 19:12:59 +08:00 via Android
如 5 楼所示,可能 GPU 并行数据量太少了,大部分时间都在 cpu_gpu 交互或者 cpu 串行时间过长。
你的服务器 cpu 可能主频较低,服务器 cpu 一般都不超过 2.5GHz 。服务器 cpu 主频一般随着核心数的增多,主频会稍微下降,大部分在 2.2GHz 以下。 为了凸现 gpu 的优势,缩小 cpu 差距,你可能需要增大在 GPU 并行的数据量。不知道和楼上说的 batch size 是否同一个意思。 |
13
Escapist367 2020-10-19 19:31:21 +08:00
代码发出来看看
很可能是读取数据和加载模型的时间占了总耗时的大部分 高主频+SSD 的个人电脑在读数据和加载模型上相对于服务器有巨大优势 |
14
WeiJoseph OP @minami
@Porphet @different @Escapist367 今晚拉大 batch_size 虽然占用的显存还是只有 1G 但是终于运算速度终于大幅度超过 cpu 了 看来是我之前 batch_size 设置的太小了 不过 batch_size 拉大以后训练效果就下降了 综合下来还是感觉这个小模型和小数据集根本不需要服务器来跑 感谢大家 |
15
kickcellardoor 2021-01-20 22:50:55 +08:00
@WeiJoseph 加 batchsize 的同时一般要同比例地提高 learning rate,加 batchsize 一般是不会有负面作用的。不过 mnist 是用不着服务器(
|