Psum publication tutorial · offline

从数据流到投稿主张:Psum 的两种资源取舍

先把两个层次分开:总排名①是 Psum,②是非 Psum 的精确递归状态(本次已停止研究);在 Psum 内部,本页只讲“候选 A:共同窄结果链路的吞吐/任务能量收益”和“候选 B:用较窄结果链路保留接近吞吐的资源取舍”。

这里的 A/B 是已有证据支持的两种投稿贡献主张。它们不是两个已经证明首创的独立机制;普通局部累计、只发送最终和、packing 或 FIFO 也没有在本页被宣布为首次创新。

四 lane 精确点积 同 100 MHz / 0.9 V / 25 °C 数据流与因果优先 所有数字均保留比较边界

1. 两层候选地图:不要把“第一、第二”混成一个层次

“第一和第二候选”有两种说法。总排名的编号与 Psum 内部的 A/B 编号不同,本页首页先固定这个映射。

总排名 ①

Psum当前投稿证据基础

把逐 tile 的中间结果归约位置从 collector 附近移到 lane 内,再以较少的 final 结果进入中央链路。已有数字外围的吞吐、任务能量与带宽取舍证据。

本教程的候选 A、候选 B 都在这一层内部。

总排名 ②

非 Psum精确递归状态

累积二的幂衰减、延后写回,并用精确阈值 decoder 恢复有限精度历史。它是另一条专用算子候选路线,当前已停止继续研究,不属于本页 Psum 数据流。

末尾附录只做静态定位,不把它改写成 Psum 候选。

Psum 内部的两种主张:候选 A 关心“共同较窄结果链路下,局部归约是否减少中央服务阻塞,从而提高吞吐并缩短任务能量窗口”;候选 B 关心“结果链路缩窄到 32 bit 后,是否仍能接近强 128 bit 逐 tile 参照的吞吐,并以小幅面积/能量取舍换通信资源”。两者使用不同比较合同,不能相乘或合并成一个加速比。
证据语气:可以把成熟原语组成一个针对特定问题、固定资源规则和公平成本的工程贡献;仍不能据此说 A/B 已被证明是首创机制,也不能把“local Psum”四个字本身当成论文新颖性。

2. 先读懂七个术语:它们决定“因果”落在哪里

术语本页含义在结果里对应什么
Psumpartial sum,部分和。一个 dot product 尚未完成时,已经累加的精确整数结果。可以在每个 tile 后交给中央,也可以留在 lane 中直到最后一个 tile。
lane并行计算通道。这里有 4 个 lane,每个 lane 按固定模 4 映射接收一组 tile。local 方案在 lane 内保存 `local_sum`,最后产生一个 lane final。
tile一次被四列计算核处理的输入分块。一个 dot product 由很多 tile 组成。304 个 tile 的每 tile 结果形成 304 条中间 record。
projection本页把一次完整的投影/点积任务看作一个 projection;所有 tile 结果最终退休为输出。旧单列例子是 192 tile → 4 final;新四列合同是 304 tile → 4 final。
collector中央收集、归约并反馈 Psum 的逻辑。它受到结果到达次序、握手和 holding 空间影响。local 通过减少 collector 看到的中间事务,试图减少反压。
带宽结果链路每拍可搬运的位数、record 或 beat 数。链路越窄,排队与反压越容易成为瓶颈。32 bit 与 128 bit 结果链路是候选 B 的资源预算差异。
吞吐 / 功率 / 能量吞吐是单位时间完成多少任务;功率是运行时瞬时平均消耗率;能量是完成同一任务所用的功率乘有效时间。local 的平均功率可以更高,但如果完成窗口更短,任务能量仍可能更低。
精确整数语义: y = Σtile rtile = Σlane Σtile∈lane rtile
关键变化: 乘加工作量相同;变化的是 Psum 在哪里停留、什么时候通过 collector、中央看到多少事务。

只要局部状态没有溢出,先在 lane 内加、最后再做四 lane 求和,与逐 tile 交给中央的最终精确整数结果相同。于是论证重点从“算得对不对”转到“在什么链路和资源约束下,哪一种传输/归约位置更合适”。

3. 同一组乘加,两种结果数据流

下面两行是同一组 activation、weight 和 tile 计算。上行每个 tile 都把中间结果送给中央;下行让每个 lane 先完成自己的局部精确和,只有最后一个 tile 产生 final record。绿色路径改变了中央事务的发生时机,未删掉输入和核心计算。

