H3 开启 SageAttention 长视频崩溃排查:修复 int32
你们有没有遇到过:H3 开了 SageAttention 加速,短视频正常,长视频却直接崩?
推荐理由
这篇稿子展示了极佳的工程排查逻辑,从现象到定位再到修复,数据详实且结构清晰,对做 AI 工具或模型优化的创作者很有参考价值。
你们有没有遇到过:H3 开了 SageAttention 加速,短视频正常,长视频却直接崩?
最近碰到了几次: 最初的判断是显存不足,建议关掉 Sage。 但关掉加速就没了,舍不得关。 想想不应该,我48G的显存,不太可能会爆。
于是继续查,把真实张量布局搬进独立测试,终于抓到了问题:栽在一个 32 位整数上。
H3 的 Q/K 是融合 QKV 缓冲区上的切片。 访问某个 token,要计算「序号 × 内存步幅」,步幅是 21,504。 Sage 的 Triton 量化内核用 int32 算地址偏移,超过约 21.47 亿就溢出(因为int32 是有符号的:32 位里要拿 1 位去存正负号,只剩 31 位表示数值大小。所以正数上限是 2^31 − 1 = 2,147,483,647。)。
所以边界实测非常清楚:99,865 个 token 能过,99,866 个就非法访存。
修复是把索引计算提升到 int64,继续使用原来的 Sage FP8 内核。 结果:实际大序列 attention:Sage 2.50 秒,SDPA 6.91 秒,快 2.76 倍
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力