AI技术库 2024-09-28 14:40 采纳率: 100%
浏览 58
已结题

双路3090深度学习工作站,根据现有配置,如何最省钱,并且还发挥最高性能?

事情是这样的:

我有两块3090风扇显卡。想双卡训练模型,目的是加速模型训练!

其次,我有一个华硕 x299 pro的主板,其中具体参数如图。

img

一开始我想用的是两个 3代 PCIE ×16 速率的接口来插两块显卡,但是发现插不进去,因为距离离得太近了。所以:

解决方案1就是:除非我换成两块3090涡轮显卡〖由于经济原因,这个方案pass、不考虑〗。

方案2: 一块插在PCIE ×16,一块插在 PCIE ×8上。但是,我想问的是:这样的组合来训练模型,可不可行?能加速训练吗?会比单块3090慢吗?如果不会,再接一块NVlink呢?

  • 写回答

2条回答 默认 最新

  • cheng_28 2024-10-15 18:24
    关注

    首先,NVLink是必买的,因为就算双3090走两条PCIE3.0 x 16,性能只能达到单张3090的140%左右,更何况你有一个GPU是PCIE x 8的。双3090没有NVLink非常不划算,因为影响多卡训练大模型性能的主要原因就是数据通路,NVLink桥接两张3090能比只走PCIE数据传输快将近十倍,如果你想让两张3090的性能达到单张3090性能的两倍(其实不能,有性能损失,但也将近两倍),NVLink是必买的。
    那么现在问题就变成了:双3090NVLink桥接的情况下,其中一张显卡是PCIE x 8,性能会不会下降,有多大的下降?现在GPU间数据传输不走PCIE走NVLink了,那么PCIE就主要是负责内存与GPU的之间的数据传输。训练大模型,中间产生的临时数据庞大,CPU通过PCIE将数据从内存里一批一批地分别同时送入两张GPU,两张GPU分别处理数据后(会在显存中产生庞大的中间数据,这也就是为什么要求显卡有大显存的原因),再通过NVLink通信和数据处理才能算完成一次对数据的处理(也会产生庞大的中间数据)。如果一张GPU的通讯带宽减半,那么另一张GPU处理完数据后会等这张GPU处理完数据,再通过NVLink确定最终的数据处理,等待的时间就是两种宽带传输同一批数据的时间差(因为两张GPU都是3090,处理数据时间一样,只有数据输入的时间不同),PCIE x 16与3090的实际传输速率大概在5GB/s,砍半的话就是2.5GB/s,如果你的训练数据有100GB,那么两条都是x16传输耗时20s,如果有一条是x8,那么传输耗时就是40s(取决于最慢的那个,快的要等慢的,不是快的算快的,慢的算慢的),时间差距就在40-20=20s,每100GB训练数据,每轮训练就多耗时20s,你的训练数据有多大,要训练多少轮,要多等待的时间总和理论上就有多少。如果你不买NVLink桥接器,那就更不用说了,PCIE不仅要传输被加载到内存中的训练数据,更是要负责传输GPU产生的庞大的中间数据,GPU根本就喂不饱,多数时间都是在等待数据的传输,实际的效果可能真不如单张3090。
    最好就是买NVLink并且换主板,实在不行就买NVLink,换不换主板看你训练模型的数据集的大小吧,没有NVLink又不换主板感觉肯定是不如单张3090的。当然,这只是粗略的计算,还要很多因素也影响着最终配置的工作站的性能,比如说Batch Size、内存、CPU等等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 创建了问题 9月28日