whisper.cpp/ggml/src/ggml-opencl/kernels
Hongqiang Wang a6e2630ff1 opencl: transpose the K tile in local memory for FA prefill kernels (llama/26428) 2026-08-14 22:16:06 +03:00
..
abs.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
add.cl opencl: allow mixed f16/f32 `add` (llama/15140) 2025-08-18 20:30:45 +03:00
add_id.cl opencl: add `swiglu_oai` and `add_id` (llama/15121) 2025-08-18 20:30:45 +03:00
argsort.cl
clamp.cl
concat.cl opencl: improve get_rows, cpy, concat and q6_k flat gemv (llama/24160) 2026-06-08 14:36:36 +03:00
conv2d.cl opencl: add conv2d kernel (llama/14403) 2025-07-28 13:02:32 +03:00
conv2d_f16_f32.cl opencl: add conv2d kernel (llama/14403) 2025-07-28 13:02:32 +03:00
cpy.cl opencl: improve get_rows, cpy, concat and q6_k flat gemv (llama/24160) 2026-06-08 14:36:36 +03:00
cumsum.cl opencl: add cumsum op (llama/18981) 2026-03-16 13:10:15 +02:00
cvt.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
diag.cl opencl: add neg, exp and diag (llama/20127) 2026-03-16 13:10:15 +02:00
diag_mask_inf.cl
div.cl opencl: add f16 for `add`, `sub`, `mul`, `div` (llama/14984) 2025-08-18 20:30:45 +03:00
embed_kernel.py
exp.cl opencl: add neg, exp and diag (llama/20127) 2026-03-16 13:10:15 +02:00
expm1.cl opencl: refactor expm1 and softplus (llama/19404) 2026-02-27 20:57:58 +02:00
fill.cl opencl: add FILL op support (llama/18682) 2026-01-14 09:11:59 +02:00
flash_attn_f16.cl opencl: general flash attention decode performance optimizations (llama/25366) 2026-07-10 13:06:42 +03:00
flash_attn_f32.cl opencl: general flash attention decode performance optimizations (llama/25366) 2026-07-10 13:06:42 +03:00
flash_attn_f32_f16.cl opencl: transpose the K tile in local memory for FA prefill kernels (llama/26428) 2026-08-14 22:16:06 +03:00
flash_attn_f32_q4_0.cl opencl: transpose the K tile in local memory for FA prefill kernels (llama/26428) 2026-08-14 22:16:06 +03:00
flash_attn_f32_q8_0.cl opencl: transpose the K tile in local memory for FA prefill kernels (llama/26428) 2026-08-14 22:16:06 +03:00
flash_attn_pre_f16.cl opencl: flash attention improvement (llama/25069) 2026-07-10 13:06:42 +03:00
gated_delta_net.cl Remove padding and multiple D2D copies for MTP (llama/24086) 2026-06-15 10:33:53 +03:00
gelu.cl opencl: add GELU_ERF (llama/14476) 2025-07-12 19:23:56 +03:00
gemm_moe_mxfp4_f32.cl opencl: transposed gemm/gemv moe kernel with mxfp4,f32 (llama/16602) 2025-10-22 12:58:11 +03:00
gemm_moe_mxfp4_f32_ns.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_mxfp4_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_q4_0_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q4_0_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_q4_1_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q4_k_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q4_k_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_q5_0_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q5_1_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q5_k_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q6_k_f32_ns.cl opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (llama/25433) 2026-07-10 13:06:42 +03:00
gemm_moe_q6_k_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_q8_0_f32_ns.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_moe_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_iq4_nl_f32.cl opencl: add iq4_nl support (llama/22272) 2026-04-30 11:29:19 +03:00
gemm_noshuffle_iq4_nl_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q1_0_f32.cl opencl: initial q1_0 support (llama/25160) 2026-07-10 13:06:42 +03:00
gemm_noshuffle_q4_0_f32.cl opencl: refactor Adreno q4_0 (llama/22335) 2026-05-14 21:26:48 +03:00
gemm_noshuffle_q4_0_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q4_1_f32.cl opencl: add optimized q4_1 mm kernel for adreno (llama/19840) 2026-03-16 13:10:15 +02:00
gemm_noshuffle_q4_k_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q4_k_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q5_0_f32.cl opencl: add q5_0/q5_1 gemm and gemv kernels for Adreno (llama/24319) 2026-06-15 10:33:53 +03:00
gemm_noshuffle_q5_0_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q5_1_f32.cl opencl: add q5_0/q5_1 gemm and gemv kernels for Adreno (llama/24319) 2026-06-15 10:33:53 +03:00
gemm_noshuffle_q5_k_f32.cl opencl: add q5_K gemm and gemv kernels for Adreno (llama/21595) 2026-04-30 11:29:11 +03:00
gemm_noshuffle_q5_k_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q6_k_f32.cl opencl: add q6_K gemm and gemv kernels for Adreno (llama/20089) 2026-03-29 15:04:36 +03:00
gemm_noshuffle_q6_k_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_noshuffle_q8_0_f32.cl opencl: refactor Adreno q4_0 (llama/22335) 2026-05-14 21:26:48 +03:00
gemm_noshuffle_q8_0_q8_1_dp4a.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemm_xmem_f16_f32_os8.cl opencl: add opt-in Adreno xmem F16xF32 GEMM for prefill (llama/22755) 2026-05-14 21:26:48 +03:00
gemv_moe_mxfp4_f32.cl opencl: transposed gemm/gemv moe kernel with mxfp4,f32 (llama/16602) 2025-10-22 12:58:11 +03:00
gemv_moe_mxfp4_f32_ns.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_moe_q4_0_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_moe_q4_1_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_moe_q4_k_f32_ns.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_moe_q5_0_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_moe_q5_1_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_moe_q5_k_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_moe_q6_k_f32_ns.cl opencl: generalize Adreno MoE kernels on M (llama/23449) 2026-05-25 12:26:07 +03:00
gemv_noshuffle_iq4_nl_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q1_0_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q4_0_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q4_0_f32_spec.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q4_1_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q4_k_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q5_0_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q5_1_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q5_k_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q6_k_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
gemv_noshuffle_q8_0_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
get_rows.cl opencl: improve get_rows, cpy, concat and q6_k flat gemv (llama/24160) 2026-06-08 14:36:36 +03:00
glu.cl opencl: add `swiglu_oai` and `add_id` (llama/15121) 2025-08-18 20:30:45 +03:00
group_norm.cl OpenCL: add fused group_norm/norm, mul, add (llama/15314) 2025-09-20 13:42:43 +03:00
im2col_f16.cl opencl: fix `im2col` when `KW!=KH` (llama/14803) 2025-07-28 13:02:32 +03:00
im2col_f32.cl opencl: fix `im2col` when `KW!=KH` (llama/14803) 2025-07-28 13:02:32 +03:00
l2_norm.cl opencl: fix l2_norm (llama/20480) 2026-03-16 13:10:15 +02:00
mean.cl opencl: optimize mean and sum_row kernels (llama/19614) 2026-02-27 20:57:58 +02:00
moe_combine.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
moe_reorder_b.cl opencl: Adreno optimization for MoE - MxFP4 (llama/22301) 2026-05-14 21:26:48 +03:00
moe_reorder_quant_a_q8_1.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
moe_sort_by_expert.cl opencl: Adreno optimization for MoE - MxFP4 (llama/22301) 2026-05-14 21:26:48 +03:00
mul.cl opencl: add f16 for `add`, `sub`, `mul`, `div` (llama/14984) 2025-08-18 20:30:45 +03:00
mul_mat_f16_f32.cl opencl: add tiled mul_mat_f16_f32 (llama/14535) 2025-07-12 19:23:56 +03:00
mul_mm_f16_f32_kq_kqv.cl opencl: add kernel to handle mat mul in attention to improve encoding speed (llama/17181) 2025-11-17 21:05:46 +02:00
mul_mm_f16_f32_l4_lm.cl opencl: fix boundary handling for mul_mm (llama/16875) 2025-11-09 23:38:03 +02:00
mul_mm_f32_f32_l4_lm.cl opencl: fix boundary handling for mul_mm (llama/16875) 2025-11-09 23:38:03 +02:00
mul_mm_iq4_nl_f32_l4_lm.cl opencl: add iq4_nl support (llama/22272) 2026-04-30 11:29:19 +03:00
mul_mm_q1_0_f32_l4_lm.cl opencl: initial q1_0 support (llama/25160) 2026-07-10 13:06:42 +03:00
mul_mm_q4_0_f32_l4_lm.cl opencl: add basic support for q4_1 (llama/19534) 2026-02-15 21:44:37 +02:00
mul_mm_q4_1_f32_l4_lm.cl opencl: add basic support for q4_1 (llama/19534) 2026-02-15 21:44:37 +02:00
mul_mm_q4_k_f32_l4_lm.cl opencl: add flattened Q4_K mv and general Q4_K mm (llama/20773) 2026-03-29 15:04:36 +03:00
mul_mm_q5_0_f32_l4_lm.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mm_q5_1_f32_l4_lm.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mm_q5_k_f32_l4_lm.cl opencl: add basic support for q5_k (llama/21593) 2026-04-30 11:29:06 +03:00
mul_mm_q6_k_f32_l4_lm.cl opencl: add general Q6_K mm and Q4_K mv (llama/19347) 2026-02-15 21:44:37 +02:00
mul_mm_q8_0_f32_l4_lm.cl opencl: fix boundary handling for mul_mm (llama/16875) 2025-11-09 23:38:03 +02:00
mul_mv_f16_f16.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_f16_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_f16_f32_1row.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_f16_f32_l4.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_f32_f32.cl
mul_mv_id_mxfp4_f32.cl opencl: add initial mxfp4 support via mv (llama/15270) 2025-08-18 20:30:45 +03:00
mul_mv_id_mxfp4_f32_flat.cl opencl: optimize mxfp4 kernels (llama/16037) 2025-09-20 13:46:39 +03:00
mul_mv_id_q4_0_f32_8x_flat.cl
mul_mv_id_q8_0_f32.cl opencl: initial `q8_0` mv support (llama/15732) 2025-09-29 15:18:08 +03:00
mul_mv_id_q8_0_f32_flat.cl opencl: initial `q8_0` mv support (llama/15732) 2025-09-29 15:18:08 +03:00
mul_mv_iq4_nl_f32.cl opencl: add iq4_nl support (llama/22272) 2026-04-30 11:29:19 +03:00
mul_mv_iq4_nl_f32_flat.cl opencl: add iq4_nl support (llama/22272) 2026-04-30 11:29:19 +03:00
mul_mv_mxfp4_f32.cl opencl: add initial mxfp4 support via mv (llama/15270) 2025-08-18 20:30:45 +03:00
mul_mv_mxfp4_f32_flat.cl opencl: optimize mxfp4 kernels (llama/16037) 2025-09-20 13:46:39 +03:00
mul_mv_q1_0_f32.cl opencl: initial q1_0 support (llama/25160) 2026-07-10 13:06:42 +03:00
mul_mv_q1_0_f32_flat.cl opencl: initial q1_0 support (llama/25160) 2026-07-10 13:06:42 +03:00
mul_mv_q4_0_f32.cl
mul_mv_q4_0_f32_1d_8x_flat.cl
mul_mv_q4_0_f32_1d_16x_flat.cl
mul_mv_q4_0_f32_8x_flat.cl
mul_mv_q4_0_f32_v.cl
mul_mv_q4_1_f32.cl opencl: add basic support for q4_1 (llama/19534) 2026-02-15 21:44:37 +02:00
mul_mv_q4_1_f32_flat.cl opencl: add basic support for q4_1 (llama/19534) 2026-02-15 21:44:37 +02:00
mul_mv_q4_k_f32.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_q4_k_f32_flat.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_q5_0_f32.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mv_q5_0_f32_flat.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mv_q5_1_f32.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mv_q5_1_f32_flat.cl opencl: add basic support for q5_0 and q5_1 (llama/23548) 2026-06-08 14:36:36 +03:00
mul_mv_q5_k_f32.cl opencl: add basic support for q5_k (llama/21593) 2026-04-30 11:29:06 +03:00
mul_mv_q5_k_f32_flat.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
mul_mv_q6_k_f32.cl opencl: add flattened q6_K mv (llama/19054) 2026-01-30 15:56:40 +02:00
mul_mv_q6_k_f32_flat.cl opencl: improve get_rows, cpy, concat and q6_k flat gemv (llama/24160) 2026-06-08 14:36:36 +03:00
mul_mv_q8_0_f32.cl opencl: initial `q8_0` mv support (llama/15732) 2025-09-29 15:18:08 +03:00
mul_mv_q8_0_f32_flat.cl opencl: initial `q8_0` mv support (llama/15732) 2025-09-29 15:18:08 +03:00
neg.cl opencl: add neg, exp and diag (llama/20127) 2026-03-16 13:10:15 +02:00
norm.cl opencl: support non-contig rows in norm (llama/24965) 2026-06-26 16:03:57 +03:00
pad.cl opencl: support pad_ext (llama/15888) 2025-10-12 11:16:23 +03:00
quant_a_q8_1.cl sync : ggml (#3962) 2026-07-31 09:11:28 +02:00
relu.cl
repeat.cl opencl: refactor some ops, concat, repeat, tanh and scale (llama/19226) 2026-02-08 09:29:10 +02:00
rms_norm.cl opencl: fix rms_norm_mul (llama/17250) 2025-11-17 21:05:46 +02:00
rope.cl opencl: support imrope (llama/16914) 2025-11-09 23:38:03 +02:00
scale.cl opencl: refactor some ops, concat, repeat, tanh and scale (llama/19226) 2026-02-08 09:29:10 +02:00
set_rows.cl opencl: flash attention improvement (llama/25069) 2026-07-10 13:06:42 +03:00
sigmoid.cl
silu.cl
softmax_4_f16.cl opencl: support sink in `soft_max` (attn sinks) (llama/15152) 2025-08-18 20:30:45 +03:00
softmax_4_f32.cl opencl: support sink in `soft_max` (attn sinks) (llama/15152) 2025-08-18 20:30:45 +03:00
softmax_f16.cl opencl: support sink in `soft_max` (attn sinks) (llama/15152) 2025-08-18 20:30:45 +03:00
softmax_f32.cl opencl: support sink in `soft_max` (attn sinks) (llama/15152) 2025-08-18 20:30:45 +03:00
softplus.cl opencl: refactor expm1 and softplus (llama/19404) 2026-02-27 20:57:58 +02:00
solve_tri.cl OpenCL: add SOLVE_TRI op support (llama/18846) 2026-01-30 15:56:40 +02:00
sqr.cl opencl: add sqr, sqrt, mean and ssm_conv (llama/17476) 2025-12-12 17:53:09 +02:00
sqrt.cl opencl: add sqr, sqrt, mean and ssm_conv (llama/17476) 2025-12-12 17:53:09 +02:00
ssm_conv.cl opencl: add sqr, sqrt, mean and ssm_conv (llama/17476) 2025-12-12 17:53:09 +02:00
sub.cl opencl: add f16 for `add`, `sub`, `mul`, `div` (llama/14984) 2025-08-18 20:30:45 +03:00
sum_rows.cl opencl: optimize mean and sum_row kernels (llama/19614) 2026-02-27 20:57:58 +02:00
tanh.cl opencl: refactor some ops, concat, repeat, tanh and scale (llama/19226) 2026-02-08 09:29:10 +02:00
transpose.cl opencl: add optimized q4_1 mm kernel for adreno (llama/19840) 2026-03-16 13:10:15 +02:00
tri.cl opencl: add TRI op support (llama/18979) 2026-01-30 15:56:40 +02:00
tsembd.cl ggml : fix padding in timestep embedding kernels (llama/15932) 2025-09-20 13:45:30 +03:00
upscale.cl opencl : update upscale to support align corners (llama/14488) 2025-07-12 19:23:56 +03:00