jingyaogong / minimind

「大模型」3小时完全从0训练26M的小参数GPT,个人显卡即可推理训练!
https://jingyaogong.github.io/minimind
Apache License 2.0
2.7k stars 329 forks source link

请教如何优化内存使用 #84

Closed ltc0 closed 1 week ago

ltc0 commented 1 week ago

首先感谢大佬的分享。我这里想请教一下在训练过程有什么方法可以提高CPU和显存的使用率吗?我使用的是阿里云的NVIDIA V100,在训练的过程中GPU的使用率基本是满的,但是其他的利用率挺低的

jingyaogong commented 1 week ago

谢谢认可哈!

不知道“GPU的使用率基本是满的”指的是不是 Pwr: Usage/CapVolatile GPU-Util 这两个指标。第一个表示功率是否拉满,第二个表示显存的利用率是否已经饱和。

如果只是简单为了拉满显存和CPU,可以尝试增大 batch_size=16/32/64/128num_workers=4/8/16/32 不过,如果GPU的利用率已经接近满负荷,即使这些超参成倍增加,速度提升也不会很显著

举个不完全恰当的例子:麦芽糖体积小,占用“嘴存”(相当于显存)不多,但嚼起来又硬又黏牙(相当于GPU计算),即便手上同时递2块3块4块麦芽糖,塞满“嘴存”也不会明显加快吃糖的速度,因为嘴巴已经100%在努力咀嚼,这时手(类比CPU)的递糖速度就变得不重要了。相比之下,棉花糖虽然占用“嘴存”较多,但入口即化,对嘴的负担(GPU计算)几乎没有,此时提高递糖频率以提升速度就显得重要了。

ltc0 commented 1 week ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。