1. TPU计算引擎的架构定位
在深度学习加速器的演进历程中,谷歌TPU(Tensor Processing Unit)的Matrix Multiply Unit(MMU)设计代表了专用架构的典型范式。与传统GPU的通用计算核心不同,MMU采用脉动阵列(systolic array)结构,通过数据流式处理实现矩阵乘加运算的硬件级优化。这种设计在ResNet-50等典型模型上可实现比同期GPU高15-30倍的能效比,其核心在于消除了通用架构中频繁的数据搬运和指令调度开销。
第一代TPU的MMU采用256×256的运算单元阵列,每个周期可执行65,536次8位整型乘加操作。这种规模化的并行结构需要配套的数据供给体系,其设计遵循三个关键原则:
- 权重预加载机制:在推理任务中提前将滤波器权重存入MMU的寄存器文件
- 输入数据流式传输:通过DMA控制器实现输入特征图的流水线供给
- 累加器零拷贝:中间结果在阵列内部寄存器间直接传递,避免写回片外内存
注:TPU v1的脉动阵列采用双向数据流设计,横向输入特征数据,纵向输入权重参数,在阵列交叉点完成乘积累加(MAC)操作。这种结构使得数据在阵列中的移动过程即完成计算,大幅减少了对全局存储的访问。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 脉动阵列的微架构实现
2.1 数据通路精妙设计
TPU的65,536个MAC单元并非独立运作,而是组成一个智能化的计算网络。每个MAC单元包含:
- 8位乘法器(延迟4ns@700MHz)
- 24位累加器(支持32位中间精度)
- 数据路由开关(4向互联)
阵列采用wavefront调度策略,当处理256×256的大矩阵时,会将其拆分为多个64×64的块。每个块计算时,权重数据从北侧存储器流入,特征数据从西侧流入,结果向南侧累积输出。这种设计使得数据就像通过心脏的血流一样,在阵列中有节奏地脉动前进。
2.2 精度处理机制
虽然TPU v1仅支持8位整型,但其微架构包含多项精度保障设计:
- 动态缩放单元:在矩阵乘前对输入执行定点缩放(scaling)
- 饱和处理逻辑:对累加器输出进行clipping
- 移位归一化:层间传递时的精度对齐
实测表明,这套机制使得8位整型在ImageNet分类任务中与浮点模型的精度差异小于1%,而能效提升达8倍。下图展示了关键数据
