Files
llama.cpp/docs/ops.md
T
Masashi Yoshimura 509a31d00f ggml-webgpu: Update the RMS_NORM preprocessor and add L2_NORM (#20665)
* Update the preprocessor of RMS_NORM and add L2_NORM.

* Fix the name of rms_norm to row_norm.
2026-03-18 21:08:59 -07:00

11 KiB

GGML Operations

List of GGML operations and backend support status.

How to add a backend to this table:

  1. Run test-backend-ops support --output csv with your backend name and redirect output to a csv file in docs/ops/ (e.g., docs/ops/CUDA.csv)
  2. Regenerate /docs/ops.md via ./scripts/create_ops_docs.py

Legend:

  • ✅ Fully supported by this backend
  • 🟡 Partially supported by this backend
  • ⌠Not supported by this backend
Operation BLAS CANN CPU CUDA Metal OpenCL SYCL Vulkan WebGPU ZenDNN zDNN
ABS ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
ACC ⌠✅ ✅ ✅ ✅ ⌠🟡 ✅ ⌠⌠âŒ
ADD ⌠✅ ✅ ✅ 🟡 ✅ ✅ ✅ ✅ ⌠âŒ
ADD1 ⌠✅ ✅ ✅ ⌠⌠✅ ✅ ⌠⌠âŒ
ADD_ID ⌠⌠✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
ARANGE ⌠✅ ✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
ARGMAX ⌠✅ ✅ ✅ ✅ ⌠✅ ✅ ✅ ⌠âŒ
ARGSORT ⌠✅ ✅ ✅ ✅ 🟡 🟡 ✅ ✅ ⌠âŒ
CEIL ⌠⌠✅ 🟡 ⌠⌠✅ 🟡 ✅ ⌠âŒ
CLAMP ⌠✅ ✅ ✅ 🟡 🟡 🟡 🟡 ✅ ⌠âŒ
CONCAT ⌠✅ ✅ 🟡 ✅ 🟡 ✅ ✅ ✅ ⌠âŒ
CONT ⌠🟡 ✅ ✅ ✅ 🟡 🟡 ✅ 🟡 ⌠âŒ
CONV_2D ⌠⌠✅ ✅ ✅ ✅ ⌠✅ ⌠⌠âŒ
CONV_2D_DW ⌠⌠✅ ✅ ⌠⌠⌠✅ ⌠⌠âŒ
CONV_3D ⌠⌠✅ ⌠⌠⌠⌠⌠⌠⌠âŒ
CONV_TRANSPOSE_1D ⌠✅ ✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
CONV_TRANSPOSE_2D ⌠⌠✅ ✅ ✅ ⌠⌠✅ ⌠⌠âŒ
COS ⌠✅ ✅ ✅ 🟡 ⌠🟡 🟡 ✅ ⌠âŒ
COUNT_EQUAL ⌠✅ ✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
CPY ⌠🟡 🟡 🟡 🟡 🟡 🟡 🟡 🟡 ⌠âŒ
CROSS_ENTROPY_LOSS ⌠✅ ✅ ✅ ⌠⌠⌠⌠⌠⌠âŒ
CROSS_ENTROPY_LOSS_BACK ⌠⌠✅ ✅ ⌠⌠⌠⌠⌠⌠âŒ
CUMSUM ⌠⌠✅ ✅ ✅ ⌠⌠✅ ✅ ⌠âŒ
DIAG ⌠⌠✅ ✅ ⌠⌠⌠✅ ✅ ⌠âŒ
DIAG_MASK_INF ⌠✅ ✅ ✅ ⌠🟡 ✅ ✅ ⌠⌠âŒ
DIV ⌠✅ ✅ ✅ 🟡 ✅ ✅ ✅ ✅ ⌠âŒ
DUP ⌠✅ ✅ 🟡 🟡 🟡 ✅ ✅ ⌠⌠âŒ
ELU ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
EXP ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
EXPM1 ⌠⌠✅ 🟡 🟡 ⌠⌠⌠✅ ⌠âŒ
FILL ⌠⌠✅ ✅ ✅ ⌠⌠✅ ✅ ⌠âŒ
FLASH_ATTN_EXT ⌠🟡 ✅ 🟡 🟡 🟡 🟡 🟡 🟡 ⌠âŒ
FLOOR ⌠⌠✅ 🟡 ⌠⌠🟡 🟡 ✅ ⌠âŒ
GATED_DELTA_NET ⌠⌠✅ ⌠⌠⌠✅ ⌠⌠⌠âŒ
GATED_LINEAR_ATTN ⌠✅ ✅ ✅ ⌠⌠✅ ⌠⌠⌠âŒ
GEGLU ⌠✅ ✅ ✅ 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
GEGLU_ERF ⌠✅ ✅ ✅ 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
GEGLU_QUICK ⌠✅ ✅ ✅ 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
GELU ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
GELU_ERF ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
GELU_QUICK ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
GET_ROWS ⌠🟡 ✅ 🟡 ✅ 🟡 🟡 ✅ 🟡 ⌠âŒ
GET_ROWS_BACK ⌠⌠🟡 🟡 ⌠⌠⌠⌠⌠⌠âŒ
GROUP_NORM ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
HARDSIGMOID ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
HARDSWISH ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
IM2COL ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
IM2COL_3D ⌠⌠✅ ✅ ⌠⌠⌠✅ ⌠⌠âŒ
L2_NORM ⌠✅ ✅ ✅ ✅ ⌠✅ ✅ ✅ ⌠âŒ
LEAKY_RELU ⌠✅ ✅ ✅ 🟡 ⌠✅ 🟡 ⌠⌠âŒ
LOG ⌠✅ ✅ ✅ 🟡 ⌠🟡 ✅ ✅ ⌠âŒ
MEAN ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
MUL ⌠✅ ✅ ✅ 🟡 ✅ ✅ ✅ ✅ ⌠âŒ
MUL_MAT 🟡 🟡 🟡 🟡 ✅ 🟡 🟡 🟡 🟡 🟡 🟡
MUL_MAT_ID ⌠🟡 ✅ ✅ ✅ 🟡 🟡 ✅ ⌠⌠âŒ
NEG ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
NORM ⌠✅ ✅ ✅ ✅ ✅ ✅ 🟡 ⌠⌠âŒ
OPT_STEP_ADAMW ⌠⌠✅ ✅ ✅ ⌠⌠✅ ⌠⌠âŒ
OPT_STEP_SGD ⌠⌠✅ ✅ ✅ ⌠⌠✅ ⌠⌠âŒ
OUT_PROD 🟡 🟡 🟡 🟡 ⌠⌠🟡 ⌠⌠⌠🟡
PAD ⌠🟡 ✅ 🟡 🟡 🟡 🟡 ✅ ✅ ⌠âŒ
PAD_REFLECT_1D ⌠✅ ✅ ✅ ✅ ⌠✅ ⌠⌠⌠âŒ
POOL_1D ⌠⌠✅ ⌠⌠⌠⌠⌠⌠⌠âŒ
POOL_2D ⌠🟡 ✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
REGLU ⌠✅ ✅ ✅ 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
RELU ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
REPEAT ⌠✅ ✅ 🟡 ✅ 🟡 ✅ 🟡 ✅ ⌠âŒ
REPEAT_BACK ⌠⌠✅ ✅ ⌠⌠✅ ✅ ⌠⌠âŒ
RMS_NORM ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠âŒ
RMS_NORM_BACK ⌠⌠✅ ✅ ⌠⌠✅ ✅ ⌠⌠âŒ
ROLL ⌠⌠✅ ✅ ⌠⌠✅ ✅ ⌠⌠âŒ
ROPE ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠âŒ
ROPE_BACK ⌠⌠✅ ✅ ⌠⌠✅ ✅ ⌠⌠âŒ
ROUND ⌠⌠✅ 🟡 ⌠⌠🟡 🟡 ✅ ⌠âŒ
RWKV_WKV6 ⌠⌠✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
RWKV_WKV7 ⌠⌠✅ ✅ ✅ ⌠✅ ✅ ⌠⌠âŒ
SCALE ⌠🟡 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠âŒ
SET ⌠⌠✅ ✅ ⌠⌠🟡 ✅ ⌠⌠âŒ
SET_ROWS ⌠🟡 🟡 🟡 🟡 🟡 🟡 🟡 🟡 ⌠âŒ
SGN ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
SIGMOID ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
SILU ⌠✅ ✅ 🟡 🟡 🟡 ✅ 🟡 ✅ ⌠âŒ
SILU_BACK ⌠⌠✅ ✅ ⌠⌠⌠✅ ⌠⌠âŒ
SIN ⌠✅ ✅ ✅ 🟡 ⌠🟡 ��Ÿ¡ ✅ ⌠âŒ
SOFTPLUS ⌠⌠✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
SOFT_MAX ⌠🟡 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠âŒ
SOFT_MAX_BACK ⌠⌠🟡 🟡 ⌠⌠🟡 ✅ ⌠⌠âŒ
SOLVE_TRI ⌠⌠✅ 🟡 ⌠⌠⌠✅ ⌠⌠âŒ
SQR ⌠✅ ✅ ✅ 🟡 ✅ 🟡 🟡 ✅ ⌠âŒ
SQRT ⌠✅ ✅ ✅ 🟡 ✅ 🟡 🟡 ✅ ⌠âŒ
SSM_CONV ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
SSM_SCAN ⌠⌠✅ ✅ ✅ ⌠⌠🟡 ⌠⌠âŒ
STEP ⌠✅ ✅ 🟡 🟡 ⌠✅ 🟡 ✅ ⌠âŒ
SUB ⌠✅ ✅ ✅ 🟡 ✅ ✅ ✅ ✅ ⌠âŒ
SUM ⌠🟡 ✅ 🟡 🟡 ⌠🟡 🟡 🟡 ⌠âŒ
SUM_ROWS ⌠✅ ✅ 🟡 ✅ 🟡 🟡 ✅ ✅ ⌠âŒ
SWIGLU ⌠✅ ✅ ✅ 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
SWIGLU_OAI ⌠⌠✅ ✅ ✅ ✅ ✅ 🟡 ✅ ⌠âŒ
TANH ⌠✅ ✅ 🟡 🟡 ✅ ✅ 🟡 ✅ ⌠âŒ
TIMESTEP_EMBEDDING ⌠✅ ✅ ✅ ✅ ✅ ✅ ✅ ⌠⌠âŒ
TOP_K ⌠⌠✅ ⌠✅ ⌠🟡 🟡 ✅ ⌠âŒ
TRI ⌠⌠✅ ✅ ✅ ⌠✅ ✅ ✅ ⌠âŒ
TRUNC ⌠⌠✅ 🟡 ⌠⌠🟡 🟡 ✅ ⌠âŒ
UPSCALE ⌠🟡 ✅ ✅ 🟡 🟡 ✅ ✅ ⌠⌠âŒ
XIELU ⌠⌠✅ ⌠⌠⌠⌠✅ ✅ ⌠âŒ