逐 tile 中央累计与 lane-local 累计的数据流 相同输入进入四个 lane 和计算核。上方逐 tile 路径每个结果经过 holding 和 collector 后进入中央累计;下方 lane-local 路径在每个 lane 内累加,最后一个 tile 才生成 final,四个 final 再进入 collector。 逐 tile 中央累计(tile32 参照) 每个 tile 都生成一条中间 record;collector 持续服务,拥塞时沿 holding / ready 形成反压。 相同输入 q / w / tile 4 lane / core 保留全部乘加 每 tile record 304 条 × 88 bit collector 握手 / 反压 中央累计 中央事务 ≈ tile 数 lane-local 累计(local32) 非末 tile 在 lane 内退休;末 tile 把 local_sum 与当前 tile 相加,形成一次 final。 相同输入 q / w / tile 4 lane / core 保留全部乘加 lane local_sum 非末 tile 留在本 lane 末 tile → final 每 lane 一条 collector 4 条 final record 中央仍精确归约四 lane final 事务变化:304 条 88-bit record → 4 条 116-bit record(同一 dot)
相同计算与输入lane 内局部状态中央链路 / collector末 tile / final
图中“事务减少”是数据流事实,不是自动等于加速、功率下降或 NoC 能量比;真正的总时间还受输入、最慢 lane、尾部和结果退休约束。

旧单列例子:48× 是次数比

192 tile projection 从逐 tile 发送变为 4 个 lane final,接收次数为 192→4,即 48×。它说明 collector 看到的事件数变化,不能直接写成 48× 带宽、功耗或系统吞吐。

新四列合同:76× 是 record 比

304 条 88-bit 中间 record 变为 4 条 116-bit 分区结果,record 数是 76×;共同 32-bit beat 是 836→15。两种数字都不是对应的加速比。

4. 交互演示:一个小的 4-lane 点积如何保持同一最终结果

把每个 lane 的三个 tile 结果固定为下面的整数。滑块每推进一步,表示四个 lane 各处理完一个 tile,共四块,而不是整个任务只处理一块。local_sum 在 lane 内累加;只有最后一个 tile 才显示 final。逐 tile 路径每轮提交 4 条结果,local 路径只在末轮提交 4 条 final。事务计数假设这些结果均已被中央接受;这是抽象处理轮次,不是实测时钟,也不表示 C1 能同拍接收四条。

滑块:每个 lane 已处理 1 个 tile

tile 0:尚未到最后 tile
lanetile 0tile 1tile 2(最后)当前 local_sumfinal
逐 tile 路径中央事务(累计)
4 条
每个 lane 的当前 tile 都提交一次
local 路径中央事务(累计)
0 条
只在最后 tile 产生四条 final
同一最终精确结果
21
完整处理后两条路径相等

为什么最后 tile 要单独标出? 对前两个非末 tile,local 只有“继续累加”这一动作;第三个也是最后 tile,才执行 local_sum + tile_result → final。末轮表中的 local_sum 是加上当前 tile 后的和,随后四个 lane final 才能进入中央 collector。若把最后 tile 与普通 tile 混写,就会错误地认为 local 每步都能向中央交付,或遗漏末尾的求和。

5. A/B 数字证据:两组比较回答两个不同问题

下面柱图按每个指标自己的最大值归一化高度;面积标签保留两位小数,其余数值与完整精度表一起读。A 的 baseline 是共同 32 bit 结果链路下的 tile32;B 的 baseline 是强 tile128,local 仍是 32 bit。两组不能拼接。

Psum 候选 A 与 B 的周期、面积、平均功率和任务能量对比 四组指标各有 baseline 与 local 两根柱,柱高按组内最大值归一化,标签显示实际数值。 0 25% 50% 75% 100% 组内归一化;数值是报告中的数字外围估计,非硅测量 baseline local
候选 A:同 TT / 0.9 V / 25 °C / 100 MHz、共同 32 bit 结果链路、108 条相关 Qwen dot。
指标tile32 参照local32结论

候选 A:共同窄结果链路的吞吐 / 任务能量收益

固定 TT 0.9 V、25 °C、100 MHz 和 10 ns 时钟,同一四列精确点积合同下,tile32 与 local32 都使用 32 bit 结果链路。local 让 108 条相关 Qwen dot 的总周期从 91,321 降到 51,346,所以吞吐为 1.7785×;任务每四输出 dot 能量从 26.6353 nJ 降到 16.4973 nJ,即 −38.06%。代价是面积 +9.00%、平均总功率 +10.16%。

