论文题名: From Slow Bidirectional to Fast Autoregressive Video Diffusion Models。 作者: Tianwei Yin、Qiang Zhang、Richard Zhang、William T. Freeman、Fredo Durand、Eli Shech
-
算子与编译器:Workload 建模与 Shape Bucketing
很多 kernel 优化最终之所以有效,不是因为它在所有 shape 上都快,而是因为它精准命中了真实 workload 中最常出现的那些 shape bucket。 因此在进入特化和 autotune 之前,先理解 workload 分布本身,往往比直接写新 kernel 更重要。 图源:vLLM 官方博客。原图表达
-
算子与编译器:Triton 编程模型与自动调优:先画 tile,再谈速度
Triton 不是“Python 版 CUDA”。它真正提供的是一种适合神经网络张量算子的中间层:你不用手写每个 thread 的同步和访存细节,但仍然要明确一个 program instance 负责哪块输出、怎样计算地址、怎样处理边界、怎样累加、怎样选择 tile,以及编译和 autotune 什么时候发生。 读
-
算子与编译器:Kernel 测试、回归与维护
这篇回答的问题。 一个自定义 kernel 怎样从“跑得快的实验代码”变成能长期维护、可回归、可升级的工程资产。 很多 kernel 项目最难的阶段,不是把第一版做快,而是把它长期维持在“正确、快、可升级”的状态。一个高性能算子如果没有测试、性能回归和版本维护机制,最终很容易退化成: 1. 只在作者机器上能跑; 2.
-
算子与编译器:推理 Attention 与 KV Kernel
训练里的 attention kernel 和在线服务里的 attention kernel,看起来在算同一个公式,实际上往往面对完全不同的系统条件。训练时更像规则的大矩阵运算;服务时尤其是 decode 阶段,更像一个在动态批处理、KV 页面管理、长短请求混杂和 tail latency 约束下运作的内存系统。 因此
-
算子与编译器:Runtime Dispatch 与 Kernel 选择
很多高性能系统并不是靠“一个万能 kernel”获胜,而是靠一整套运行时 dispatch 机制:根据 shape、dtype、layout、设备类型、batch 形态和任务阶段,为当前请求挑选最合适的 kernel 路径。 也就是说,真正的性能系统不仅要有好 kernel,还要有 挑 kernel 的能力 。 图源:
-
算子与编译器:Roofline 建模与性能案例
做算子优化时,最常见的失败不是“技术不够强”,而是没有先判断瓶颈类型,benchmark 设计不可靠,看到局部提速就误以为端到端受益,或者没有把案例还原成通用方法。 因此这一页专门把 roofline、benchmark 设计和几个典型案例放在一起,帮助你把“性能感觉”变成“性能判断”。 这页适合和 GEMM 与 At
-
算子与编译器:Reduction、Norm、Layout 与 Indexing:小算子为什么能拖慢大模型
大模型系统里最容易被低估的,不一定是最大的 GEMM,而是那些每层、每步、每个 token 都会经过的小算子:reduction、softmax、LayerNorm、RMSNorm、RoPE、gather、scatter、layout transform、pack/unpack。它们单次 FLOPs 不多,但会反复读写
-
算子与编译器:PTX / SASS 与编译检查
很多 kernel 调优到了后期,真正需要看的已经不只是源码,而是编译之后到底生成了什么。因为同一段高层代码,可能在不同编译器、不同版本、不同 GPU 上生成完全不同的底层结果。 这也是为什么成熟的算子工程师,最终都会形成一个习惯: 必要时看 PTX,看 SASS,看寄存器和指令路径,而不是只相信源码意图。 图源:NV
-
算子与编译器:Profiling、调试与数值稳定
很多 kernel 优化最后不是败在“不会写更快代码”,而是败在三件事上:没有正确测量,优化方向从一开始就错了;没有可靠验证,性能上去了但结果悄悄错了;没有处理数值稳定性,速度和精度之间出现不可接受的偏差。 成熟算子工程不是“会写 kernel”,而是建立从热点识别、性能定位、正确性验证到数值验收的完整闭环。 Prof