@@ -156,17 +156,17 @@ FlagDNN 对标 cuDNN Frontend 时,不建议只补 eager 单算子。每个新
156156
157157| cuDNN op | 参数 | FlagDNN 状态 | 建议实现位置 |
158158| ---| ---| ---| ---|
159- | ` matmul ` | ` A, B, compute_data_type=NOT_SET, padding=0.0, name='' ` | 部分;已有 2D ` mm ` 、 3D batched Graph/ Triton 和 general broadcast fallback,仍缺非零 ` padding ` 语义 | ` ops/matmul.py ` 继续补 padding |
159+ | ` matmul ` | ` A, B, compute_data_type=NOT_SET, padding=0.0, name='' ` | 已有; 2D 走 ` mm ` , 3D 同 batch 走 Triton 快路径,其它 rank/batch broadcast 也走 Triton batched kernel; ` padding ` 按 cuDNN backend padding-value 兼容参数接收,标准 K 匹配时不改变数学结果 | 已有;后续可补动态 K override/低精度专用 GEMM |
160160| ` moe_grouped_matmul ` | ` token, weight, first_token_offset, token_index=None, token_ks=None, mode=NONE, compute_data_type=FLOAT, top_k=0, name='' ` | 缺失 | ` ops/moe_grouped_matmul.py ` ,graph kernel |
161161| ` moe_grouped_matmul_bwd ` | ` doutput, token, first_token_offset, compute_data_type=FLOAT, name='' ` | 缺失 | ` ops/moe_grouped_matmul_bwd.py ` |
162162
163- 普通 ` matmul ` 已覆盖 2D、同 batch 3D 优化路径和其它 rank/broadcast fallback ;cuDNN ` padding ` 是 backend plan padding value,仍需单独定义 FlagDNN 侧等价语义 。
163+ 普通 ` matmul ` 已覆盖 2D、同 batch 3D 优化路径和其它 rank/broadcast;cuDNN ` padding ` 是 backend matmul descriptor 的 padding value,FlagDNN 侧作为兼容参数接收,shape/K 仍按标准 matmul 校验 。
164164
165165### 4.7 Reduction / stats
166166
167167| cuDNN op | 参数 | FlagDNN 状态 | 建议实现位置 |
168168| ---| ---| ---| ---|
169- | ` reduction ` | ` input, mode, compute_data_type=NOT_SET, name='' ` | 已有 eager + Graph;支持 ` ADD/AVG/MUL/MIN/MAX/AMAX/NORM1/NORM2/MUL_NO_ZEROS ` ,FlagDNN graph 需显式 ` dim/keepdim ` ;当前 cuDNN standalone reduction 不给 engine | 已有;后续可补 cuDNN 输出 shape 推导式 API |
169+ | ` reduction ` | ` input, mode, compute_data_type=NOT_SET, name='' ` | 已有 eager + Graph;支持 ` ADD/AVG/MUL/MIN/MAX/AMAX/NORM1/NORM2/MUL_NO_ZEROS ` ,其中 ` MIN/MAX/AMAX/MUL_NO_ZEROS ` 已改为 Triton 原生实现; FlagDNN graph 需显式 ` dim/keepdim ` ;当前 cuDNN standalone reduction 不给 engine | 已有;后续可补 cuDNN 输出 shape 推导式 API |
170170| ` genstats ` | ` input, compute_data_type=NOT_SET, name='' ` -> ` [mean, inv_variance] ` | 缺失 | ` ops/genstats.py ` |
171171
172172cuDNN ` reduction_mode ` 已映射到 FlagDNN graph 的显式 ` dim/keepdim ` reduction;本环境 cuDNN standalone reduction 无有效 engine,因此功能测试保留 torch-reference 覆盖。
@@ -175,7 +175,7 @@ cuDNN `reduction_mode` 已映射到 FlagDNN graph 的显式 `dim/keepdim` reduct
175175
176176| cuDNN op | 参数 | FlagDNN 状态 | 建议实现位置 |
177177| ---| ---| ---| ---|
178- | ` batchnorm ` | ` input, scale, bias, in_running_mean, in_running_var, epsilon, momentum, peer_stats=[], compute_data_type=NOT_SET, name='' ` -> list | 部分;已有 cudnn-style eager + Graph 多输出 forward,返回 ` Y/mean/inv_var/next_running_mean/next_running_var ` ;` peer_stats ` 未支持 | ` ops/batchnorm.py ` ;后续补 peer_stats/backward |
178+ | ` batchnorm ` | ` input, scale, bias, in_running_mean, in_running_var, epsilon, momentum, peer_stats=[], compute_data_type=NOT_SET, name='' ` -> list | 部分;已有 cudnn-style eager + Graph 多输出 forward,返回 ` Y/mean/inv_var/next_running_mean/next_running_var ` ;单设备 ` peer_stats=[tensor] ` 已可透传并按本地 BN 语义执行,多设备同步 peer stats 仍未支持 | ` ops/batchnorm.py ` ;后续补多 GPU peer_stats/backward |
179179| ` batchnorm_inference ` | ` input, mean, inv_variance, scale, bias, compute_data_type=NOT_SET, name='' ` | 已有 eager + Graph;功能/性能已改用 legacy cuDNN standalone ` cudnnBatchNormalizationForwardInference ` 对标;cuDNN Frontend graph standalone 在本环境无 plan | 已有 |
180180| ` batchnorm_backward ` | ` grad, input, scale, mean, inv_variance, peer_stats=[], compute_data_type=NOT_SET, name='' ` | 缺失 | ` ops/batch_norm_backward.py ` |
181181| ` layernorm ` | ` norm_forward_phase, input, scale, bias, epsilon, compute_data_type=NOT_SET, name='' ` -> list | 已有 cudnn-style eager + Graph 多输出 forward,返回 ` Y/mean/inv_var ` ;保留原 ` layer_norm ` API | 已有;backward 另补 |
@@ -187,7 +187,7 @@ cuDNN `reduction_mode` 已映射到 FlagDNN graph 的显式 `dim/keepdim` reduct
187187| ` adalayernorm ` | ` norm_forward_phase, input, scale, bias=None, epsilon, compute_data_type=NOT_SET, name='' ` | 缺失 | ` ops/adalayer_norm.py ` |
188188| ` adalayernorm_backward ` | ` grad, input, scale, mean, inv_variance, compute_data_type=NOT_SET, name='' ` | 缺失 | ` ops/adalayer_norm_backward.py ` |
189189
190- Norm 的 cuDNN API 返回 list,通常包含 output 和保存给 backward 的 stats。FlagDNN graph 已启用 multi-output,并新增 cudnn-style ` batchnorm/layernorm/rmsnorm ` forward tuple 返回;backward 和少数分布式/ peer stats 仍需单独补。
190+ Norm 的 cuDNN API 返回 list,通常包含 output 和保存给 backward 的 stats。FlagDNN graph 已启用 multi-output,并新增 cudnn-style ` batchnorm/layernorm/rmsnorm ` forward tuple 返回;backward 和真正跨设备同步 peer stats 仍需单独补。
191191
192192### 4.9 Quant / FP8
193193
@@ -239,7 +239,7 @@ Norm 的 cuDNN API 返回 list,通常包含 output 和保存给 backward 的 s
239239| ` gemm_swiglu_wrapper_sm100 ` | ` a_tensor, b_tensor, alpha=1.0, c_major='n', ab12_dtype=float32, c_dtype=float16, acc_dtype=float32, mma_tiler_mn=(128,128), cluster_shape_mn=None, sfa_tensor=None, sfb_tensor=None, norm_const_tensor=None, sf_vec_size=16, vector_f32=False, ab12_stages=4, stream=None ` | 缺失 | ` ops/gemm_swiglu.py ` |
240240| ` grouped_gemm_*_wrapper_sm100 ` | grouped/MoE variants with ` padded_offsets ` , ` alpha_tensor ` , optional pointer tensors, scale tensors, ` mma_tiler_mn ` , ` cluster_shape_mn ` , ` sf_vec_size ` , scheduler flags | 缺失 | ` ops/grouped_gemm.py ` plus specialized graph kernels |
241241| ` discrete_grouped_gemm_*_wrapper_sm100 ` | pointer-based discrete grouped GEMM variants | 缺失 | ` ops/discrete_grouped_gemm.py ` |
242- | ` rmsnorm_rht_amax_wrapper_sm100 ` | ` x_tensor, w_tensor, eps=1e-5, num_threads=None, rows_per_cta=None, current_stream=None ` | 部分;有 rms_norm,但缺 RHT 和 amax | ` ops/rmsnorm_rht_amax.py ` |
242+ | ` rmsnorm_rht_amax_wrapper_sm100 ` | ` x_tensor, w_tensor, eps=1e-5, num_threads=None, rows_per_cta=None, current_stream=None ` | 已有;Triton 实现 ` RMSNorm + 16 点 normalized RHT + per-CTA amax` ,支持官方 wrapper 的 2D/尾部 1 维 squeeze、bf16 row-major 输入和 ` rows_per_cta/num_threads ` 校验;不是 SM100 CUTE 专用优化 kernel | 已有;后续可补 SM100/CUTE 专用性能路径 |
243243
244244## 5. 建议新增文件清单
245245
0 commit comments