A 的因果句:在共同窄结果链路下,结果出口/collector 服务成为主要约束时,local 状态可以把非末 tile 的中央事务移走,让完成窗口明显缩短。能量下降来自同一任务的有效活动窗口变短,不是平均功率下降。

候选 B:较窄结果链路保留接近吞吐的资源取舍

强 tile128 允许每拍搬运更宽的逻辑结果,并允许两项退休;local32 只有 32 bit 结果链路。两者都完成同一 108-dot 合同:tile128 总周期 50,214,local32 为 51,346,吞吐保留 97.80%;逻辑结果接口从 128 bit 降到 32 bit,即 −75%。local 的任务能量仅低 3.32%,面积高 3.85%,平均功率较低(3.47 mW 对 3.67 mW)。

B 的因果句:把结果接口缩窄并不要求吞吐按位宽比例下降;在长点积和 local final-only 数据流下,较窄链路仍可接近强宽口参照。这里的“链路”是逻辑结果接口预算,不能写成物理 NoC 能量测量;B 目前也没有实体链路或宏删除证据。

6. 公平成本合同:为什么这些数字可以比较

投稿时最容易被追问的不是“数字大不大”,而是“是不是把基线做弱了”。A/B 的证据必须和下面的收费边界一起读。

两边共同保留的工作

  • 两条实际 256 bit 数字输入通道、holding、目的路由、重组和反压。
  • 四个共享四列精确计算核,activation、weight、tile 数和原始乘加工作量相同。
  • 发送/接收 reservoir、collector、最终 INT32 归约和输出退休。
  • 连续紧密 packing;尾拍才补零,避免靠松散封装制造带宽假象。
  • 每端 reservoir 按共同 W + 232 规则收费:tile128 为 360 bit,local32 为 264 bit,并非要求不同链路强行使用相同位数。
  • local 的 16 个 27 bit bank、反馈、final holding 等新增状态计入面积和活动。

当前明确排除的东西

  • 物理 SRAM bitcell、真实 SRAM 读口、布局布线寄生和时钟树。
  • SDF 毛刺、布线后 NoC 电容、物理通信能量和完整系统互连。
  • 完整模型、量化精度、独立 prompt 统计或实际提频运行。
  • 108 条输入来自已有相关 Qwen 轨迹;它们不是 108 个独立 prompt。
  • 因此面积是规定数字外围的标准单元面积,功率是门级零延迟 VCD/PT 活动估计。
比较合同共同 shape / 链路变化可以说什么不能说什么
Atile32 ↔ local32108 条相关 Qwen dot;共同 32 bit 结果链路逐 tile record ↔ lane-local final-only在窄结果链路和长点积合同下,吞吐与任务能量的条件性收益。不能把 304→4 的 76× record 比写成 76× 加速或能量比。
Btile128 ↔ local32同一任务;逻辑结果接口 128 ↔ 32 bit宽结果链路 ↔ 窄结果链路较窄链路保留 97.80% 吞吐,换取小幅面积/能量取舍。不能写成物理 NoC 能量节省,也没有宏删除证明。
C旧单列 P2 负例共同真实 P2 入口;local C1 ↔ 真正 tile C2强中央二项收集器已经回收大部分等待local 的优势依赖 collector 压力和资源规则,不是普遍优胜。不能把 C 的负例和 A/B 相乘或混成一个总分。
三个实验不能合并或相乘:A/B 共用同一四列任务,但比较的结果宽度与 collector 资源预算不同;C 是旧单列任务,shape 不同。A 的 1.7785×、B 的 97.80%、C 的 0.998903×分别回答各自比较问题;它们不是可串联的加速因子。

功率来自约三位有效数字的 PT 报告,派生百分比受此精度限制。任务能量按各自完整活动窗口计算:E(nJ/dot) = P(mW) × T(ns) / (1000 × dot数);不是把 local 完成后的空闲时间加入共同平均窗口。

7. 收益条件与强 C2 负例:局部累计什么时候有用

local 的有利方向不是“中央事务越少越好”这么简单。减少事务需要局部寄存器、局部加法、final holding 和更宽的分区 record;当 collector 已经足够强或点积太短时,这些新增成本可能占上风。

