文章

论文随记

论文随记

论文随记

问题

  1. craterlake如何做host与device的通信? 这与hpu并不相同(不存在加速卡的通信问题?),是否偏离主线的问题。
  2. 并行需要

上次提到的点

  1. 如何提高加速器的并行性,即提高同一时间计算单元使用率
  2. 如何排布数据在存储器中来减少数据冲突,因为并行计算的时候可能会有多个计算单元访问同一数据
  3. 与host端通信的问题

下一步工作

指令集并行的优化空间不大,考虑多面体模型的应用

需要考虑

  1. 存储结构
    1. craterlake的存储结构是,2048通道,且共用一个256MB的寄存器
  2. 加速器与其他硬件的区别,针对这一区别在编译器中做了什么优化,参考ai编译器
    1. 计算单元数量庞大,且计算单元功能单一
    2. 存储结构与传统cpu/gpu不同
  3. 内存访问延迟:CPU与GPU会通过乱序执行或海量线程掩盖计算远快于内存访问延迟的问题,专用加速器将这一点交给了编译器处理。
  4. 算子融合优化:参考TVM的算子融合,需要验证在craterlake上是否适用以及heir等编译器是否已经有算子融合优化。
  5. 流水线优化:调度指令隐藏流水线停顿
  6. 数据布局优化:不同于密文内部的数据布局(如fhelipe等),此乃针对内存的数据布局
    1. 例子:矩阵乘法中,做循环的时候将循环分块,将cache无法存下的矩阵切分,方便数据复用 alt text,可以考虑多面体编译优化
    2. 如何优化旋转秘钥等的存储
  7. 哪些layer放到加速器上,哪些在cpu上跑
  8. 针对硬件的优化可能存在较大的搜索空间,可以引入智能体对其进行搜索

参考

  1. google heir
  2. tpu-mlir
本文由作者按照 CC BY 4.0 进行授权