Skip to main content

LLM时代AI加速芯片面临的挑战

算法需求

  1. 普遍使用MOE架构降低算力需求
  2. 高度定制化的集成度高的大算子
    1. 定制化的核心Attention加速算子:FlashAttention
  3. KVcache的压缩、加速等: Deepseek的Flash MLA
  4. 混合精度及量化
  5. 低精度支持及累加精度保证
  6. 多卡互联技术,包括快速的分布式all to all的性能,通信异步化,不占用计算核,最大化带宽利用率
    1. 更低的latency,更高的throughput
    2. 异步通信,动态执行
  7. 复杂的存储地址控制,复杂的MMU系统
  8. Atomic的支持,用于复杂算法的reduction运算支持

同步和动态

问题&矛盾

  1. 通过传递依赖/同步信息到存储器(memory barrier)
    1. 优点:避免调用fence和trigger一个任务的leading和tailing latency
    2. 缺点:为了异步调用和挂起,需要保存抽象的线程信息,占用大量的调度逻辑和流水线存储资源,动态调度的代价
  2. 源头统一调度和控制(mailbox 、global sync)

可能方案

  1. 通过预调度(prefetch)等预估流水线的latency进行提前trigger,减少latency
  2. 专用的异步进行同步的信号,同步信号和存储请求分离,同步信号可以不随流水线传递
  3. 把存储相关的程序指令存储到存储器端,控制器直接launch,类似一个可以执行指令的DMA
  4. 所有的单元(1D、2D、DMA、NoC)都变成可以执行程序的单元、可同步单元,通过launch和同步来控制
    1. 需要解决可执行程序的prefetch/preload需求
    2. 可以把整个程序通过计算图来抽象,明确所有launch的时机

未来算法需求

  1. 动态全局随机访问的需求
    1. MOE算法需求
    2. 稀疏算法

可能的方法

  1. 定义复杂指令,单指令支持操作数的Dequent,GEMM计算
  2. 设计很大的L1甚至是L0,用于存储Tensor计算的左右值

可能的方向

  1. 超大的dot变成多个小dot的并行
  2. 固定尺寸的dot,和输入无关的dot
  3. 所有模型使用一种固定的层,同一种组件,不要很多种类,很多奇怪的linear