基于IMPLY逻辑的近似全加器设计:存内计算与近似计算的融合实践
1. 项目概述当存内计算遇上近似计算在当今的计算领域我们正面临着一个看似矛盾的双重挑战一方面人工智能、图像处理等数据密集型应用对算力的需求呈指数级增长另一方面传统的冯·诺依曼架构正日益受到“功耗墙”和“内存墙”的制约。数据在处理器和内存之间来回搬运所消耗的能量已经占据了系统总能耗的绝大部分。这就像在一个巨大的仓库内存和一个小型加工车间CPU之间用人力小车来回搬运原材料和成品效率低下且极度耗能。为了打破这一僵局两个新兴的计算范式走到了台前存内计算和近似计算。存内计算的核心思想是“就地加工”直接将计算单元嵌入到内存阵列中从根本上消除数据搬运的开销。而近似计算则采取了一种“抓大放小”的策略它承认对于许多应用比如识别一张图片是猫还是狗或者给视频降噪结果的绝对精确并非必需些许误差完全可以接受。通过有选择地牺牲一些非关键的计算精度可以换来电路面积、功耗和延迟的显著优化。我最近深入研究了一项将这两者结合的前沿工作基于IMPLY逻辑的近似全加器设计。这项研究并非纸上谈兵它提出了两种名为SAPPI-1和SAPPI-2的具体电路方案并实实在在地在图像处理和机器学习任务中进行了验证。简单来说它试图用更“聪明”且“节能”的硬件来完成那些我们每天都会用到的、但对完美精度不那么挑剔的计算任务。如果你是一名硬件工程师、体系结构研究者或是关注边缘AI与低功耗设计的开发者那么这种在电路底层寻求突破的思路或许能给你带来一些新的启发。2. 核心原理深度拆解IMPLY逻辑与近似计算的融合要理解SAPPI加法器为何有效我们需要先拆解它的两大技术基石IMPLY逻辑的本质以及近似计算在算术单元设计中的具体实践。2.1 IMPLY逻辑内存里的“逻辑门”IMPLY蕴含逻辑是忆阻器存内计算中最经典的逻辑实现方式之一。它的物理基础很简单两个忆阻器P和Q与一个限流电阻RG串联。通过对这两个忆阻器施加特定的电压条件VCOND VC VSET可以执行一个逻辑操作P IMPLY Q其结果会直接覆盖并存储在Q忆阻器中。其真值表如下PQP → Q (结果存于Q)001011100111这看起来和传统的与、或、非门不太一样。关键在于IMPLY操作是破坏性写入的执行操作后操作数Q的原始状态就丢失了。这带来了一个独特的挑战如何在不丢失输入数据的前提下完成多步计算传统的IMPLY加法算法往往需要额外的步骤来备份或恢复数据增加了开销。为什么选择串行拓扑在IMPLY逻辑的实现中有串行、并行和混合拓扑。SAPPI选择了串行拓扑如图1所示。它的优势在于硬件复杂度极低只需要2n3个忆阻器n为位数且不需要额外的开关电路。所有操作在一个共享的“工作线”上按时间顺序串行执行。虽然速度上可能不如并行拓扑但其在面积和设计简洁性上的优势对于高密度集成的存内计算阵列来说非常吸引人。2.2 近似计算在误差与能效间走钢丝近似计算不是简单的“算错”而是一种有目的、可控制的精度妥协。在加法器设计中这通常通过修改其真值表来实现让某些输入组合产生一个“差不多”但不完全准确的和或进位输出。误差如何度量我们不能只说“差不多”必须量化这个“近似”的程度。常用的误差度量指标包括错误距离单个计算结果与精确值之间的绝对差值。平均错误距离所有可能输入组合下错误距离的平均值。归一化平均错误距离将MED归一化到输出范围便于不同位宽电路间的比较。设计者的艺术就在于如何修改真值表使得引入的误差在统计上对最终应用如图像质量、分类准确率影响最小同时换来硬件指标功耗、延迟、面积的最大化收益。SAPPI的设计正是基于这种权衡它没有试图实现一个完全精确的全加器而是瞄准了那些错误传播影响较小的输入组合进行“近似”。2.3 SAPPI的设计哲学保存状态与错误抵消SAPPI-1和SAPPI-2的核心创新点在于它们巧妙地利用了IMPLY逻辑的特性同时融入了近似计算的理念。1. 输入状态保存这是SAPPI-1的一个关键特性。在传统的IMPLY计算中输入操作数经常被覆盖。SAPPI-1通过将中间结果存储在额外的工作忆阻器M中最终将和输出也放在M里从而完整保留了输入A和B的状态。这意味着如果后续计算还需要原始的A和B无需从外部重新加载节省了额外的能耗和时间。当然这是以增加一个忆阻器每比特为代价的。2. 错误模式设计观察SAPPI-1和SAPPI-2的真值表可以发现它们的进位输出错误率都只有1/8仅在输入为“001”时出错。这是一个非常低的基础错误率。对于和输出虽然错误率是4/8但关键在于错误的分布。SAPPI-1其错误是分散的。SAPPI-2它做了一个聪明的调整将和输出存储到A忆阻器。这使得在“001”这个输入情况下和与进位输出同时出错且错误是“互补”的一个本该是1的输出0另一个本该是0的输出1。在多位加法如波纹进位加法器中这种错误有时会在后续的进位链中产生“抵消”效应从而在统计上降低整体误差。这也是为什么在表VI中当近似位数增加时SAPPI-2的误差指标增长比SAPPI-1更慢。注意这种错误抵消效应并非绝对它依赖于具体的运算数据和位宽。SAPPI-2的设计体现了从“减少单个错误”到“管理错误传播”的思路转变这对于构建稳健的近似计算系统至关重要。3. 电路级实现与性能剖析理论设计需要经过电路仿真的淬火。研究团队使用LTspice和VTEAM忆阻器模型进行了细致的仿真参数基于Knowm公司的离散忆阻器特性设定。这里有一些工程实践中的关键细节。3.1 仿真设置与参数考量忆阻器模型的选择VTEAM模型是一个相对成熟且灵活的模型它能描述阈值电压、非线性开关等关键行为。仿真中使用的参数如R_on10kΩ R_off1MΩ是基于真实器件拟合的。需要指出的是离散器件的性能速度、功耗通常逊于未来可集成的CMOS兼容忆阻器因此本文展示的结果可以看作是保守估计集成后的实际性能可能更优。非理想性仿真真实的忆阻器存在波动。论文特别考虑了电阻值R_on, R_off高达±30%的偏差并在仿真波形图中以阴影区域标出。结果显示即使在如此大的参数波动下SAPPI加法器的功能依然正确。这证明了其设计对工艺波动具有一定的鲁棒性这是走向实际应用的重要一环。操作时序每个IMPLY或FALSE操作设定为30µs。这是一个基于当前离散器件特性的较慢速度主要目的是为了功能验证和公平比较。提升开关速度是忆阻器技术发展的核心方向之一。3.2 性能指标对比SAPPI何以胜出让我们将SAPPI与现有的精确及近似IMPLY加法器进行硬碰硬的比较。下表综合了关键指标表电路级性能对比以8位加法器其中4位近似为例加法器类型能耗 (nJ)相较精确[19]的改进计算步数相较精确[19]的改进所需忆阻器数量精确加法器 [19]38.60-176-19SIAFA1/3/4 [23]~26.13~32%120~32%19SAFAN [32]~25.95~33%116~34%19SAPPI-1 (本文)22.4942%10441%23*SAPPI-2 (本文)23.6739%10839%19*注SAPPI-1因需保存输入状态每近似一位需额外一个忆阻器。解读与洞见能效与速度双赢SAPPI-1和SAPPI-2在能耗和步数上不仅大幅超越精确算法提升39%-42%也显著优于之前最先进的近似方案如SAFAN进一步提升9%-13%能耗和7%-10%步数优势。这主要归功于其极简的算法步骤SAPPI-1仅需4步/位。面积权衡SAPPI-1需要更多忆阻器这是其为保存输入状态所付出的硬件代价。但在存内计算系统中如果该加法器的输入需要被后续多个操作复用那么省去的重复加载数据的开销可能完全值得这片额外的面积。SAPPI-2则在面积上与先前工作持平。设计取舍SAPPI-1 vs SAPPI-2的选择本质上是面积与误差传播控制之间的权衡。SAPPI-1面积稍大但输入保留特性在特定数据流中有利SAPPI-2面积最优且通过错误抵消特性在高近似度下往往能提供更好的整体输出质量。实操心得在选择近似电路方案时绝不能只看单个单元的功耗或延迟。必须将其放入目标系统的上下文如数据复用模式、误差累积特性中进行评估。SAPPI-1和SAPPI-2的差异完美诠释了这一点没有绝对的最优只有最适合特定场景的平衡。4. 在图像处理中的应用验证理论性能再好也要看实际应用效果。图像处理因其人类视觉系统对误差的容忍性成为近似计算的“天然试验场”。论文在三个经典任务中验证了SAPPI加法器的实用性。4.1 应用场景与质量评估方法研究选取了三个代表性操作图像加法用于图像融合、蒙版等。用部分近似的波纹进位加法器计算两幅图像对应像素之和。灰度转换将RGB彩色图像转换为灰度的预处理步骤。涉及像素内三个颜色通道值的加法。高斯平滑一种常用的图像滤波技术用于降噪。这需要更复杂的计算涉及像素邻域与高斯核的卷积其中包含大量乘加运算。论文通过将近似加法器嵌入“移位-相加”乘法器来实现。如何评价输出质量不能靠人眼主观判断需要客观指标峰值信噪比衡量近似图像与原始精确图像之间的误差。PSNR 30dB 通常被认为图像质量“可接受”即误差不易被肉眼察觉。平均结构相似性指数从亮度、对比度、结构三方面比较图像相似度更符合人眼感知。值越接近1越好。4.2 实验结果与可接受的近似度论文系统地测试了在不同近似程度下的输出质量。所谓“近似程度”指的是在一个n位的波纹进位加法器中从最低有效位开始有多少个低位的加法器被替换为SAPPI近似加法器。关键发现稳健的近似窗口对于所有三个图像处理任务当近似度控制在50%左右即8位加法器中4位近似20位加法器中8-10位近似时SAPPI-1和SAPPI-2输出的图像PSNR均能保持在30dB以上MSSIM也接近1。这意味着在保证视觉质量几乎无损的前提下实现了大幅度的能效提升。惊人的系统级收益以一张576x700的8位图像进行高斯平滑为例使用SAPPI-18/20位近似与使用精确加法器相比单次处理就能节省约581 mJ的能量和26亿个计算周期。对于视频处理或实时系统这种节省是颠覆性的。SAPPI-2的图像质量优势在较高近似度下如4/8SAPPI-2的MSSIM指标通常优于SAPPI-1见表IX这表明其错误抵消特性在图像处理中确实带来了更优的感知质量。下图概念性地展示了在不同应用和近似度下图像质量与能效节省的权衡关系。在实际设计中我们可以根据应用对质量的最低要求反向确定可用的最大近似度从而最大化能效。图像质量 (PSNR) ^ | ******* (精确计算高能耗) | * | * | * (高质量区SAPPI-2通常更优) | *--- | * | 可接受质量阈值 (e.g., 30dB) | * | | * | | *v______ 能效提升/能耗降低 (低质量区) (SAPPI-1/2工作区)图示图像质量与能效的权衡关系示意图注意事项在实际部署中需要针对特定的图像处理算法和图像类型如自然图像、医学图像、卫星图像进行细致的质量-能效权衡测试。例如边缘检测算法可能对加法误差更敏感而简单的亮度调整则容忍度更高。5. 在机器学习中的潜力探索机器学习特别是神经网络推理是近似计算另一个极具前景的应用领域。神经网络本身具有一定的误差鲁棒性且边缘设备上的推理任务对功耗极其敏感。论文通过在MNIST手写数字分类任务上的案例研究初步探索了SAPPI的潜力。5.1 实验设置与方法研究采用了训练后近似的方法。即神经网络一个全连接网络和一个类LeNet-5卷积神经网络首先在精确计算硬件上使用标准方法训练至收敛。然后在推理阶段将网络中的部分加法器替换为SAPPI近似加法器。这种方法避免了复杂的近似感知训练更易于落地。加法器被嵌入到一个20位的近似波纹进位加法器中进而构成“移位-相加”乘法器用于模拟神经网络中关键的乘积累加运算。5.2 结果分析精度与能效的边界实验结果揭示了近似计算在ML中应用的微妙平衡存在“安全近似区”对于测试的FC-NN和CNN当近似位数控制在一定范围内时FC-NN约6/20位CNN约4/20位分类准确率没有出现任何下降。这意味着存在一个免费的“能量红利”区间可以无代价地提升能效。精度断崖式下降一旦近似度超过某个阈值准确率会急剧下降网络变得不可用。这个阈值就是该网络架构和任务对计算误差的容忍极限。显著的能效收益在“安全区”内收益巨大。对于那个CNN案例使用SAPPI-14/20位近似进行单次图像分类推理即可节省约296 mJ的能量和13亿个计算步骤同时保持原始准确率。对硬件-算法协同设计的启示 这个实验不仅仅证明了SAPPI的有效性更指出了一个重要的研究方向如何设计对近似计算更鲁棒的神经网络未来的工作可以集中在近似感知训练在训练过程中就引入近似计算模型让网络权重学会适应并补偿硬件误差。异构精度计算识别网络中不同层、不同通道对误差的敏感度差异对敏感部分使用高精度计算对不敏感部分激进地使用近似计算如更高的近似度。动态近似调整根据输入数据的难度或系统当前的功耗预算动态调整计算精度。实操心得在ML中应用近似计算绝不能简单地将所有加法器无差别地替换。必须进行细致的敏感性分析找出网络中对误差最不敏感的“冗余”部分进行近似。通常靠近输入和输出的层相对敏感而中间层容忍度可能更高。逐层、甚至逐通道的精度配置将是挖掘能效潜力的关键。6. 设计、实现与未来扩展的思考基于对这篇论文的解读以及我个人在低功耗设计方面的经验我认为要从研究走向实践还有几个关键环节需要深入思考。6.1 从电路到系统集成挑战当前工作是在电路层面进行的仿真验证。要构建一个完整的存内近似计算系统还需跨越几道鸿沟阵列设计与布线如何将成千上万个SAPPI加法器高效地集成到忆阻器交叉阵列中串行拓扑虽然单元简单但全局的时序控制和信号布线会成为新的挑战。外围电路开销IMPLY操作所需的精确电压产生与施加电路、灵敏放大器等外围电路的功耗和面积最终会分摊到每个计算单元上。这部分开销在实际系统中占比可能不小需要协同优化。误差建模与传递需要建立从近似加法器到整个应用算法的端到端误差模型。单个加法器的误差指标如MED如何影响一幅图像的PSNR或一个神经网络的Top-5准确率这需要大量的统计分析和建模工作。6.2 更广阔的优化空间SAPPI的设计已经非常精简但仍有探索空间混合精度SAPPI能否在一个加法器内部对高位和低位采用不同的近似策略低位对最终结果影响小可以采用更激进错误更多但更节能的近似高位则需保持精确或轻度近似。与SRAM存内计算的结合忆阻器存内计算尚在发展中而基于SRAM的存内计算已有多款芯片问世。SAPPI的近似算法思想是否可以迁移到SRAM存内计算架构中这可能会是一条更快的技术落地路径。针对特定算法的定制化近似论文测试了通用图像处理算子。如果我们针对某个特定神经网络如MobileNetV3或某个特定图像编码器如JPEG的DCT能否设计出误差模式与算法流程完美匹配的定制化近似加法器这有望在相同质量损失下换取更大的能效提升。6.3 给实践者的建议如果你正在考虑在项目中使用近似计算或存内计算技术我的建议是明确应用边界首先彻底分析你的应用对错误的容忍度。建立一个从硬件误差到应用级指标如分类准确率、PSNR的映射模型。从小处着手不要试图一次性替换所有计算单元。从一个子模块如一个处理引擎中的加法树开始进行仿真和验证。利用现成工具学术界和工业界已开发出一些近似计算电路库和设计自动化工具如EvoApproxLib、Axilog等。可以先用这些工具快速原型探索。软硬协同永远记住硬件上的近似需要软件/算法的配合。与算法工程师紧密合作理解他们的痛点共同确定可以“牺牲”的精度范围。这项基于IMPLY的近似加法器研究为我们展示了一条在物理层面重构计算、以应对能效挑战的清晰路径。它不仅仅是几个晶体管或忆阻器的排列变化更代表了一种计算思维的转变从追求绝对的、确定性的正确转向接受可控的、概率性的足够好。在万物互联、智能泛在的时代这种思维或许正是打开超低功耗智能计算之门的关键钥匙。