《Computers》:QUINN: Quantized Inference and Dataflow Characterization for Neural Networks on RISC-V Near-Memory Architectures
编辑推荐:
机器学习推理正因延迟、能耗和隐私约束而向边缘迁移。边缘工作负载日益增长的复杂性给存储层次结构带来了巨大压力,使得数据移动成为性能和能效的主要瓶颈。固定功能加速器继承了冯·诺依曼模型的存储墙缺陷,且缺乏跟随模型演进的灵活性。基于可编程向量处理单元(Vector
机器学习推理正因延迟、能耗和隐私约束而向边缘迁移。边缘工作负载日益增长的复杂性给存储层次结构带来了巨大压力,使得数据移动成为性能和能效的主要瓶颈。固定功能加速器继承了冯·诺依曼模型的存储墙缺陷,且缺乏跟随模型演进的灵活性。基于可编程向量处理单元(Vector Processing Unit,VPU)的近内存架构利用标准互补金属氧化物半导体(Complementary Metal-Oxide Semiconductor,CMOS)技术缓解了这一瓶颈,同时保持了可编程性,但仍缺乏成熟的核函数库和算子级抽象。研究人员提出QUINN来解决这一空白,这是一个遵循量化开放神经网络交换格式(Open Neural Network Exchange,ONNX)算子语义的整数精度推理核函数库。对于传统加速器,算子到数据流的映射已被充分研究;研究人员针对近内存VPU对其进行了量化表征——这类VPU的向量寄存器文件由显式直接存储器访问(Direct Memory Access,DMA)传输管理——采用结合吞吐量与实测片外流量(涵盖不同数据流、复制方式和带宽)的屋顶线方法论,并在现场可编程门阵列(Field-Programmable Gate Array,FPGA)仿真目标上进行验证。矩阵乘法在最大问题规模下进入计算受限区域,达到混合加权计算上限的61%;一维卷积在四个VPU下实现了3.1倍的缩放;这些核函数在相同目标上维持了标量主机吞吐量的4.2倍至8.5倍。然而,运算强度并未遵循相同的排序:标量调度在每个算子上的运算强度均更高,因此吞吐量的提升是以每种情况下额外的片外流量为代价的,尽管增益至少超出成本2.8倍。QUINN由此提供了一个经过特征化的算子后端,与部署工具所消费的ONNX语义逐比特精确。
论文解读文章
研究背景与问题
随着边缘设备对低延迟、高能效和隐私保护的需求日益增长,机器学习推理正从云端向边缘迁移。现代边缘工作负载(如视觉Transformer和MobileNet系列网络)融合了计算密集型的整数精度卷积层与全连接层,以及浮点归一化、激活、量化和注意力机制算子,对低功耗嵌入式平台构成了严峻挑战。在这些平台上,性能与能效往往受限于跨存储层次结构的数据移动——这是冯·诺依曼架构固有的存储墙问题,尤其当本地存储容量和片外带宽受限时更为严重。虽然专用加速器可降低规则算子(如稠密矩阵乘法和卷积)的计算成本,但其系统性能仍可能受限于内存带宽;此外,固定功能或窄优化的加速器缺乏执行多样化机器学习流水线所需的灵活性,难以应对日新月异的模型架构。近内存计算(Near-Memory Computing,NMC)通过在靠近存储子系统的位置集成可编程计算资源来缓解存储墙问题,其采用标准互补金属氧化物半导体(CMOS)工艺,既能减少数据移动、提高有效带宽,又比固定功能加速器具备更高的灵活性。然而,在实际部署中,NMC架构仍面临成熟编程模型、可复用核函数库和算子级抽象缺失的困境,导致开发人员需编写微架构特定的核函数并进行定制优化,工作量分散且可移植性受限。
研究内容与结论
为解决上述软件层面的空白,研究人员提出了QUINN——一个面向可编程RISC-V向量处理单元(VPU)近内存架构的整数精度推理核函数库,并在NM-Carus平台上验证其有效性。QUINN遵循选定量化ONNX算子的数值语义,使核函数可在不同推理工作负载间复用与组合,无需针对模型重新设计。除核函数库外,研究工作还系统地表征了算子性能如何依赖于计算结构、数据流映射、计算并行度与存储系统行为之间的交互作用。研究人员针对支持的算子家族研究了多种驻留数据流(输出驻留Output Stationary、输入驻留Input Stationary、权重驻留Weight Stationary),并通过一种源自经典屋顶线模型的算子中心化方法论进行评价,该分析综合考虑了可达吞吐量和实测片外流量,后者量化了每种数据流对外部存储系统造成的压力,包括分块和部分输出溢出引入的额外传输。实验结果表明,计算密集型核函数主要受益于输出驻留累加和空间并行性,而内存受限型核函数更依赖输入重用、缓冲、预取和延迟隐藏而非算术吞吐量的提升。与同一目标上的标量主机基线相比,QUINN核函数实现了4.2倍至8.5倍的吞吐量增益;尽管标量调度在所有算子上的运算强度更高,但QUINN获得的吞吐量增益至少超出其牺牲的运算强度2.8倍。QUINN因此提供了一个经过全面特征化的算子后端,与部署工具所消费的量化ONNX语义逐比特精确,其重要意义在于填补了可编程近内存VPU架构上成熟核函数库的空白,为边缘机器学习推理提供了灵活高效的软件支撑。
关键技术方法
研究人员采用了以下主要关键技术方法:①基于屋顶线模型(Roofline Model)的算子中心化性能表征方法论,将可达吞吐量与实测片外内存流量相结合,用于比较不同驻留数据流和多VPU执行策略;②显式DMA管理的分块(Tiling)与循环序重排技术,针对每种算子实现三种驻留数据流(输出驻留OS、输入驻留IS、权重驻留WS),并通过循环置换改变操作数驻留状态以控制内存流量;③多VPU协同执行策略,包括沿输出维度划分的空间并行(如矩阵乘法沿M轴、2D卷积沿图像高度)、用于延迟隐藏的双缓冲预取机制,以及针对内存受限场景的串行化计算与预取重叠调度。
研究结果
5.5 QLinearMatMul:通过对比矩阵乘法(MM)和向量矩阵乘法(VM)在不同问题尺寸下的三种数据流,发现输出驻留(OS)数据流在最大测试尺寸MM256下优势最为显著,吞吐量比替代方案高出2.7倍,达到3.21 Ops/Cycle(占计算上限的61%)。VM实例因算术复杂度仅呈二次增长,运算强度基本恒定,所有数据流表现相近且始终处于内存受限状态。
5.6 QLinearConv(2D卷积):固定图像尺寸为112×112、输出通道数为32,扫描输入通道数和滤波器尺寸后发现,OS数据流在所有配置下均达到最高吞吐量,因为IS和WS会溢出部分输出值从而增加缓存压力。各数据点按滤波器尺寸k聚类,证实运算强度对滤波器尺寸呈二次依赖性。
5.7 QLinearConv1D(一维卷积):序列长度固定为512、扫描通道数范围后,由于工作集适配近内存子系统,三种数据流性能接近,IS略优(峰值2.08 Ops/Cycle)。所有配置均接近理论计算上限,仅最大问题尺寸c128/K7因片外重读导致运算强度下降约23%。
5.8 QDepthwiseConv(深度卷积):在通道数固定为256、图像尺寸扫描的场景下,输入驻留(IS)数据流通过环形滑动缓冲区实现输入重用,达到峰值1.99 Ops/Cycle,优于OS(1.51 Ops/Cycle)。工作集溢出片外容量时运算强度显著下降,且大滤波器(K=7)因超过向量寄存器文件(VRF)容量导致需进一步分块。
5.9 优化机会:在计算受限的一维卷积上,SIMD复制几乎理想缩放(四VPU达3.1倍);矩阵乘法缩放次理想(四VPU为2.4倍),且慢速内存完全抵消额外单元的收益;内存受限的深度卷积和VM乘法主要通过预取双缓冲获益,两VPU即可隐藏传输延迟。与标量主机的对比显示,QUINN的吞吐量增益为4.2-8.5倍,但以额外片外流量为代价,其中深度卷积增益最大(8.5倍)而矩阵乘法成本最高(强度损失3.3倍)。
5.10 能量与架构泛化:通过联合扫描缓存大小、VRF/向量长度和VPU通道数发现,OS在所有配置下均保持最低能耗和最高数据效率,但吞吐量、每操作能耗和运算强度的最优配置互不相交(八通道吞吐量最高、四通道64KiB每操作能耗最低、256KiB运算强度最高),需结合目标约束综合权衡。
5.11 MobileNetV2应用级投影:在FPGA上逐层执行预量化MobileNetV2-1.0的匹配QUINN核函数,单VPU下总延迟约2.37秒,四VPU仅获1.1倍加速(因早期高分辨率窄通道层无法充分利用额外单元),且四倍动态功率导致能耗从0.254焦升至1.146焦,表明复制仅在瓶颈层可比例缩短运行时间时才值得。
总结与结论
本研究通过QUINN核函数库填补了可编程近内存VPU架构上成熟算子抽象的空白,其核心贡献包括:提供与量化ONNX语义逐比特精确的可复用整数精度核函数;建立结合吞吐量与实测片外流量的算子中心化屋顶线表征方法论;通过评估多种驻留数据流和多VPU执行策略导出算子特定优化指南。研究结论表明,计算密集型核函数优先受益于输出驻留累加和空间并行,而内存受限型核函数更依赖输入重用与延迟隐藏;尽管标量调度在所有算子上的运算强度更高,但QUINN的吞吐量增益远超其强度损失。该工作不仅提供了可直接部署的算子后端,还为近内存系统的设计者提供了缓存、通道数与VRF尺寸的定量权衡依据。