Colossal AI 多维TP

本文探讨了ColossalAI中的2D、2.5D和3DTP(TensorParallelism)在Transformer模型中的应用,比较了它们在弱尺度和强尺度下的性能,并分析了不同维度分解对通信和计算的影响,涉及GPU硬件如NVIDIAQuadroRTX5000和A-100的性能测试。

Colossal AI 多维TP

1. 2D TP

1.1. SUMMA 2D 矩阵乘法

在这里插入图片描述
在这里插入图片描述
数值示例:
在这里插入图片描述
在这里插入图片描述

条件:每个矩阵都可以均匀的拆分为 p=q^2块(行q块,列q块·)

1.2. Transformers上的应用

b: batch size s: seq_len h: hidden size p: GPUs q: p=q^2
输入shape为{b, s, h}{bs, h}{bs/q, h/q},实际使用时将b和h进行拆分,如下图所示。
在这里插入图片描述
在这里插入图片描述

通信量和计算量对比(包含activation checkpointing)
在这里插入图片描述

性能对比
1)Weak scaling concerns the speedup for a scaled problem size with respect to the number of processors
在这里插入图片描述
2)Strong scaling concerns the speedup for a fixed problem size with respect to the number of processes
在这里插入图片描述
3)memory performance
在这里插入图片描述
注:测试环境
4 NVIDIA Quadro RTX 5000 GPUs on each node, and nodes are inter-connected with Mellanox InfiniBand

2. 2.5D TP

2.1. Tesseract 矩阵乘法:将一个矩阵乘法拆分为多个SUMMA 2D矩阵乘法

在这里插入图片描述
数值示例
在这里插入图片描述
在这里插入图片描述

2.2. Transformers上的应用

在这里插入图片描述

性能对比:
1) Weak scaling
在这里插入图片描述
2) Strong scaling
在这里插入图片描述
注:4 NVIDIA A-100 GPUs per node

2.3. 对比和结论(C=AB)

在这里插入图片描述
1) 当d=1时,即为SUMMA 2D 的矩阵乘法。
2) 2D和2.5D不仅拆分了B,还拆分了A。
3) 2.5D中,p=dq^2。
4) 2.5D相对于2D而言,通过把B复制了d份来减少通信次数。
5) P=dq^2固定的情况下,不同的{d,q,q}配置性能相差甚远。

3. 3D TP

3.1. 算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2. Transformers上的应用

在这里插入图片描述
1) 输入在 {b,s,h} 三个维度上都进行拆分。
2) 参数在in_size上按p拆分,out_size按p^2拆分。
3) XA后都有一个reduce-scatter操作。

性能对比:
1) Weak scaling
在这里插入图片描述
2)Strong scaling
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值