当前位置: 首页 > news >正文

AllToAll通信为什么用于EP并行?

1 AllToAll通信原理

首先要明白ALLTOALL通信是做了什么事情。

假设我们有3个进程(A、B、C),每个进程都有三段数据,分别是a1, a2, a3;b1, b2, b3;c1, c2, c3。

进程A想发送:a1到进程A自己,a2到进程B,a3到进程C。
进程B想发送:b1到进程A,b2到进程B自己,b3到进程C。
进程C想发送:c1到进程A,c2到进程B,c3到进程C自己。

在执行AlltoAll操作后:
进程A会拥有:a1(自己的),b1(从B接收的),c1(从C接收的)。
进程B会拥有:a2(从A接收的),b2(自己的),c2(从C接收的)。
进程C会拥有:a3(从A接收的),b3(从B接收的),c3(自己的)。
这样,通过AlltoAll通信,每个进程都能得到来自其他进程的数据,同时也分享了自己的数据。
用矩阵表示就是:
在这里插入图片描述
用一句话描述:将进程 i 的发送缓冲区中的第 j 块数据发送给进程 j,进程 j 将接收到的来 自进程 i 的数据块放在自身接收缓冲区的第 i 块位置。

也可以参考小编的另外一篇文章:
https://zhuanlan.zhihu.com/p/717814079

2 什么是EP并行?

EP并行一般使用在MOE层,先了解下什么是MOE。

2.1 MOE

  • 将FFN分为多个,每个称为一个专家
  • 引入route,负责分发token到不同的专家
  • 每个token只有部分专家参与计算,从而极大减少计算量,但是维持效果
    在这里插入图片描述
    每个FFN都是一个专家,不同的专家可能在不同的卡上。
    假设当前有4个专家,1个token经过Router分发后,会形成类似index的排序结构[1,3],表示当前的token会给专家1处理和专家3处理。

2.1 EP并行

结合如下的图具体分析。

  1. 图中的DP=2,EP=2
  2. 每个DP域内,有TP并行,并且开了sp并行(为了与TP联合使用)
  3. 经过Route后,会进行数据重排,以便选择合适的专家;
  4. 黄色的部分,表示要给EP1计算;蓝色的部分表示要给EP2计算;
  5. 将需要给EP1计算的数据收集起来放在一起;将需要给EP2计算的数据收集起来放在一起(这里就是引入AllToAll的关键
  6. 然后经过FFN的计算。
  7. 计算完成之后,再将数据发送回各自的DP域。
    在这里插入图片描述

3 AlltoAll通信为什么用于EP并行?

通过上述的第5步就是问题的回答。

http://www.xdnf.cn/news/579853.html

相关文章:

  • Linux性能监控工具nmon
  • 【开源解析】基于深度学习的双色球预测系统:从数据获取到可视化分析
  • Axure系统原型设计首页模版方案
  • InetAddress 类详解
  • AI大模型技术全景解析:核心原理与关键技术拆解
  • 【C++ 真题】P5736 【深基7.例2】质数筛
  • HJ23 删除字符串中出现次数最少的字符【牛客网】
  • 《Effective Java(第三版)》笔记
  • ESP32-S3 (ESP IDF 5.4.1 - LVGL 9.2.0)九宫格拼音输入法
  • 工业控制解决方案三段论
  • Java 实现四种单例(都是线程安全)
  • 【Linux】了解 消息队列 system V信号量 IPC原理
  • 常见字符串相似度算法详解
  • 使用Pandoc实现Markdown和Word文档的双向转换
  • 基于LiveData和ViewModel的路线管理实现(带PopupWindow删除功能)
  • 人工智能价值:技术革命下的职业新坐标
  • 【java】Java注解
  • 通信协议详解(分层技术解析)
  • 4-码蹄集600题基础python篇
  • 16、Python运算符全解析:位运算实战、字符串拼接与列表合并技巧
  • 如何在电脑上登录多个抖音账号?多开不同IP技巧分解
  • 【Redis】AOF日志
  • 8天Python从入门到精通【itheima】-26~28
  • CondaEnvException: The specified prefix appears to be a top level directory
  • 图论算法精解(Java 实现):从基础到高频面试题
  • 单链表C语言实现
  • Web项目流程总结
  • 第七章:数据存储策略与状态恢复机制实录
  • Bently Nevada 3500/61 非隔离I/O模块 (133819-02)
  • 一命通关单调栈