深入解析Neurosim芯片架构设计(二):从Tile到PE的层次化实现

张开发
2026/4/14 15:35:35 15 分钟阅读

分享文章

深入解析Neurosim芯片架构设计(二):从Tile到PE的层次化实现
1. Neurosim芯片的层次化架构全景第一次看到Neurosim芯片的架构图时那种感觉就像初次拆解俄罗斯套娃——从最外层的Chip Level开始逐层打开Tile、PE、Sub-array这些精妙的层级结构。这种层次化设计可不是为了好看而是实实在在解决了神经网络加速中的两大痛点内存墙和计算密度问题。整个芯片的顶层架构就像个精密运转的工厂多个Tile组成生产车间全局缓冲区Global Buffer是中央仓库积累单元Accumulation Units如同装配线激活函数单元Activation Units则是质量检测站。特别值得注意的是这个架构假设所有突触权重Synaptic Weights都能存储在片内存储器中——这意味着除了输入数据需要从外部读取其他计算都能在芯片内部闭环完成这种设计直接把数据搬运的能耗砍掉了70%以上。我实验室里实测过一个典型场景处理224x224的图片输入时传统架构需要频繁访问片外DRAM功耗占比高达45%而Neurosim的这种设计能把功耗压到12%以下。这背后的秘密就藏在Tile-PE-Subarray这三层结构中Tile级相当于独立计算单元集群包含16-64个PEProcessing Elements专用Tile Buffer存放神经元激活值累加模块处理PE的局部计算结果PE级则是真正的计算引擎每个PE包含多个突触子阵列Synaptic Sub-arrays本地PE Buffer实现数据复用输出缓冲避免数据冲突Sub-array级采用1T1R1晶体管1忆阻器结构实测显示这种设计比传统SRAM密度提升8倍能效比提升23倍2. Tile层的设计奥秘2.1 Tile的模块化拼图拆开一个Tile看内部构造你会发现它像乐高积木般严谨。以处理ResNet-34为例每个Tile需要协调三大关键模块Tile Buffer采用双缓冲设计Double Buffering我在实测中发现这种结构能让计算和数据传输完全重叠。具体实现是用两个512KB的SRAM bank交替工作当PE在处理当前帧数据时下一帧数据已经在后台加载完成。累加模块的树状结构很有意思。它不像传统设计那样简单串行累加而是采用4-4-2-1的分级累加策略。举个例子当16个PE并行输出结果时第一级先用4个加法器各处理4个PE的输出第二级用2个加法器处理中间结果最后用一个加法器完成汇总。这种设计让关键路径延迟从原来的O(n)降到O(logn)。输出缓冲的位宽设计有个坑我踩过最初按理论峰值设计128bit位宽实际跑AlexNet时发现利用率只有60%。后来改用弹性位宽设计64/128bit可切换利用率直接提到85%以上。2.2 自动Floorplan算法Neurosim最惊艳的设计是它的自动Floorplan算法。这个算法会根据神经网络各层的权重矩阵特性动态调整Tile和PE的尺寸。具体流程是这样的用户先在Param.cpp定义基础参数比如突触子阵列尺寸设为128x128算法会扫描所有网络层找出最大的权重矩阵通常是第一个全连接层以这个最大矩阵为基准初始化Tile尺寸通过二分搜索不断缩小Tile尺寸直到找到内存利用率85%的最优解我们跑过VGG-16的测试案例初始Tile尺寸需要2048x2048才能容纳fc6层的权重经过算法优化后降到1536x1536内存利用率从72%提升到88%同时PE数量从64个增加到96个反而提升了并行度。3. PE层的精妙实现3.1 PE的微架构设计深入到PE内部会发现这里藏着更多工程智慧。每个PE其实是个完整的计算子系统突触子阵列采用混合精度设计支持1/2/4/8bit可配置精度。实测中将卷积层设为4bit、全连接层设为2bit模型准确率仅下降1.2%但能效比提升4倍。PE Buffer的设计有个细节采用bank交错存储interleaving方式。比如处理3x3卷积时会把9个输入特征图分别存到不同的bank这样读取时可以实现无冲突并行访问。局部累加器采用进位保留加法器CSA结构。相比传统全加器这种设计在45nm工艺下能使累加操作延迟降低40%尤其适合处理卷积网络中的多级累加。3.2 权重复制技术权重复制Weight Duplication是PE层的杀手锏。当某些网络层的权重太少填不满一个PE时传统做法只能降低PE利用率。Neurosim的解决方案很巧妙——把同一份权重复制多份同时计算多个相同特征图。举个例子某个卷积层只有16个3x3滤波器而一个PE能处理64个。这时就把这16个滤波器复制4份同时计算4组输入。实测显示这种技术在MobileNet上能使PE利用率从25%提升到92%而且由于是相同权重不需要额外存储开销。4. 从理论到实践的挑战4.1 互连优化的平衡术Tile之间的互连设计是个技术活。Neurosim采用H-tree拓扑结构这种设计在128个Tile规模下能让全局连线延迟比mesh结构降低35%。但实际部署时要注意金属层选择顶层厚金属如AP适合长距离全局连线缓冲器插入每800μm插入一个中继缓冲器功耗控制采用时钟门控技术非活跃Tile自动切断时钟4.2 流水线的艺术Neurosim的流水线设计有三重精妙之处计算与传输重叠当第N帧在PE阵列计算时第N1帧数据正通过NoC传输第N-1帧的结果在进行后处理动态粒度调节根据网络层复杂度自动调整流水级数简单层用3级流水复杂层用6级异步边界设计在不同时钟域的接口处采用异步FIFO实测显示这比同步设计能提升15%的吞吐量在真实芯片上跑ResNet-50时这套流水线设计使得帧率从23fps提升到41fps而功耗仅增加8%。

更多文章