Skip to content

Commit c02fbab

Browse files
committed
cont : more ops
ggml-ci
1 parent cadf515 commit c02fbab

File tree

5 files changed

+1611
-1968
lines changed

5 files changed

+1611
-1968
lines changed

ggml/src/ggml-metal/ggml-metal-context.h

Lines changed: 14 additions & 304 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@ typedef struct ggml_metal_pipeline * ggml_metal_pipeline_t;
2727
ggml_metal_pipeline_t ggml_metal_pipeline_init(void);
2828
void ggml_metal_pipeline_free(ggml_metal_pipeline_t pipeline);
2929

30+
void ggml_metal_pipeline_set_nsg(ggml_metal_pipeline_t pipeline, int nsg);
31+
int ggml_metal_pipeline_get_nsg(ggml_metal_pipeline_t pipeline);
32+
33+
void ggml_metal_pipeline_set_nr0(ggml_metal_pipeline_t pipeline, int nr0);
34+
int ggml_metal_pipeline_get_nr0(ggml_metal_pipeline_t pipeline);
35+
36+
void ggml_metal_pipeline_set_nr1(ggml_metal_pipeline_t pipeline, int nr1);
37+
int ggml_metal_pipeline_get_nr1(ggml_metal_pipeline_t pipeline);
38+
39+
void ggml_metal_pipeline_set_smem(ggml_metal_pipeline_t pipeline, size_t smem);
40+
size_t ggml_metal_pipeline_get_smem(ggml_metal_pipeline_t pipeline);
41+
3042
int ggml_metal_pipeline_max_theads_per_threadgroup(ggml_metal_pipeline_t pipeline);
3143

