mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-09-25 07:27:30 -05:00
* metal : add top-k MoE fusion Adds a Metal fusion for SOFT_MAX + ARGSORT + GET_ROWS with optional routing-weight normalization and scale, matching the top-k MoE fusion available in the CUDA and Vulkan backends. The fused kernel writes the selected expert ids and routing weights directly, eliding the separate softmax, argsort, get-rows, sum-rows, clamp, div and scale kernels. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : add MoE weighted reduction fusion Fuses MUL(experts, weights) plus the expert VIEW/ADD chain into one kernel that computes the weighted sum directly. The graph_optimize hook keeps the expert and weight buffers alive until the fused output so the allocator cannot reuse them while the kernel is still reading them. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * tests : expose MoE weighted reduction in fusion baseline Use 2 experts per token in the generated MoE test models so the Metal MoE weighted reduction fusion (MUL + ADD) is exercised by test-fusion. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : fuse RMS_NORM + SCALE Adds NORM/RMS_NORM + SCALE fusion to the Metal backend by reusing the norm+mul kernel with a scalar scale flag. Adds test coverage for both NORM+SCALE and RMS_NORM+SCALE and regenerates the fusion baseline. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use function constant for RMS_NORM + SCALE Replaces the runtime use_scale karg with a Metal function constant. The norm+mul kernel is compiled with FC_norm_use_scale=false for MUL fusion and FC_norm_use_scale=true for SCALE fusion, so the fused kernel has no runtime branch. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use function constant for top-k MoE with_norm Replaces the runtime with_norm karg with a Metal function constant. The top-k MoE kernel is compiled separately for the normalized and non-normalized routing variants, removing the runtime branch. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : rename moe_weighted_reduction suffix to moe_reduce Shortens the MoE weighted-reduction fusion identifiers, kernel, pipeline, matcher, args struct, and test op name from moe_weighted_reduction to moe_reduce. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : add MUL_MAT + UNARY and MUL_MAT + ADD + UNARY fusion Adds dense mat-vec activation fusion for sigmoid/silu and bias+softplus. The mat-vec kernels apply the activation/bias epilogue via function constants, avoiding the separate unary/add passes. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : revert MUL_MAT + UNARY and MUL_MAT + ADD + UNARY fusion The mat-vec activation fusion regressed decode throughput on Qwen3.6-35B-A3B by ~8% (tg32 81.5 vs 88.5 t/s). The regression is caused by loss of concurrency: the standalone unary kernels previously overlapped with other mat-vec work, while fusing the activation into the mat-vec kernel serializes it on the critical path. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : add SSM_CONV + UNARY (silu) fusion The SSM_CONV kernels apply silu directly via a function constant, eliding the separate unary pass. Regenerates the fusion baseline. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : address fusion review comments - Fix declaration/table alignment - Rename top-k MoE kargs fields to val_clamp / val_scale - Move moe-reduce alloc-deps handling into a general fusion helper - Remove the public moe-reduce matcher API Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : fix unused parameter in top-k MoE fusion check Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : guard SSM_CONV fusion lookup behind use_fusion Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : track all fused outputs in graph reorder Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : keep top-k MoE logits alive until fused output Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : refactor alloc deps to pattern-driven approach Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : check fused kernel destination in concurrency tracking Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * meta : forward graph_optimize to underlying backends Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use vector for fusion table Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * meta : keep graph_optimize unimplemented Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * parallel : fix non-deterministic prompt selection Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * parallel : support dummy models and add global logits run hash Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : sync cross-device copies with destination completion event Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : avoid const_cast in fusion alloc deps Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : skip fusions with aliased sources Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : hide fusion pattern definition Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use vector fusion op sequences Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : drop redundant struct keywords Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : add alloc deps comment separator Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : generalize fusion output memory ranges Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : rename fusion out_offsets to outs Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : avoid dst vector in memory range check Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : optimize fusion matching and multi-output handling - use pointer arithmetic for fusion info count lookup - avoid heap allocations in top-k MoE and MoE reduce pattern matchers - use fusion outs for multi-output subgraph checks Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * Revert "parallel : support dummy models and add global logits run hash" This reverts commit 57c7caf941c1b43c270fd5009c9f175063522e96. * fusion : update MTL.csv * metal : unroll constant loops in top-k MoE kernel Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use function constants for top-k MoE n_expert and top_k Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : rename fusion kargs to scale and clamp Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * metal : use function constants for moe_reduce and ssm_conv Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp * fusion : update MTL.csv
19 KiB
19 KiB
| 1 | # test-fusion baseline for device MTL |
|---|---|
| 2 | # arch ,moe ,mode ,label , count |
| 3 | afmoe ,1 ,any ,MUL+ADD , 2 |
| 4 | afmoe ,1 ,any ,RMS_NORM+MUL , 10 |
| 5 | afmoe ,1 ,any ,RMS_NORM+MUL+ADD , 3 |
| 6 | arcee ,0 ,any ,RMS_NORM+MUL , 5 |
| 7 | arctic ,0 ,any ,MUL+ADD , 4 |
| 8 | arctic ,0 ,any ,RMS_NORM+MUL , 7 |
| 9 | arctic ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 10 | baichuan ,0 ,any ,RMS_NORM+MUL , 5 |
| 11 | bailingmoe ,1 ,any ,ADD+ADD , 2 |
| 12 | bailingmoe ,1 ,any ,MUL+ADD , 4 |
| 13 | bailingmoe ,1 ,any ,RMS_NORM+MUL , 5 |
| 14 | bailingmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2 |
| 15 | bailingmoe2 ,1 ,any ,ADD+ADD , 1 |
| 16 | bailingmoe2 ,1 ,any ,MUL+ADD , 2 |
| 17 | bailingmoe2 ,1 ,any ,RMS_NORM+MUL , 9 |
| 18 | bailingmoe3 ,1 ,any ,ADD+ADD , 1 |
| 19 | bailingmoe3 ,1 ,any ,GATED_DELTA_NET+CPY , 1 |
| 20 | bailingmoe3 ,1 ,any ,MUL+ADD , 2 |
| 21 | bailingmoe3 ,1 ,any ,RMS_NORM+MUL , 8 |
| 22 | bailingmoe3 ,1 ,any ,RMS_NORM+SCALE , 2 |
| 23 | bloom ,0 ,any ,NORM+MUL+ADD , 6 |
| 24 | chatglm ,0 ,any ,RMS_NORM+MUL , 5 |
| 25 | codeshell ,0 ,any ,NORM+MUL+ADD , 5 |
| 26 | cogvlm ,0 ,any ,RMS_NORM+MUL , 5 |
| 27 | cohere2 ,0 ,any ,ADD+ADD , 2 |
| 28 | cohere2 ,0 ,any ,NORM+MUL , 3 |
| 29 | cohere2moe ,1 ,any ,ADD+ADD , 2 |
| 30 | cohere2moe ,1 ,any ,MUL+ADD , 2 |
| 31 | cohere2moe ,1 ,any ,RMS_NORM+MUL , 3 |
| 32 | command-r ,0 ,any ,NORM+MUL , 3 |
| 33 | dbrx ,0 ,any ,MUL+ADD , 4 |
| 34 | dbrx ,0 ,any ,NORM+MUL , 5 |
| 35 | dbrx ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 36 | deci ,0 ,any ,RMS_NORM+MUL , 5 |
| 37 | deepseek ,0 ,any ,ADD+ADD , 1 |
| 38 | deepseek ,0 ,any ,MUL+ADD , 2 |
| 39 | deepseek ,0 ,any ,RMS_NORM+MUL , 5 |
| 40 | deepseek ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 1 |
| 41 | deepseek2 ,0 ,any ,ADD+ADD , 1 |
| 42 | deepseek2 ,0 ,any ,MUL+ADD , 2 |
| 43 | deepseek2 ,0 ,any ,RMS_NORM+MUL , 9 |
| 44 | deepseek32 ,0 ,any ,ADD+ADD , 1 |
| 45 | deepseek32 ,0 ,any ,MUL+ADD , 2 |
| 46 | deepseek32 ,0 ,any ,NORM+MUL+ADD , 2 |
| 47 | deepseek32 ,0 ,any ,RMS_NORM+MUL , 9 |
| 48 | deepseek4 ,0 ,any ,MUL+ADD , 8 |
| 49 | deepseek4 ,0 ,any ,RMS_NORM+MUL , 20 |
| 50 | dots1 ,0 ,any ,ADD+ADD , 1 |
| 51 | dots1 ,0 ,any ,MUL+ADD , 2 |
| 52 | dots1 ,0 ,any ,RMS_NORM+MUL , 9 |
| 53 | dots3note ,0 ,any ,ADD+ADD , 1 |
| 54 | dots3note ,0 ,any ,MUL+ADD , 2 |
| 55 | dots3note ,0 ,any ,NORM+MUL+ADD , 1 |
| 56 | dots3note ,0 ,any ,RMS_NORM+MUL , 11 |
| 57 | dream ,0 ,any ,RMS_NORM+MUL , 5 |
| 58 | ernie4_5-moe ,1 ,any ,ADD+ADD , 1 |
| 59 | ernie4_5-moe ,1 ,any ,MUL+ADD , 2 |
| 60 | ernie4_5-moe ,1 ,any ,RMS_NORM+MUL , 5 |
| 61 | ernie4_5 ,0 ,any ,RMS_NORM+MUL , 5 |
| 62 | exaone ,0 ,any ,RMS_NORM+MUL , 5 |
| 63 | exaone-moe ,1 ,any ,ADD+ADD , 1 |
| 64 | exaone-moe ,1 ,any ,MUL+ADD , 2 |
| 65 | exaone-moe ,1 ,any ,RMS_NORM+MUL , 9 |
| 66 | exaone4 ,0 ,any ,RMS_NORM+MUL , 5 |
| 67 | exaone4 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 68 | falcon ,0 ,any ,ADD+ADD , 2 |
| 69 | falcon ,0 ,any ,NORM+MUL+ADD , 5 |
| 70 | falcon-h1 ,0 ,any ,ADD+ADD , 2 |
| 71 | falcon-h1 ,0 ,any ,RMS_NORM+MUL , 9 |
| 72 | gemma ,0 ,any ,RMS_NORM+MUL , 5 |
| 73 | gemma2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 74 | gemma2 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 75 | gemma3 ,0 ,any ,RMS_NORM+MUL , 9 |
| 76 | gemma3 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 77 | glm-dsa ,0 ,any ,ADD+ADD , 1 |
| 78 | glm-dsa ,0 ,any ,MUL+ADD , 2 |
| 79 | glm-dsa ,0 ,any ,NORM+MUL+ADD , 2 |
| 80 | glm-dsa ,0 ,any ,RMS_NORM+MUL , 9 |
| 81 | glm4 ,0 ,any ,RMS_NORM+MUL , 5 |
| 82 | glm4 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 83 | glm4moe ,1 ,any ,ADD+ADD , 1 |
| 84 | glm4moe ,1 ,any ,MUL+ADD , 2 |
| 85 | glm4moe ,1 ,any ,RMS_NORM+MUL , 9 |
| 86 | gpt-oss ,0 ,any ,MUL+ADD , 4 |
| 87 | gpt-oss ,0 ,any ,RMS_NORM+MUL , 5 |
| 88 | gpt2 ,0 ,any ,NORM+MUL+ADD , 5 |
| 89 | gptneox ,0 ,any ,NORM+MUL+ADD , 5 |
| 90 | granite ,0 ,any ,RMS_NORM+MUL , 5 |
| 91 | granite ,0 ,any ,MUL+ADD , 4 |
| 92 | granite ,0 ,any ,RMS_NORM+MUL , 5 |
| 93 | granite ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 94 | granite_swa ,0 ,any ,RMS_NORM+MUL , 5 |
| 95 | granitehybrid ,0 ,any ,RMS_NORM+MUL , 6 |
| 96 | granitemoe ,1 ,any ,RMS_NORM+MUL , 5 |
| 97 | granitemoe ,1 ,any ,MUL+ADD , 4 |
| 98 | granitemoe ,1 ,any ,RMS_NORM+MUL , 5 |
| 99 | granitemoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 100 | grok ,0 ,any ,MUL+ADD , 4 |
| 101 | grok ,0 ,any ,RMS_NORM+MUL , 5 |
| 102 | grok ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 103 | grok ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 104 | grovemoe ,1 ,any ,ADD+ADD , 2 |
| 105 | grovemoe ,1 ,any ,MUL+ADD , 8 |
| 106 | grovemoe ,1 ,any ,RMS_NORM+MUL , 9 |
| 107 | hunyuan-dense ,0 ,any ,RMS_NORM+MUL , 9 |
| 108 | hunyuan-moe ,1 ,any ,ADD+ADD , 2 |
| 109 | hunyuan-moe ,1 ,any ,MUL+ADD , 4 |
| 110 | hunyuan-moe ,1 ,any ,RMS_NORM+MUL , 9 |
| 111 | hunyuan-moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 112 | hunyuan_vl ,0 ,any ,RMS_NORM+MUL , 9 |
| 113 | hy_v3 ,0 ,any ,ADD+ADD , 2 |
| 114 | hy_v3 ,0 ,any ,MUL+ADD , 4 |
| 115 | hy_v3 ,0 ,any ,RMS_NORM+MUL , 9 |
| 116 | hy_v4 ,0 ,any ,MUL+ADD , 2 |
| 117 | hy_v4 ,0 ,any ,NORM+MUL+ADD , 1 |
| 118 | hy_v4 ,0 ,any ,RMS_NORM+MUL , 9 |
| 119 | internlm2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 120 | jais ,0 ,any ,NORM+MUL+ADD , 5 |
| 121 | jais2 ,0 ,any ,NORM+MUL+ADD , 5 |
| 122 | jamba ,0 ,any ,RMS_NORM+MUL , 8 |
| 123 | kimi-k3 ,0 ,any ,GATED_DELTA_NET+CPY , 1 |
| 124 | kimi-k3 ,0 ,any ,MUL+ADD , 2 |
| 125 | kimi-k3 ,0 ,any ,RMS_NORM+MUL , 17 |
| 126 | kimi-k3 ,0 ,any ,RMS_NORM+SCALE , 2 |
| 127 | kimi-linear ,0 ,any ,ADD+ADD , 1 |
| 128 | kimi-linear ,0 ,any ,GATED_DELTA_NET+CPY , 1 |
| 129 | kimi-linear ,0 ,any ,MUL+ADD , 2 |
| 130 | kimi-linear ,0 ,any ,RMS_NORM+MUL , 7 |
| 131 | kimi-linear ,0 ,any ,RMS_NORM+SCALE , 2 |
| 132 | laguna ,0 ,any ,ADD+ADD , 1 |
| 133 | laguna ,0 ,any ,MUL+ADD , 2 |
| 134 | laguna ,0 ,any ,RMS_NORM+MUL , 9 |
| 135 | lfm2 ,0 ,any ,RMS_NORM+MUL , 7 |
| 136 | lfm2moe ,1 ,any ,MUL+ADD , 2 |
| 137 | lfm2moe ,1 ,any ,RMS_NORM+MUL , 7 |
| 138 | llada ,0 ,any ,RMS_NORM+MUL , 5 |
| 139 | llada-moe ,1 ,any ,MUL+ADD , 4 |
| 140 | llada-moe ,1 ,any ,RMS_NORM+MUL , 9 |
| 141 | llada-moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2 |
| 142 | llama ,0 ,any ,RMS_NORM+MUL , 5 |
| 143 | llama ,0 ,any ,MUL+ADD , 4 |
| 144 | llama ,0 ,any ,RMS_NORM+MUL , 5 |
| 145 | llama ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 146 | llama4 ,0 ,any ,ADD+ADD , 2 |
| 147 | llama4 ,0 ,any ,RMS_NORM+MUL , 9 |
| 148 | maincoder ,0 ,any ,RMS_NORM+MUL , 9 |
| 149 | mamba ,0 ,any ,RMS_NORM+MUL , 3 |
| 150 | mamba2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 151 | maple ,0 ,any ,MUL+ADD , 4 |
| 152 | maple ,0 ,any ,RMS_NORM+MUL , 9 |
| 153 | maple ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 154 | mellum ,0 ,any ,MUL+ADD , 4 |
| 155 | mellum ,0 ,any ,RMS_NORM+MUL , 9 |
| 156 | mellum ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 157 | mimo2 ,0 ,any ,MUL+ADD , 4 |
| 158 | mimo2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 159 | minicpm ,0 ,any ,RMS_NORM+MUL , 5 |
| 160 | minicpm ,0 ,any ,MUL+ADD , 4 |
| 161 | minicpm ,0 ,any ,RMS_NORM+MUL , 5 |
| 162 | minicpm ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 163 | minicpm3 ,0 ,any ,RMS_NORM+MUL , 9 |
| 164 | minimax-01 ,0 ,any ,MUL+ADD , 4 |
| 165 | minimax-01 ,0 ,any ,RMS_NORM+MUL , 6 |
| 166 | minimax-01 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 167 | minimax-m2 ,0 ,any ,MUL+ADD , 4 |
| 168 | minimax-m2 ,0 ,any ,RMS_NORM+MUL , 9 |
| 169 | minimax-m3 ,0 ,any ,ADD+ADD , 1 |
| 170 | minimax-m3 ,0 ,any ,MUL+ADD , 2 |
| 171 | minimax-m3 ,0 ,any ,RMS_NORM+MUL , 11 |
| 172 | mistral3 ,0 ,any ,RMS_NORM+MUL , 5 |
| 173 | mistral3 ,0 ,any ,MUL+ADD , 4 |
| 174 | mistral3 ,0 ,any ,RMS_NORM+MUL , 5 |
| 175 | mistral3 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 176 | mistral4 ,0 ,any ,ADD+ADD , 1 |
| 177 | mistral4 ,0 ,any ,MUL+ADD , 2 |
| 178 | mistral4 ,0 ,any ,RMS_NORM+MUL , 9 |
| 179 | mpt ,0 ,any ,NORM+MUL+ADD , 5 |
| 180 | muse-glimmer ,0 ,any ,RMS_NORM+MUL , 10 |
| 181 | muse-glimmer ,0 ,any ,RMS_NORM+MUL+ADD , 3 |
| 182 | nanbeige ,0 ,any ,RMS_NORM+MUL , 5 |
| 183 | nemotron ,0 ,any ,NORM+MUL+ADD , 5 |
| 184 | nemotron_h ,0 ,any ,RMS_NORM+MUL , 5 |
| 185 | nemotron_h_moe ,1 ,any ,RMS_NORM+MUL , 5 |
| 186 | olmo2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 187 | olmo2 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 188 | olmoe ,1 ,any ,MUL+ADD , 4 |
| 189 | olmoe ,1 ,any ,RMS_NORM+MUL , 9 |
| 190 | olmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2 |
| 191 | openelm ,0 ,any ,RMS_NORM+MUL , 9 |
| 192 | orion ,0 ,any ,NORM+MUL+ADD , 5 |
| 193 | paddleocr ,0 ,any ,RMS_NORM+MUL , 5 |
| 194 | pangu-embedded ,0 ,any ,RMS_NORM+MUL , 5 |
| 195 | phi2 ,0 ,any ,ADD+ADD , 2 |
| 196 | phi2 ,0 ,any ,NORM+MUL+ADD , 3 |
| 197 | phi3 ,0 ,any ,RMS_NORM+MUL , 5 |
| 198 | phimoe ,1 ,any ,MUL+ADD , 4 |
| 199 | phimoe ,1 ,any ,RMS_NORM+MUL+ADD , 5 |
| 200 | phimoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 201 | plamo ,0 ,any ,ADD+ADD , 2 |
| 202 | plamo ,0 ,any ,RMS_NORM+MUL , 3 |
| 203 | plamo2 ,0 ,any ,RMS_NORM+MUL , 10 |
| 204 | plamo2 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 205 | plamo2 ,0 ,any ,SSM_CONV+UNARY , 1 |
| 206 | plamo3 ,0 ,any ,RMS_NORM+MUL , 9 |
| 207 | plamo3 ,0 ,any ,RMS_NORM+MUL+ADD , 4 |
| 208 | pockettts ,0 ,any ,NORM+MUL+ADD , 5 |
| 209 | qwen ,0 ,any ,RMS_NORM+MUL , 5 |
| 210 | qwen2 ,0 ,any ,RMS_NORM+MUL , 5 |
| 211 | qwen2moe ,1 ,any ,ADD+ADD , 2 |
| 212 | qwen2moe ,1 ,any ,MUL+ADD , 4 |
| 213 | qwen2moe ,1 ,any ,RMS_NORM+MUL , 5 |
| 214 | qwen2moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2 |
| 215 | qwen2vl ,0 ,any ,RMS_NORM+MUL , 5 |
| 216 | qwen3 ,0 ,any ,RMS_NORM+MUL , 9 |
| 217 | qwen35 ,0 ,any ,GATED_DELTA_NET+CPY , 1 |
| 218 | qwen35 ,0 ,any ,RMS_NORM+MUL , 8 |
| 219 | qwen35 ,0 ,any ,RMS_NORM+SCALE , 2 |
| 220 | qwen35 ,0 ,any ,SSM_CONV+UNARY , 1 |
| 221 | qwen35moe ,1 ,any ,ADD+ADD , 2 |
| 222 | qwen35moe ,1 ,any ,GATED_DELTA_NET+CPY , 1 |
| 223 | qwen35moe ,1 ,any ,MUL+ADD , 4 |
| 224 | qwen35moe ,1 ,any ,RMS_NORM+MUL , 8 |
| 225 | qwen35moe ,1 ,any ,RMS_NORM+SCALE , 2 |
| 226 | qwen35moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 227 | qwen35moe ,1 ,any ,SSM_CONV+UNARY , 1 |
| 228 | qwen3moe ,1 ,any ,MUL+ADD , 4 |
| 229 | qwen3moe ,1 ,any ,RMS_NORM+MUL , 9 |
| 230 | qwen3moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 231 | qwen3next ,0 ,any ,ADD+ADD , 2 |
| 232 | qwen3next ,0 ,any ,GATED_DELTA_NET+CPY , 1 |
| 233 | qwen3next ,0 ,any ,MUL+ADD , 4 |
| 234 | qwen3next ,0 ,any ,RMS_NORM+MUL , 8 |
| 235 | qwen3next ,0 ,any ,RMS_NORM+SCALE , 2 |
| 236 | qwen3next ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 237 | qwen3next ,0 ,any ,SSM_CONV+UNARY , 1 |
| 238 | qwen3tts ,0 ,any ,RMS_NORM+MUL , 9 |
| 239 | qwen3vl ,0 ,any ,RMS_NORM+MUL , 9 |
| 240 | qwen3vlmoe ,1 ,any ,MUL+ADD , 4 |
| 241 | qwen3vlmoe ,1 ,any ,RMS_NORM+MUL , 9 |
| 242 | qwen3vlmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 243 | qwen4exp ,0 ,any ,ADD+ADD+ADD , 1 |
| 244 | qwen4exp ,0 ,any ,ADD+ADD+ADD+ADD+ADD+ADD+ADD , 9 |
| 245 | qwen4exp ,0 ,any ,GATED_DELTA_NET+CPY , 1 |
| 246 | qwen4exp ,0 ,any ,MUL+ADD , 4 |
| 247 | qwen4exp ,0 ,any ,RMS_NORM+MUL , 13 |
| 248 | qwen4exp ,0 ,any ,RMS_NORM+SCALE , 2 |
| 249 | qwen4exp ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 250 | qwen4exp ,0 ,any ,SSM_CONV+UNARY , 1 |
| 251 | refact ,0 ,any ,RMS_NORM+MUL , 5 |
| 252 | refact ,0 ,any ,RMS_NORM+MUL , 5 |
| 253 | rnd1 ,0 ,any ,MUL+ADD , 4 |
| 254 | rnd1 ,0 ,any ,RMS_NORM+MUL , 9 |
| 255 | rnd1 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2 |
| 256 | seed_oss ,0 ,any ,RMS_NORM+MUL , 5 |
| 257 | smallthinker ,0 ,any ,MUL+ADD , 4 |
| 258 | smallthinker ,0 ,any ,RMS_NORM+MUL , 5 |
| 259 | smollm3 ,0 ,any ,RMS_NORM+MUL , 5 |
| 260 | spark2_5 ,0 ,any ,RMS_NORM+MUL , 5 |
| 261 | stablelm ,0 ,any ,NORM+MUL , 4 |
| 262 | stablelm ,0 ,any ,NORM+MUL+ADD , 5 |
| 263 | starcoder ,0 ,any ,NORM+MUL+ADD , 5 |
| 264 | starcoder2 ,0 ,any ,NORM+MUL+ADD , 5 |
| 265 | talkie ,0 ,any ,ADD+ADD , 2 |
| 266 | xverse ,0 ,any ,RMS_NORM+MUL , 5 |