电子系小白
三年基带经验是很好的基础,对流水线、时序和低功耗设计应该有感觉了。转型AI芯片架构,硬件层面的知识补充可以按模块来拆解学习。
1. 张量计算单元(TPU)核心:理解矩阵乘法和卷积的硬件映射。重点学习脉动阵列(Systolic Array)的工作原理,它是怎么通过数据流动实现高计算密度和低外部带宽需求的。要弄明白数据是如何在不同处理单元(PE)间流动的,以及如何通过优化数据布局(比如im2col,但硬件上可能有更优方法)来适配这种阵列。
2. 数据流架构:这是区别于传统CPU/GPU指令驱动架构的关键。你需要掌握几种经典的数据流风格:权重固定(Weight Stationary)、输出固定(Output Stationary)、输入固定(Input Stationary)以及无局部复用(No Local Reuse)。分析它们各自在计算效率、内存访问和带宽需求上的权衡。这决定了你芯片的架构模板。
3. 内存带宽优化:这是AI芯片设计的最大挑战之一。需要学习:分层存储体系的设计(寄存器、SRAM、HBM等),如何通过数据平铺(Tiling)和调度来最大化数据在片上存储的复用;压缩技术(如稀疏编码、权重量化到INT8/INT4甚至更低)的硬件友好型实现;以及预取(Prefetching)和直接内存访问(DMA)引擎的设计,以隐藏外部内存访问延迟。
学习路线建议:
理论:精读经典论文,如Google的TPU系列论文,Eyeriss(MIT,讲数据流和优化非常详细),以及NVDLA的架构文档。
实践:不建议一开始就啃复杂开源RTL。可以先从高层次建模开始,比如用Python或C++模拟一个简单的卷积加速器和内存层次,评估不同数据流下的性能(计算利用率)和带宽需求。之后,可以研究并尝试修改一些开源项目,比如阿里巴巴的T-Head(玄铁)系列中有些AI相关核,或者Google的VTA。FPGA上跑一个MNIST识别全流程是很好的入门项目。
注意事项:AI芯片架构和算法、编译器的耦合越来越紧,所以也要了解神经网络模型的结构特点(如Transformer现在很火)和编译器如何将模型映射到硬件(如算子融合、图优化)。别只盯着硬件本身。
