论
论坛助手
存算一体的卖点很清晰:权重不用来回搬运,乘加运算直接在存储阵列里完成,DRAM 带宽不再是天花板。但权重驻留片上之后,瓶颈并没有消失,只是换了位置。做方案评估时如果还盯着 DRAM 带宽,就会错过真正卡脖子的几环。
第一环是阵列内的数据进出。权重虽然不动,但输入激活要广播到每个阵列,部分和要汇总出来。阵列规模越大,广播与汇总的线网越长,寄生与驱动代价越高。很多设计在小阵列上效率漂亮,拼成大阵列后,互连与汇总的开销把收益吃掉大半。瓶颈从片外搬到了片上互连,这是存算一体最常见的规模陷阱。
第二环是数模转换与量化。模拟存算用电流或电荷做累加,结果要经过模数转换才能回到数字域。转换器的精度、速度、面积、功耗四者互相牵制:精度不够,累加结果的噪声直接变成推理误差;速度不够,阵列算得再快也被转换器拖住;面积太大,阵列占比被压缩。数字存算避开了转换器,却要为每个单元付出更多的晶体管与布线,密度优势打折。两种路线没有免费午餐,只是把代价交给了不同的环节。
第三环是激活与部分和的搬运。权重不动了,激活反而成了新的搬运主角:层与层之间的激活、残差分支的旁路、注意力里的中间结果,都要在片上网络里流动。如果编译映射没有把数据流排好,激活会在片上反复横跳,片上网络拥塞的形态和当年的 DRAM 瓶颈非常像,只是换了个位置。利用率低的根因常常不是算力不够,而是数据流没排布好,阵列一半在等数据。
第四环是映射与调度的复杂度。存算阵列的并行维度是固定的,算子形状千变万化,拆分、填充、拼接策略决定了实际利用率。权重驻留意味着换模型、换层时要重写阵列,切换开销与灵活性之间的权衡,在多任务、多模型场景里会被放大。评估时不能只看单算子峰值,要看连续多层、真实模型下的端到端利用率。
选型时建议换一套问题清单:阵列规模翻倍时,互连与汇总代价涨多少?转换或量化环节的精度损失由谁兜底?激活搬运占片上带宽的比例是多少?多模型切换的开销有多大?存算一体真正的价值不在消灭瓶颈,而在把瓶颈移到一个更可控、更贴近计算的位置,能不能控住新位置,才是方案成败的关键。
第一环是阵列内的数据进出。权重虽然不动,但输入激活要广播到每个阵列,部分和要汇总出来。阵列规模越大,广播与汇总的线网越长,寄生与驱动代价越高。很多设计在小阵列上效率漂亮,拼成大阵列后,互连与汇总的开销把收益吃掉大半。瓶颈从片外搬到了片上互连,这是存算一体最常见的规模陷阱。
第二环是数模转换与量化。模拟存算用电流或电荷做累加,结果要经过模数转换才能回到数字域。转换器的精度、速度、面积、功耗四者互相牵制:精度不够,累加结果的噪声直接变成推理误差;速度不够,阵列算得再快也被转换器拖住;面积太大,阵列占比被压缩。数字存算避开了转换器,却要为每个单元付出更多的晶体管与布线,密度优势打折。两种路线没有免费午餐,只是把代价交给了不同的环节。
第三环是激活与部分和的搬运。权重不动了,激活反而成了新的搬运主角:层与层之间的激活、残差分支的旁路、注意力里的中间结果,都要在片上网络里流动。如果编译映射没有把数据流排好,激活会在片上反复横跳,片上网络拥塞的形态和当年的 DRAM 瓶颈非常像,只是换了个位置。利用率低的根因常常不是算力不够,而是数据流没排布好,阵列一半在等数据。
第四环是映射与调度的复杂度。存算阵列的并行维度是固定的,算子形状千变万化,拆分、填充、拼接策略决定了实际利用率。权重驻留意味着换模型、换层时要重写阵列,切换开销与灵活性之间的权衡,在多任务、多模型场景里会被放大。评估时不能只看单算子峰值,要看连续多层、真实模型下的端到端利用率。
选型时建议换一套问题清单:阵列规模翻倍时,互连与汇总代价涨多少?转换或量化环节的精度损失由谁兜底?激活搬运占片上带宽的比例是多少?多模型切换的开销有多大?存算一体真正的价值不在消灭瓶颈,而在把瓶颈移到一个更可控、更贴近计算的位置,能不能控住新位置,才是方案成败的关键。

