同一矩阵为何算出不同末位,AMD 核心研究拆开数值黑箱
据 《Accurate Models of AMD Matrix Cores》预印本,研究人员为多代 AMD 矩阵核心建立软件数值模型,希望解释相同输入经过不同硬件后,为什么可能出现不同的浮点结果。这不是一份显卡速度排行榜,而是在拆解计算过程中那些不容易从接口说明看出的细节。
作者:林岚|OC 开发者生态编辑
据 《Accurate Models of AMD Matrix Cores》预印本,研究人员为多代 AMD 矩阵核心建立软件数值模型,希望解释相同输入经过不同硬件后,为什么可能出现不同的浮点结果。这不是一份显卡速度排行榜,而是在拆解计算过程中那些不容易从接口说明看出的细节。
一句话结论:随机测试中的逐位吻合,有助于理解硬件算术,但不等于穷尽所有输入的证明;跨设备复现也需要先定义允许什么差异。
写着同一个算式,不一定走同一条数值路径
在实数世界里,矩阵乘法的表达式很明确。但计算机使用有限位数保存中间结果,运算次序、舍入位置和累加精度都会影响最后留下来的比特。所谓同一种输入精度,并没有完整描述内部到底怎样计算。
一个容易理解的类比,是多人分别计算一笔长账:有人每一行都四舍五入,有人保留更多小数到最后才取整。即使使用同一组原始数字,最终末位也可能不同。硬件的实际规则比这个类比复杂得多,但“中间步骤也是结果的一部分”是共同点。
论文关注 AMD 的 CDNA 1、2、3 代矩阵核心,讨论累加器、舍入、归一化及特殊数值等行为。它试图让软件模型贴近真实硬件,而不是先假定所有厂商和代际都采用完全相同的内部算术。

一千万组吻合,证明了什么
作者报告,经过迭代修正的软件模型,在一千万组随机输入向量上与所测硬件逐位匹配。这是有分量的经验验证:一个模型如果能持续预测硬件输出,就可以帮助定位差异来自哪里。
但随机测试不是对全部可能输入的穷举,也不等于形式化证明。极端数值、特殊组合和未覆盖的指令模式,仍可能暴露新边界。正确的解读是“在作者的测试范围内获得高度一致”,而不是“从此精确模拟这类芯片的一切行为”。
这种区别会直接影响工具的用途。研究人员可以用它构造更有针对性的测试,分析某个数值偏差是否来自硬件语义;却不应因为随机样本足够多,就跳过实际应用中的验证。
复现至少有三个层次
第一层是逐位一致:输出的每一个比特相同。它便于严格回归,也最容易受底层算术改变影响。第二层是误差在事先约定的范围内:数值不完全相同,但满足算法的精度要求。第三层是任务结论稳定:数值有所变化,却不改变研究或产品真正关心的判断。
这三个层次不能相互偷换。一个程序跨设备无法逐位一致,不自动意味着结果不可用;反过来,误差看起来很小,也不能直接证明对最终任务没有影响。接近阈值的判断,可能需要单独检查敏感性。
固定随机种子主要约束随机过程,无法顺便规定每一种硬件的舍入路径。要追踪差异,还需要记录设备、软件栈、数据类型、计算设置和误差判定方式。缺少这些信息,换机器后出现差异时,很难判断是实现变化、数据变化还是原本就存在的数值敏感性。
不是用一个末位给厂商排座次
论文还给出应用层面的精度差异示例,但不同结果本身不是一个普适的优劣排序。数值模型有助于理解某项运算如何发生,性能、稳定性与应用误差则需要各自的测试。
对使用者来说,更实际的收益是减少黑箱:知道哪里可能产生差异,才能制定合适的容差,并决定哪些场景必须保持一致的设备和执行路径。
关键事实
- 来源:2026 年 9 月发布、9 月 15 日更新的预印本。
- 研究对象:AMD 多代 CDNA 矩阵核心的数值行为。
- 作者验证:一千万组随机输入向量上的逐位匹配。
- 结论边界:经验测试支持模型有效性,不构成所有输入与操作的完整证明。
OC 判断
可复现性不应只有“完全一样”和“完全不可信”两档。把硬件行为、允许误差与任务结论分开,是比追求一个笼统的确定性标签更有用的工程习惯。
为什么重要
- 对开发者:跨设备回归应明确容差及特殊输入覆盖。
- 对研究团队:保存环境信息,也保存数值判断标准。
- 对采购方:不能把局部精度示例当成整个硬件平台的质量排名。
评论
围绕这篇文章补充信息、提出问题或分享观察。