别再数FLOPs,要数Bytes

Count the Bytes, Not the FLOPs

6sgilda💬 1
别再数FLOPs,要数Bytes

我们在优化tsbootstrap时遭遇了一次惨痛失败:面对成熟的arch库,我们的批量处理方案在真实负载下慢了几倍。问题不在于Python解释器的开销,而在于我们盲目追求向量化,将数千个bootstrap replicate一次性构建为巨大的张量。这导致数据在内存和缓存间反复搬运,算术强度极低。我们最终悟出一个道理:不要为了计算而计算,要关注内存流量。通过改为流式处理,不再物化中间数组,我们不仅消除了不必要的内存峰值,更将性能提升了数倍。记住,在内存带宽受限的时代,数Bytes比数FLOPs更重要。

"那个gather操作之所以慢,不是因为代码被解释执行,而是因为其算术强度太低,无法让处理器保持忙碌:这是一个Bytes问题,却被错误地当作FLOPs问题来对待。"

同日更多故事 · 2026-07-17