Files
Georgi Gerganov 5b59b83f4e metal : add MoE and SSM_CONV fusion optimizations (#28948)
* 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
2026-09-19 13:14:44 +03:00

19 KiB

1# test-fusion baseline for device MTL
2# arch ,moe ,mode ,label , count
3afmoe ,1 ,any ,MUL+ADD , 2
4afmoe ,1 ,any ,RMS_NORM+MUL , 10
5afmoe ,1 ,any ,RMS_NORM+MUL+ADD , 3
6arcee ,0 ,any ,RMS_NORM+MUL , 5
7arctic ,0 ,any ,MUL+ADD , 4
8arctic ,0 ,any ,RMS_NORM+MUL , 7
9arctic ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
10baichuan ,0 ,any ,RMS_NORM+MUL , 5
11bailingmoe ,1 ,any ,ADD+ADD , 2
12bailingmoe ,1 ,any ,MUL+ADD , 4
13bailingmoe ,1 ,any ,RMS_NORM+MUL , 5
14bailingmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2
15bailingmoe2 ,1 ,any ,ADD+ADD , 1
16bailingmoe2 ,1 ,any ,MUL+ADD , 2
17bailingmoe2 ,1 ,any ,RMS_NORM+MUL , 9
18bailingmoe3 ,1 ,any ,ADD+ADD , 1
19bailingmoe3 ,1 ,any ,GATED_DELTA_NET+CPY , 1
20bailingmoe3 ,1 ,any ,MUL+ADD , 2
21bailingmoe3 ,1 ,any ,RMS_NORM+MUL , 8
22bailingmoe3 ,1 ,any ,RMS_NORM+SCALE , 2
23bloom ,0 ,any ,NORM+MUL+ADD , 6
24chatglm ,0 ,any ,RMS_NORM+MUL , 5
25codeshell ,0 ,any ,NORM+MUL+ADD , 5
26cogvlm ,0 ,any ,RMS_NORM+MUL , 5
27cohere2 ,0 ,any ,ADD+ADD , 2
28cohere2 ,0 ,any ,NORM+MUL , 3
29cohere2moe ,1 ,any ,ADD+ADD , 2
30cohere2moe ,1 ,any ,MUL+ADD , 2
31cohere2moe ,1 ,any ,RMS_NORM+MUL , 3
32command-r ,0 ,any ,NORM+MUL , 3
33dbrx ,0 ,any ,MUL+ADD , 4
34dbrx ,0 ,any ,NORM+MUL , 5
35dbrx ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
36deci ,0 ,any ,RMS_NORM+MUL , 5
37deepseek ,0 ,any ,ADD+ADD , 1
38deepseek ,0 ,any ,MUL+ADD , 2
39deepseek ,0 ,any ,RMS_NORM+MUL , 5
40deepseek ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 1
41deepseek2 ,0 ,any ,ADD+ADD , 1
42deepseek2 ,0 ,any ,MUL+ADD , 2
43deepseek2 ,0 ,any ,RMS_NORM+MUL , 9
44deepseek32 ,0 ,any ,ADD+ADD , 1
45deepseek32 ,0 ,any ,MUL+ADD , 2
46deepseek32 ,0 ,any ,NORM+MUL+ADD , 2
47deepseek32 ,0 ,any ,RMS_NORM+MUL , 9
48deepseek4 ,0 ,any ,MUL+ADD , 8
49deepseek4 ,0 ,any ,RMS_NORM+MUL , 20
50dots1 ,0 ,any ,ADD+ADD , 1
51dots1 ,0 ,any ,MUL+ADD , 2
52dots1 ,0 ,any ,RMS_NORM+MUL , 9
53dots3note ,0 ,any ,ADD+ADD , 1
54dots3note ,0 ,any ,MUL+ADD , 2
55dots3note ,0 ,any ,NORM+MUL+ADD , 1
56dots3note ,0 ,any ,RMS_NORM+MUL , 11
57dream ,0 ,any ,RMS_NORM+MUL , 5
58ernie4_5-moe ,1 ,any ,ADD+ADD , 1
59ernie4_5-moe ,1 ,any ,MUL+ADD , 2
60ernie4_5-moe ,1 ,any ,RMS_NORM+MUL , 5
61ernie4_5 ,0 ,any ,RMS_NORM+MUL , 5
62exaone ,0 ,any ,RMS_NORM+MUL , 5
63exaone-moe ,1 ,any ,ADD+ADD , 1
64exaone-moe ,1 ,any ,MUL+ADD , 2
65exaone-moe ,1 ,any ,RMS_NORM+MUL , 9
66exaone4 ,0 ,any ,RMS_NORM+MUL , 5
67exaone4 ,0 ,any ,RMS_NORM+MUL+ADD , 4
68falcon ,0 ,any ,ADD+ADD , 2
69falcon ,0 ,any ,NORM+MUL+ADD , 5
70falcon-h1 ,0 ,any ,ADD+ADD , 2
71falcon-h1 ,0 ,any ,RMS_NORM+MUL , 9
72gemma ,0 ,any ,RMS_NORM+MUL , 5
73gemma2 ,0 ,any ,RMS_NORM+MUL , 5
74gemma2 ,0 ,any ,RMS_NORM+MUL+ADD , 4
75gemma3 ,0 ,any ,RMS_NORM+MUL , 9
76gemma3 ,0 ,any ,RMS_NORM+MUL+ADD , 4
77glm-dsa ,0 ,any ,ADD+ADD , 1
78glm-dsa ,0 ,any ,MUL+ADD , 2
79glm-dsa ,0 ,any ,NORM+MUL+ADD , 2
80glm-dsa ,0 ,any ,RMS_NORM+MUL , 9
81glm4 ,0 ,any ,RMS_NORM+MUL , 5
82glm4 ,0 ,any ,RMS_NORM+MUL+ADD , 4
83glm4moe ,1 ,any ,ADD+ADD , 1
84glm4moe ,1 ,any ,MUL+ADD , 2
85glm4moe ,1 ,any ,RMS_NORM+MUL , 9
86gpt-oss ,0 ,any ,MUL+ADD , 4
87gpt-oss ,0 ,any ,RMS_NORM+MUL , 5
88gpt2 ,0 ,any ,NORM+MUL+ADD , 5
89gptneox ,0 ,any ,NORM+MUL+ADD , 5
90granite ,0 ,any ,RMS_NORM+MUL , 5
91granite ,0 ,any ,MUL+ADD , 4
92granite ,0 ,any ,RMS_NORM+MUL , 5
93granite ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
94granite_swa ,0 ,any ,RMS_NORM+MUL , 5
95granitehybrid ,0 ,any ,RMS_NORM+MUL , 6
96granitemoe ,1 ,any ,RMS_NORM+MUL , 5
97granitemoe ,1 ,any ,MUL+ADD , 4
98granitemoe ,1 ,any ,RMS_NORM+MUL , 5
99granitemoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
100grok ,0 ,any ,MUL+ADD , 4
101grok ,0 ,any ,RMS_NORM+MUL , 5
102grok ,0 ,any ,RMS_NORM+MUL+ADD , 4
103grok ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
104grovemoe ,1 ,any ,ADD+ADD , 2
105grovemoe ,1 ,any ,MUL+ADD , 8
106grovemoe ,1 ,any ,RMS_NORM+MUL , 9
107hunyuan-dense ,0 ,any ,RMS_NORM+MUL , 9
108hunyuan-moe ,1 ,any ,ADD+ADD , 2
109hunyuan-moe ,1 ,any ,MUL+ADD , 4
110hunyuan-moe ,1 ,any ,RMS_NORM+MUL , 9
111hunyuan-moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
112hunyuan_vl ,0 ,any ,RMS_NORM+MUL , 9
113hy_v3 ,0 ,any ,ADD+ADD , 2
114hy_v3 ,0 ,any ,MUL+ADD , 4
115hy_v3 ,0 ,any ,RMS_NORM+MUL , 9
116hy_v4 ,0 ,any ,MUL+ADD , 2
117hy_v4 ,0 ,any ,NORM+MUL+ADD , 1
118hy_v4 ,0 ,any ,RMS_NORM+MUL , 9
119internlm2 ,0 ,any ,RMS_NORM+MUL , 5
120jais ,0 ,any ,NORM+MUL+ADD , 5
121jais2 ,0 ,any ,NORM+MUL+ADD , 5
122jamba ,0 ,any ,RMS_NORM+MUL , 8
123kimi-k3 ,0 ,any ,GATED_DELTA_NET+CPY , 1
124kimi-k3 ,0 ,any ,MUL+ADD , 2
125kimi-k3 ,0 ,any ,RMS_NORM+MUL , 17
126kimi-k3 ,0 ,any ,RMS_NORM+SCALE , 2
127kimi-linear ,0 ,any ,ADD+ADD , 1
128kimi-linear ,0 ,any ,GATED_DELTA_NET+CPY , 1
129kimi-linear ,0 ,any ,MUL+ADD , 2
130kimi-linear ,0 ,any ,RMS_NORM+MUL , 7
131kimi-linear ,0 ,any ,RMS_NORM+SCALE , 2
132laguna ,0 ,any ,ADD+ADD , 1
133laguna ,0 ,any ,MUL+ADD , 2
134laguna ,0 ,any ,RMS_NORM+MUL , 9
135lfm2 ,0 ,any ,RMS_NORM+MUL , 7
136lfm2moe ,1 ,any ,MUL+ADD , 2
137lfm2moe ,1 ,any ,RMS_NORM+MUL , 7
138llada ,0 ,any ,RMS_NORM+MUL , 5
139llada-moe ,1 ,any ,MUL+ADD , 4
140llada-moe ,1 ,any ,RMS_NORM+MUL , 9
141llada-moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2
142llama ,0 ,any ,RMS_NORM+MUL , 5
143llama ,0 ,any ,MUL+ADD , 4
144llama ,0 ,any ,RMS_NORM+MUL , 5
145llama ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
146llama4 ,0 ,any ,ADD+ADD , 2
147llama4 ,0 ,any ,RMS_NORM+MUL , 9
148maincoder ,0 ,any ,RMS_NORM+MUL , 9
149mamba ,0 ,any ,RMS_NORM+MUL , 3
150mamba2 ,0 ,any ,RMS_NORM+MUL , 5
151maple ,0 ,any ,MUL+ADD , 4
152maple ,0 ,any ,RMS_NORM+MUL , 9
153maple ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
154mellum ,0 ,any ,MUL+ADD , 4
155mellum ,0 ,any ,RMS_NORM+MUL , 9
156mellum ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
157mimo2 ,0 ,any ,MUL+ADD , 4
158mimo2 ,0 ,any ,RMS_NORM+MUL , 5
159minicpm ,0 ,any ,RMS_NORM+MUL , 5
160minicpm ,0 ,any ,MUL+ADD , 4
161minicpm ,0 ,any ,RMS_NORM+MUL , 5
162minicpm ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
163minicpm3 ,0 ,any ,RMS_NORM+MUL , 9
164minimax-01 ,0 ,any ,MUL+ADD , 4
165minimax-01 ,0 ,any ,RMS_NORM+MUL , 6
166minimax-01 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
167minimax-m2 ,0 ,any ,MUL+ADD , 4
168minimax-m2 ,0 ,any ,RMS_NORM+MUL , 9
169minimax-m3 ,0 ,any ,ADD+ADD , 1
170minimax-m3 ,0 ,any ,MUL+ADD , 2
171minimax-m3 ,0 ,any ,RMS_NORM+MUL , 11
172mistral3 ,0 ,any ,RMS_NORM+MUL , 5
173mistral3 ,0 ,any ,MUL+ADD , 4
174mistral3 ,0 ,any ,RMS_NORM+MUL , 5
175mistral3 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
176mistral4 ,0 ,any ,ADD+ADD , 1
177mistral4 ,0 ,any ,MUL+ADD , 2
178mistral4 ,0 ,any ,RMS_NORM+MUL , 9
179mpt ,0 ,any ,NORM+MUL+ADD , 5
180muse-glimmer ,0 ,any ,RMS_NORM+MUL , 10
181muse-glimmer ,0 ,any ,RMS_NORM+MUL+ADD , 3
182nanbeige ,0 ,any ,RMS_NORM+MUL , 5
183nemotron ,0 ,any ,NORM+MUL+ADD , 5
184nemotron_h ,0 ,any ,RMS_NORM+MUL , 5
185nemotron_h_moe ,1 ,any ,RMS_NORM+MUL , 5
186olmo2 ,0 ,any ,RMS_NORM+MUL , 5
187olmo2 ,0 ,any ,RMS_NORM+MUL+ADD , 4
188olmoe ,1 ,any ,MUL+ADD , 4
189olmoe ,1 ,any ,RMS_NORM+MUL , 9
190olmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2
191openelm ,0 ,any ,RMS_NORM+MUL , 9
192orion ,0 ,any ,NORM+MUL+ADD , 5
193paddleocr ,0 ,any ,RMS_NORM+MUL , 5
194pangu-embedded ,0 ,any ,RMS_NORM+MUL , 5
195phi2 ,0 ,any ,ADD+ADD , 2
196phi2 ,0 ,any ,NORM+MUL+ADD , 3
197phi3 ,0 ,any ,RMS_NORM+MUL , 5
198phimoe ,1 ,any ,MUL+ADD , 4
199phimoe ,1 ,any ,RMS_NORM+MUL+ADD , 5
200phimoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
201plamo ,0 ,any ,ADD+ADD , 2
202plamo ,0 ,any ,RMS_NORM+MUL , 3
203plamo2 ,0 ,any ,RMS_NORM+MUL , 10
204plamo2 ,0 ,any ,RMS_NORM+MUL+ADD , 4
205plamo2 ,0 ,any ,SSM_CONV+UNARY , 1
206plamo3 ,0 ,any ,RMS_NORM+MUL , 9
207plamo3 ,0 ,any ,RMS_NORM+MUL+ADD , 4
208pockettts ,0 ,any ,NORM+MUL+ADD , 5
209qwen ,0 ,any ,RMS_NORM+MUL , 5
210qwen2 ,0 ,any ,RMS_NORM+MUL , 5
211qwen2moe ,1 ,any ,ADD+ADD , 2
212qwen2moe ,1 ,any ,MUL+ADD , 4
213qwen2moe ,1 ,any ,RMS_NORM+MUL , 5
214qwen2moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS , 2
215qwen2vl ,0 ,any ,RMS_NORM+MUL , 5
216qwen3 ,0 ,any ,RMS_NORM+MUL , 9
217qwen35 ,0 ,any ,GATED_DELTA_NET+CPY , 1
218qwen35 ,0 ,any ,RMS_NORM+MUL , 8
219qwen35 ,0 ,any ,RMS_NORM+SCALE , 2
220qwen35 ,0 ,any ,SSM_CONV+UNARY , 1
221qwen35moe ,1 ,any ,ADD+ADD , 2
222qwen35moe ,1 ,any ,GATED_DELTA_NET+CPY , 1
223qwen35moe ,1 ,any ,MUL+ADD , 4
224qwen35moe ,1 ,any ,RMS_NORM+MUL , 8
225qwen35moe ,1 ,any ,RMS_NORM+SCALE , 2
226qwen35moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
227qwen35moe ,1 ,any ,SSM_CONV+UNARY , 1
228qwen3moe ,1 ,any ,MUL+ADD , 4
229qwen3moe ,1 ,any ,RMS_NORM+MUL , 9
230qwen3moe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
231qwen3next ,0 ,any ,ADD+ADD , 2
232qwen3next ,0 ,any ,GATED_DELTA_NET+CPY , 1
233qwen3next ,0 ,any ,MUL+ADD , 4
234qwen3next ,0 ,any ,RMS_NORM+MUL , 8
235qwen3next ,0 ,any ,RMS_NORM+SCALE , 2
236qwen3next ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
237qwen3next ,0 ,any ,SSM_CONV+UNARY , 1
238qwen3tts ,0 ,any ,RMS_NORM+MUL , 9
239qwen3vl ,0 ,any ,RMS_NORM+MUL , 9
240qwen3vlmoe ,1 ,any ,MUL+ADD , 4
241qwen3vlmoe ,1 ,any ,RMS_NORM+MUL , 9
242qwen3vlmoe ,1 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
243qwen4exp ,0 ,any ,ADD+ADD+ADD , 1
244qwen4exp ,0 ,any ,ADD+ADD+ADD+ADD+ADD+ADD+ADD , 9
245qwen4exp ,0 ,any ,GATED_DELTA_NET+CPY , 1
246qwen4exp ,0 ,any ,MUL+ADD , 4
247qwen4exp ,0 ,any ,RMS_NORM+MUL , 13
248qwen4exp ,0 ,any ,RMS_NORM+SCALE , 2
249qwen4exp ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
250qwen4exp ,0 ,any ,SSM_CONV+UNARY , 1
251refact ,0 ,any ,RMS_NORM+MUL , 5
252refact ,0 ,any ,RMS_NORM+MUL , 5
253rnd1 ,0 ,any ,MUL+ADD , 4
254rnd1 ,0 ,any ,RMS_NORM+MUL , 9
255rnd1 ,0 ,any ,SOFT_MAX+ARGSORT+GET_ROWS+SUM_ROWS+CLAMP+DIV, 2
256seed_oss ,0 ,any ,RMS_NORM+MUL , 5
257smallthinker ,0 ,any ,MUL+ADD , 4
258smallthinker ,0 ,any ,RMS_NORM+MUL , 5
259smollm3 ,0 ,any ,RMS_NORM+MUL , 5
260spark2_5 ,0 ,any ,RMS_NORM+MUL , 5
261stablelm ,0 ,any ,NORM+MUL , 4
262stablelm ,0 ,any ,NORM+MUL+ADD , 5
263starcoder ,0 ,any ,NORM+MUL+ADD , 5
264starcoder2 ,0 ,any ,NORM+MUL+ADD , 5
265talkie ,0 ,any ,ADD+ADD , 2
266xverse ,0 ,any ,RMS_NORM+MUL , 5