异构集群(Heterogeneous Clusters)

1. HeteroG 参考文献: Yi X, Zhang S, Luo Z, et al. Optimizing Distributed Training Deployment in Heterogeneous GPU Clusters: Proceedings of the 16th International Conference on emerging Networking EXperiments and Technologies \[C\], Barcelona, Spain, 2020. Association for Computing Machinery. 一个集群中的GPU型号和性能可能都有所不同,但是在并行计算的时候往往假设每个参与并行的设备算力都是相等的,但是实际上由许多不同型号的GPU组成的集群仍然存在,为了解决这个问题,有相关的研究者提出了HeteroG方法,在异构集群上实现有效率的并行计算。 图. HeteroG的工作流程图 首先对开发者构建的网络进行分析,根据模型的需要决定是否需要进行MP 然后根据策略将模型分发到各个设备上进行开销测试(Profiler)和仿真计算(Simulator)然后根据这个测试结果指定相应的并行策略(Strategy Maker) 完成策略制定后重新对网络图进行重新编译(根据MP和DP的测算结果决定)然后开始并行计算 这个工作主要由一个经过训练的神经网络完成 最终实验结果证明与当前其他的并行策略相比,在异构集群的并行计算上有222%的性能提升。

2024年4月1日 · 1 分钟

张量并行(Tensor Parallelism)

参考文献: Shoeybi M, Patwary M, Puri R, et al. Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism \[J\]. ArXiv, 2020 张量并行(Tensor Parallelism,TP)属于模型并行(Model Parallelism,MP)中的一种,通过对Tensor的拆分,将一次Tensor计算拆分到多台设备上进行并行的计算,并将计算结果最终合并为目标张量。 1. Megatron-LM Megatron-LM是Nvidia提出的一种Tensor Parallelism方式,它的核心思想是将模型进行纵向分割(假定模型为由下向上的传递方式),Megatron-LM的TP主要针对基于Transformer,通过对Transformer中的Self-Attention和MLP进行拆分并行。 1.1 研究背景 在研究MP技术时,从数学上对矩阵计算的角度上发现针对Transformer可以进行纵向分割,从而在纵向分割上实现并行加速,由于这种方法将一个张量分割为多个张量并行计算,因此该方法属于Tensor Parallelism。 1.2 实现方法 图. Tensor Parallelism对Transformer中两部分的并行过程 针对Transformer中的MLP单元 MLP在并行之前的运算过程可以表示为:Z=Dropout(GeLU(XA) B),其中X为输入数据,Z为输出数据,A和B分别为神经网络的参数 在并行时,可以将A矩阵按照列拆分为A= \[A_1, A_2\]两部分,并将其分别放置到两个设备中分别对输入的X进行计算,并分别获得结果Y_1=GeLU(X A_1)和Y_2=GeLU(X A_2) 对矩阵B按照行拆分成两部分,并分别放置到两个设备中B= \[B_1; B_2\] 假设输入的X矩阵的维度为m x n大小的,则可用如下公式描述输入矩阵A $$X=\left[ \begin{matrix} x_{1,1} & \cdots & x_{1,n} \\ \vdots & \ddots & \vdots \\ x_{m,1} & \cdots & x_{m,n} \\ \end{matrix} \right] =\left[ \begin{matrix} X_1\\X_2 \end{matrix} \right]$$ 假设MLP中的矩阵A的维度为n x k,且定义h=k/2,则定义矩阵A如下: ...

2024年4月1日 · 1 分钟