LLM时代AI加速芯片面临的挑战
算法需求
- 普遍使用MOE架构降低算力需求
- 高度定制化的集成度高的大算子
- 定制化的核心Attention加速算子:FlashAttention
- KVcache的压缩、加速等: Deepseek的Flash MLA
- 混合精度及量化
- 低精度支持及累加精度保证
- 多卡互联技术,包括快速的分布式all to all的性能,通信异步化,不占用计算核,最大化带宽利用率
- 更低的latency,更高的throughput
- 异步通信,动态执行
- 复杂的存储地址控制,复杂的MMU系统
- Atomic的支持,用于复杂算法的reduction运算支持
同步和动态
问题&矛盾
- 通过传递依赖/同步信息到存储器(memory barrier)
- 优点:避免调用fence和trigger一个任务的leading和tailing latency
- 缺点:为了异步调用和挂起,需要保存抽象的线程信息,占用大量的调度逻辑和流水线存储资源
- 源头统一调度和控制(mailbox 、global sync)
可能方案
- 通过预调度(prefetch)等预估流水线的latency进行提前trigger,减少latency
- 专用的异步进行同步的信号,同步信号和存储请求分离,同步信号可以不随流水线传递
- 把存储相关的程序指令存储到存储器端,控制器直接launch,类似一个可以执行指令的DMA
- 所有的单元(1D、2D、DMA、NoC)都变成可以执行程序的单元、可同步单元,通过launch和同步来控制
- 需要解决可执行程序的prefetch/preload需求
- 可以把整个程序通过计算图来抽象,明确所有launch的时机
未来算法需求
- 动态全局随机访问的需求
- MOE算法需求
- 稀疏算法
可能的方法
- 定义复杂指令,单指令支持操作数的Dequent,GEMM计算
- 设计很大的L1甚至是L0,用于存储Tensor计算的左右值
可能的方向
- 超大的dot变成多个小dot的并行
- 固定尺寸的dot,和输入无关的dot
- 所有模型使用一种固定的层,同一种组件,不要很多种类,很多奇怪的linear