Psum 局部累计的收益条件与负例 横轴从 collector 服务压力低到高。低压力一侧强 C2 和宽结果口使 local 的状态成本占主导;高压力一侧窄链路、长点积和充分事务摊销使 local 更可能获益。 压力低 / 中央能力强 压力高 / 窄链路成为瓶颈 强 C2、宽结果口、短点积 collector 已经快速合并结果 local 状态和尾部开销不易摊销 窄结果口、长点积、中央事务拥塞 非末 tile 可在 lane 内退休 四条 final 的额外状态可以被摊销 collector 服务压力低 collector 服务压力高 C:旧 actual P2 + 真正 C2 旧 local 吞吐 0.998903× 能量 +1.7509%,面积 +4.2867% A:共同 32 bit 窄链路 吞吐 1.7785×,任务能量 −38.06% 仍支付面积 +9.00%、功率 +10.16%
这是一张条件示意,不是一个跨 shape 的拟合公式。A 的高收益与 C 的负例共同说明:local 是否值得,取决于链路、collector、点积长度和局部状态成本的组合。

有利条件

窄结果链路、较长点积、collector 服务/反压明显、非末 tile 的局部退休能被充分摊销。

中性条件

输入供数或最慢 lane 已经主导完成时间;减少中央事务不再能改变总周期。

不利条件

强 C2 已低成本合并多路、点积很短、final 与状态开销没有摊销,local 可能更慢、更耗能。

C 负例的意义:旧单列真实 P2 入口中,旧 local C1 相对真正 tile C2 的吞吐是 0.998903×,任务能量 +1.7509%,面积 +4.2867%。这是旧 local 的负例,不是所有后续状态复用版的结论;它仍是投稿主张必须写出的适用边界。

后续 fused:具体删除重复状态,形成小幅取舍

fused 每个 lane 删除 INT20 tile 结果 bank、重复 INT27 final bank,以及两项完成标签 FIFO 和指针/count;改用同一个 INT27 bank 累计并保持 final,配合 18 bit 活动标签。普通加法并未消失:Horner 与 INT27 累计进入同拍组合链,估计路径相对旧 local 增长约 10.45%,不是提频收益。状态复用依赖严格单 projection 生命周期。

旧 actual P2 合同:TT / 0.9 V / 25 °C,100 MHz,73,728 tile / 384 个单输出 dot
配置完整周期标准单元面积 µm²能量 pJ/单输出 dot
旧 actual tile C2(共同参照)52,83018,741.1143,356.9062
旧 local C1(上述负例)52,88819,544.4893,415.6833
fused local C1(状态复用)52,50418,866.3583,254.1542

fused 相对这份旧 actual tile C2:吞吐 +0.6209%、能量 −3.0609%、面积 +0.6683%。这是小幅数字外围取舍,不是 A/B 的额外乘数,也不是全面优势。方法与版本边界见 psum_fused_mechanism.md、psum_priority_review.md。

新 matched compact C2 尚未测活动能量。通用状态精简也应给参照版,不能把旧 C2 下 fused 的 −3.0609% 延用到新 matched compact C2,更不能据此宣称新合同净节能成立。

8. 已有机制、当前增量、潜在主张与未证明事项

下面的对照表适合转化为论文 introduction、architecture comparison 和 limitation。每一列都要保留,才能让“工程贡献”与“机制首创”不互相替代。

已有机制 / 边界当前实现增量潜在投稿主张未证明之处证据状态
OS-CIM 已有 macro 内本地 Psum,并以减少外部 Psum buffer 访问为目标。 在本项目四 lane、固定模 4 映射和精确整数合同中,改变 projection 内归约位置;local_sum 留在 lane,末 tile 才发 final。 在特定窄结果链路/collector 预算下,局部状态与中央服务带宽形成可复核的吞吐—能量取舍。 归约原则本身相对所有邻近 output-stationary 方案的新颖性;物理 SRAM/互连是否真的净省。 先例边界已知
StreamDCIM 已有 tile execution decoupling、混合驻留交叉转发和 elastic scheduling。 本实现保留同一核和队列预算,测量 local final-only 如何减少当前 collector 的中间交互。 把固定 mapping、结果宽度、collector 服务和 local 状态放进同一公平资源合同,给出收益/负例交叉点。 不能把一般解耦、FIFO 或调度叫成首次;不能宣称相对 StreamDCIM 全系统领先。 先例边界已知
普通精确累计、packing、共享核、Booth/Horner、FIFO 都是成熟原语。 完整收费的数字外围:输入、holding、路由、反压、local bank、feedback、final record、collector。 A:共同窄链路下吞吐/任务能量结果;B:以 32 bit 结果链路保留接近 128 bit 参照吞吐的资源取舍。 A/B 都不是已被证明首创的两个机制;普通 local accumulate 不能单独承担 novelty。 条件性候选
四 lane 的中央 C2 可以用实际选择的两项做低成本合并。 强 C2 作为近距离参照,避免只拿弱 collector 证明 local 有利。 把强基线也纳入,说明 local 的收益来自何种通信预算,而非对所有中央收集器都优胜。 C 中已出现近零吞吐和正能量代价;当前没有普适优势或所有预算下优胜。 负例已保留
累计、寄存器复用和标签精简都是成熟原语,不能单独声称首创。 旧单列 fused 合并累计与 final 保持 bank,删除 tile/final 重复 bank 和完成标签 FIFO;以单 projection 生命周期换取可证明的状态删除。 在旧 actual P2/C2 完整成本合同中,以面积 +0.6683% 换能量 −3.0609%、吞吐 +0.6209%,说明具体状态动作比单纯事务次数更有解释力。 新 matched compact C2 未测能量;不能推广旧 fused 结论,也不证明 A/B 已删除物理链路或宏。 旧合同已测
可以写成的窄主张:在固定四 lane、精确整数、相同输入供数和同一结果退休合同下,把逐 tile collector 交互迁移为 lane-local final 交互,测出窄结果链路下的吞吐/任务能量收益,以及对强宽结果链路的接近吞吐资源取舍。
暂时不能写成的句子:“首次 local Psum”“首次 final-only”“首次 DCIM 解耦”“通信 48× 节能”“完整 Transformer 加速”“已经删除了物理 NoC/SRAM 资源”。