3244
// TODO: tmp
@@ -113,6 +125,8 @@ typedef struct ggml_metal_graph_encoder * ggml_metal_graph_encoder_t;
113125
struct ggml_metal_graph_encoder {
114126
ggml_metal_t ctx;
115127

128+
const struct ggml_metal_device_props * props_dev;
129+
116130
ggml_metal_encoder_t encoder;
117131

118132
ggml_mem_ranges_t mem_ranges;
@@ -131,310 +145,6 @@ bool ggml_metal_graph_encoder_concurrency_reset(ggml_metal_graph_encoder_t ctx);
131145
bool ggml_metal_graph_encoder_concurrency_check(ggml_metal_graph_encoder_t ctx, const struct ggml_tensor * node);
132146
bool ggml_metal_graph_encoder_concurrency_add (ggml_metal_graph_encoder_t ctx, const struct ggml_tensor * node);
133147

134-
// TODO: tmp
135-
enum ggml_metal_pipeline_type {
136-
GGML_METAL_PIPELINE_TYPE_ADD_ID,
137-
GGML_METAL_PIPELINE_TYPE_REPEAT_F32,
138-
GGML_METAL_PIPELINE_TYPE_REPEAT_F16,
139-
GGML_METAL_PIPELINE_TYPE_REPEAT_I32,
140-
GGML_METAL_PIPELINE_TYPE_REPEAT_I16,
141-
GGML_METAL_PIPELINE_TYPE_SCALE,
142-
GGML_METAL_PIPELINE_TYPE_SCALE_4,
143-
GGML_METAL_PIPELINE_TYPE_CLAMP,
144-
GGML_METAL_PIPELINE_TYPE_TANH,
145-
GGML_METAL_PIPELINE_TYPE_RELU,
146-
GGML_METAL_PIPELINE_TYPE_SIGMOID,
147-
GGML_METAL_PIPELINE_TYPE_GELU,
148-
GGML_METAL_PIPELINE_TYPE_GELU_4,
149-
GGML_METAL_PIPELINE_TYPE_GELU_ERF,
150-
GGML_METAL_PIPELINE_TYPE_GELU_ERF_4,
151-
GGML_METAL_PIPELINE_TYPE_GELU_QUICK,
152-
GGML_METAL_PIPELINE_TYPE_GELU_QUICK_4,
153-
GGML_METAL_PIPELINE_TYPE_SILU,
154-
GGML_METAL_PIPELINE_TYPE_SILU_4,
155-
GGML_METAL_PIPELINE_TYPE_ELU,
156-
GGML_METAL_PIPELINE_TYPE_ABS,
157-
GGML_METAL_PIPELINE_TYPE_SGN,
158-
GGML_METAL_PIPELINE_TYPE_STEP,
159-
GGML_METAL_PIPELINE_TYPE_HARDSWISH,
160-
GGML_METAL_PIPELINE_TYPE_HARDSIGMOID,
161-
GGML_METAL_PIPELINE_TYPE_EXP,
162-
GGML_METAL_PIPELINE_TYPE_SOFT_MAX_F16,
163-
GGML_METAL_PIPELINE_TYPE_SOFT_MAX_F16_4,
164-
GGML_METAL_PIPELINE_TYPE_SOFT_MAX_F32,
165-
GGML_METAL_PIPELINE_TYPE_SOFT_MAX_F32_4,
166-
GGML_METAL_PIPELINE_TYPE_DIAG_MASK_INF,
167-
GGML_METAL_PIPELINE_TYPE_DIAG_MASK_INF_8,
168-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_F32,
169-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_F16,
170-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_BF16,
171-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q4_0,
172-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q4_1,
173-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q5_0,
174-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q5_1,
175-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q8_0,
176-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_MXFP4,
177-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q2_K,
178-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q3_K,
179-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q4_K,
180-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q5_K,
181-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_Q6_K,
182-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ2_XXS,
183-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ2_XS,
184-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ3_XXS,
185-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ3_S,
186-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ2_S,
187-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ1_S,
188-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ1_M,
189-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ4_NL,
190-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_IQ4_XS,
191-
GGML_METAL_PIPELINE_TYPE_GET_ROWS_I32,
192-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_F32,
193-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_F16,
194-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_BF16,
195-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_Q8_0,
196-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_Q4_0,
197-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_Q4_1,
198-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_Q5_0,
199-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_Q5_1,
200-
GGML_METAL_PIPELINE_TYPE_SET_ROWS_IQ4_NL,
201-
GGML_METAL_PIPELINE_TYPE_L2_NORM,
202-
GGML_METAL_PIPELINE_TYPE_GROUP_NORM,
203-
GGML_METAL_PIPELINE_TYPE_NORM,
204-
GGML_METAL_PIPELINE_TYPE_SSM_CONV_F32,
205-
GGML_METAL_PIPELINE_TYPE_SSM_SCAN_F32,
206-
GGML_METAL_PIPELINE_TYPE_SSM_SCAN_F32_GROUP,
207-
GGML_METAL_PIPELINE_TYPE_RWKV_WKV6_F32,
208-
GGML_METAL_PIPELINE_TYPE_RWKV_WKV7_F32,
209-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F32_F32,
210-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F32_F32_C4,
211-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F16_F32,
212-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F16_F32_C4,
213-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F16_F32_1ROW,
214-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F16_F32_L4,
215-
GGML_METAL_PIPELINE_TYPE_MUL_MV_F16_F16,
216-
GGML_METAL_PIPELINE_TYPE_MUL_MV_BF16_F32,
217-
GGML_METAL_PIPELINE_TYPE_MUL_MV_BF16_F32_C4,
218-
GGML_METAL_PIPELINE_TYPE_MUL_MV_BF16_F32_1ROW,
219-
GGML_METAL_PIPELINE_TYPE_MUL_MV_BF16_F32_L4,
220-
GGML_METAL_PIPELINE_TYPE_MUL_MV_BF16_BF16,
221-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q4_0_F32,
222-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q4_1_F32,
223-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q5_0_F32,
224-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q5_1_F32,
225-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q8_0_F32,
226-
GGML_METAL_PIPELINE_TYPE_MUL_MV_MXFP4_F32,
227-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F32_F32_R1_2,
228-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F32_F32_R1_3,
229-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F32_F32_R1_4,
230-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F32_F32_R1_5,
231-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F16_F32_R1_2,
232-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F16_F32_R1_3,
233-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F16_F32_R1_4,
234-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_F16_F32_R1_5,
235-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_0_F32_R1_2,
236-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_0_F32_R1_3,
237-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_0_F32_R1_4,
238-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_0_F32_R1_5,
239-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_1_F32_R1_2,
240-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_1_F32_R1_3,
241-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_1_F32_R1_4,
242-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_1_F32_R1_5,
243-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_0_F32_R1_2,
244-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_0_F32_R1_3,
245-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_0_F32_R1_4,
246-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_0_F32_R1_5,
247-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_1_F32_R1_2,
248-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_1_F32_R1_3,
249-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_1_F32_R1_4,
250-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_1_F32_R1_5,
251-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q8_0_F32_R1_2,
252-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q8_0_F32_R1_3,
253-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q8_0_F32_R1_4,
254-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q8_0_F32_R1_5,
255-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_MXFP4_F32_R1_2,
256-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_MXFP4_F32_R1_3,
257-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_MXFP4_F32_R1_4,
258-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_MXFP4_F32_R1_5,
259-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_K_F32_R1_2,
260-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_K_F32_R1_3,
261-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_K_F32_R1_4,
262-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q4_K_F32_R1_5,
263-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_K_F32_R1_2,
264-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_K_F32_R1_3,
265-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_K_F32_R1_4,
266-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q5_K_F32_R1_5,
267-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q6_K_F32_R1_2,
268-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q6_K_F32_R1_3,
269-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q6_K_F32_R1_4,
270-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_Q6_K_F32_R1_5,
271-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_2,
272-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_3,
273-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_4,
274-
GGML_METAL_PIPELINE_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_5,
275-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q2_K_F32,
276-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q3_K_F32,
277-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q4_K_F32,
278-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q5_K_F32,
279-
GGML_METAL_PIPELINE_TYPE_MUL_MV_Q6_K_F32,
280-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ2_XXS_F32,
281-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ2_XS_F32,
282-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ3_XXS_F32,
283-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ3_S_F32,
284-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ2_S_F32,
285-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ1_S_F32,
286-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ1_M_F32,
287-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ4_NL_F32,
288-
GGML_METAL_PIPELINE_TYPE_MUL_MV_IQ4_XS_F32,
289-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_F32_F32,
290-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_F16_F32,
291-
//GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_F16_F32_1ROW,
292-
//GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_F16_F32_L4,
293-
//GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_F16_F16,
294-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_BF16_F32,
295-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q4_0_F32,
296-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q4_1_F32,
297-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q5_0_F32,
298-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q5_1_F32,
299-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q8_0_F32,
300-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_MXFP4_F32,
301-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q2_K_F32,
302-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q3_K_F32,
303-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q4_K_F32,
304-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q5_K_F32,
305-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_Q6_K_F32,
306-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ2_XXS_F32,
307-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ2_XS_F32,
308-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ3_XXS_F32,
309-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ3_S_F32,
310-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ2_S_F32,
311-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ1_S_F32,
312-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ1_M_F32,
313-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ4_NL_F32,
314-
GGML_METAL_PIPELINE_TYPE_MUL_MV_ID_IQ4_XS_F32,
315-
GGML_METAL_PIPELINE_TYPE_MUL_MM_F32_F32,
316-
GGML_METAL_PIPELINE_TYPE_MUL_MM_F16_F32,
317-
GGML_METAL_PIPELINE_TYPE_MUL_MM_BF16_F32,
318-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q4_0_F32,
319-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q4_1_F32,
320-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q5_0_F32,
321-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q5_1_F32,
322-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q8_0_F32,
323-
GGML_METAL_PIPELINE_TYPE_MUL_MM_MXFP4_F32,
324-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q2_K_F32,
325-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q3_K_F32,
326-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q4_K_F32,
327-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q5_K_F32,
328-
GGML_METAL_PIPELINE_TYPE_MUL_MM_Q6_K_F32,
329-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ2_XXS_F32,
330-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ2_XS_F32,
331-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ3_XXS_F32,
332-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ3_S_F32,
333-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ2_S_F32,
334-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ1_S_F32,
335-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ1_M_F32,
336-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ4_NL_F32,
337-
GGML_METAL_PIPELINE_TYPE_MUL_MM_IQ4_XS_F32,
338-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_1,
339-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_2,
340-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_4,
341-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_6,
342-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_8,
343-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_10,
344-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MAP0_F16_NE20_16,
345-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_F32_F16,
346-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_F16_F16,
347-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_BF16_F16,
348-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q4_0_F16,
349-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q4_1_F16,
350-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q5_0_F16,
351-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q5_1_F16,
352-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q8_0_F16,
353-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_MXFP4_F16,
354-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q2_K_F16,
355-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q3_K_F16,
356-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q4_K_F16,
357-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q5_K_F16,
358-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_Q6_K_F16,
359-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ2_XXS_F16,
360-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ2_XS_F16,
361-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ3_XXS_F16,
362-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ3_S_F16,
363-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ2_S_F16,
364-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ1_S_F16,
365-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ1_M_F16,
366-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ4_NL_F16,
367-
GGML_METAL_PIPELINE_TYPE_MUL_MM_ID_IQ4_XS_F16,
368-
GGML_METAL_PIPELINE_TYPE_ROPE_NORM_F32,
369-
GGML_METAL_PIPELINE_TYPE_ROPE_NORM_F16,
370-
GGML_METAL_PIPELINE_TYPE_ROPE_MULTI_F32,
371-
GGML_METAL_PIPELINE_TYPE_ROPE_MULTI_F16,
372-
GGML_METAL_PIPELINE_TYPE_ROPE_VISION_F32,
373-
GGML_METAL_PIPELINE_TYPE_ROPE_VISION_F16,
374-
GGML_METAL_PIPELINE_TYPE_ROPE_NEOX_F32,
375-
GGML_METAL_PIPELINE_TYPE_ROPE_NEOX_F16,
376-
GGML_METAL_PIPELINE_TYPE_IM2COL_F16,
377-
GGML_METAL_PIPELINE_TYPE_IM2COL_F32,
378-
GGML_METAL_PIPELINE_TYPE_IM2COL_EXT_F16,
379-
GGML_METAL_PIPELINE_TYPE_IM2COL_EXT_F32,
380-
GGML_METAL_PIPELINE_TYPE_CONV_TRANSPOSE_1D_F32_F32,
381-
GGML_METAL_PIPELINE_TYPE_CONV_TRANSPOSE_1D_F16_F32,
382-
GGML_METAL_PIPELINE_TYPE_UPSCALE_F32,
383-
GGML_METAL_PIPELINE_TYPE_PAD_F32,
384-
GGML_METAL_PIPELINE_TYPE_PAD_REFLECT_1D_F32,
385-
GGML_METAL_PIPELINE_TYPE_ARANGE_F32,
386-
GGML_METAL_PIPELINE_TYPE_TIMESTEP_EMBEDDING_F32,
387-
GGML_METAL_PIPELINE_TYPE_ARGSORT_F32_I32_ASC,
388-
GGML_METAL_PIPELINE_TYPE_ARGSORT_F32_I32_DESC,
389-
GGML_METAL_PIPELINE_TYPE_LEAKY_RELU_F32,
390-
GGML_METAL_PIPELINE_TYPE_CPY_F32_F32,
391-
GGML_METAL_PIPELINE_TYPE_CPY_F32_F16,
392-
GGML_METAL_PIPELINE_TYPE_CPY_F32_BF16,
393-
GGML_METAL_PIPELINE_TYPE_CPY_F16_F16,
394-
GGML_METAL_PIPELINE_TYPE_CPY_F16_F32,
395-
GGML_METAL_PIPELINE_TYPE_CPY_BF16_F32,
396-
GGML_METAL_PIPELINE_TYPE_CPY_BF16_BF16,
397-
GGML_METAL_PIPELINE_TYPE_CPY_F32_I32,
398-
GGML_METAL_PIPELINE_TYPE_CPY_I32_F32,
399-
GGML_METAL_PIPELINE_TYPE_CPY_F32_Q8_0,
400-
GGML_METAL_PIPELINE_TYPE_CPY_F32_Q4_0,
401-
GGML_METAL_PIPELINE_TYPE_CPY_F32_Q4_1,
402-
GGML_METAL_PIPELINE_TYPE_CPY_F32_Q5_0,
403-
GGML_METAL_PIPELINE_TYPE_CPY_F32_Q5_1,
404-
GGML_METAL_PIPELINE_TYPE_CPY_F32_IQ4_NL,
405-
GGML_METAL_PIPELINE_TYPE_CPY_Q4_0_F32,
406-
GGML_METAL_PIPELINE_TYPE_CPY_Q4_0_F16,
407-
GGML_METAL_PIPELINE_TYPE_CPY_Q4_1_F32,
408-
GGML_METAL_PIPELINE_TYPE_CPY_Q4_1_F16,
409-
GGML_METAL_PIPELINE_TYPE_CPY_Q5_0_F32,
410-
GGML_METAL_PIPELINE_TYPE_CPY_Q5_0_F16,
411-
GGML_METAL_PIPELINE_TYPE_CPY_Q5_1_F32,
412-
GGML_METAL_PIPELINE_TYPE_CPY_Q5_1_F16,
413-
GGML_METAL_PIPELINE_TYPE_CPY_Q8_0_F32,
414-
GGML_METAL_PIPELINE_TYPE_CPY_Q8_0_F16,
415-
GGML_METAL_PIPELINE_TYPE_CONCAT,
416-
GGML_METAL_PIPELINE_TYPE_SQR,
417-
GGML_METAL_PIPELINE_TYPE_SQRT,
418-
GGML_METAL_PIPELINE_TYPE_SIN,
419-
GGML_METAL_PIPELINE_TYPE_COS,
420-
GGML_METAL_PIPELINE_TYPE_NEG,
421-
GGML_METAL_PIPELINE_TYPE_REGLU,
422-
GGML_METAL_PIPELINE_TYPE_GEGLU,
423-
GGML_METAL_PIPELINE_TYPE_SWIGLU,
424-
GGML_METAL_PIPELINE_TYPE_SWIGLU_OAI,
425-
GGML_METAL_PIPELINE_TYPE_GEGLU_ERF,
426-
GGML_METAL_PIPELINE_TYPE_GEGLU_QUICK,
427-
GGML_METAL_PIPELINE_TYPE_SUM_ROWS,
428-
GGML_METAL_PIPELINE_TYPE_MEAN,
429-
GGML_METAL_PIPELINE_TYPE_POOL_2D_AVG_F32,
430-
GGML_METAL_PIPELINE_TYPE_POOL_2D_MAX_F32,
431-
GGML_METAL_PIPELINE_TYPE_ARGMAX,
432-
433-
GGML_METAL_PIPELINE_TYPE_COUNT
434-
};
435-
436-
ggml_metal_pipeline_t ggml_metal_get_pipeline_by_type(ggml_metal_t ctx, enum ggml_metal_pipeline_type type);
437-
438148
#ifdef __cplusplus
439149
}
440150
#endif

0 commit comments

Comments
 (0)