把成熟原语组成贡献,需要四个同时成立的条件

  1. 特定问题:明确是窄结果链路下的 collector 服务/反压问题,而不是泛泛地说“减少加法”。
  2. 资源规则:固定输入通道、lane 映射、tile 长度、结果位宽、collector 能力和状态位宽。
  3. 公平成本:local bank、feedback、holding、packing、协议和输出退休都收费,基线也给足合理 C2 能力。
  4. 可复核边界:同时展示 A 的正结果、B 的取舍和 C 的负例,说明何时收益消失。

9. 用一页纸讲清 Psum 的因果链

输入没有少

所有 activation、weight、tile 和 bit-serial 乘加仍然执行;收益来源不是跳过计算。

中央看到得更晚、更少

非末 tile 的结果在 lane 内退休,collector 主要处理每 lane 的 final;这会减轻窄结果链路上的服务压力。

总时间仍有硬下界

输入供数、最慢 lane、projection 边界、final drain 和输出退休无法被 local_sum 自动消除。

论文叙事可以按此顺序展开:
问题:窄结果链路 + 中央 collector 反压
结构:lane-local exact Psum + last-tile final-only
公平性:同输入、同核、共同 reservoir 规则、收费新增状态和协议
结果:A 的吞吐/任务能量;B 的窄链路近吞吐;旧 C2 下 local 负例与 fused 小幅取舍
边界:不是普适首创,不是物理 NoC 能量,不是完整模型加速

附录:总排名②为何不是 Psum

这里把容易被简称为“第二候选”的想法单独定位。它是总排名第二的精确递归状态表示,不是 Psum 内部的候选 B,也不是本教程 A/B 的另一个名字;当前已停止研究扩展。

它具体做什么

  • 对特定递归状态使用二的幂衰减,把部分衰减累积为历史描述量。
  • 把写回延后到规定 checkpoint;读出时逐步恢复有限精度状态。
  • 有限精度逐步舍入不能直接替换成“一次缩放”而保持相同结果,所以需要精确阈值 decoder。
  • 它改变的是递归状态的表示、恢复和宏写回,不是 projection 中 tile Psum 送给 collector 的位置。

已得到的专用组件数字

  • 精确阈值 decoder 相对四步简单串接:面积 −34.1643%。
  • DC 估计路径增加 +10.5263%;相同 10 ns 时钟下吞吐比为 1。
  • 指定算子四步历史的宏写次数减少 −73.4375%。
  • 这些数字只对应指定有限精度算子和组件/宏访问合同。
为什么不把它并入 Psum:它依赖 signed one-hot key、二的幂衰减、有限 binary16 恢复与阈值解码;Psum A/B 依赖四 lane、tile、collector、结果链路和 projection 事务。两者的数据流、组件、成本合同和未决问题不同。
仍未闭合的地方:宏写 −73.4375% 只针对指定算子,不能外推为完整系统能量;真实目标算法、decoder/控制/驻留/时钟/连线和整合净能量仍未知。因此它保持为总排名②的专用候选,而不是本页 Psum 机制或已经完成的论文主张。