gitextract_leym123p/ ├── .editorconfig ├── .github/ │ ├── pull_request_template.md │ └── workflows/ │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── AUTHORS ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── ci/ │ └── run.sh ├── cmake/ │ ├── GitVars.cmake │ ├── common.cmake │ └── ggml-config.cmake.in ├── docs/ │ └── gguf.md ├── examples/ │ ├── CMakeLists.txt │ ├── common-ggml.cpp │ ├── common-ggml.h │ ├── common.cpp │ ├── common.h │ ├── gpt-2/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── convert-cerebras-to-ggml.py │ │ ├── convert-ckpt-to-ggml.py │ │ ├── convert-h5-to-ggml.py │ │ ├── download-ggml-model.sh │ │ ├── download-model.sh │ │ ├── main-alloc.cpp │ │ ├── main-backend.cpp │ │ ├── main-batched.cpp │ │ ├── main-ctx.cpp │ │ ├── main-sched.cpp │ │ └── quantize.cpp │ ├── gpt-j/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── convert-h5-to-ggml.py │ │ ├── download-ggml-model.sh │ │ ├── download-model.sh │ │ ├── main.cpp │ │ └── quantize.cpp │ ├── magika/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── convert.py │ │ └── main.cpp │ ├── mnist/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── mnist-common.cpp │ │ ├── mnist-common.h │ │ ├── mnist-eval.cpp │ │ ├── mnist-train-cnn.py │ │ ├── mnist-train-fc.py │ │ ├── mnist-train.cpp │ │ └── server.py │ ├── perf-metal/ │ │ ├── CMakeLists.txt │ │ └── perf-metal.cpp │ ├── prompts/ │ │ ├── dolly-v2.txt │ │ ├── gpt-2-chinese.txt │ │ ├── gpt-2.txt │ │ ├── gpt-j.txt │ │ ├── gpt-neox-japanese.txt │ │ ├── gpt-neox.txt │ │ ├── polyglot-ko.txt │ │ ├── replit.txt │ │ ├── starcoder.txt │ │ ├── test-cases.txt │ │ ├── tokenize_huggingface.py │ │ └── whisper.txt │ ├── python/ │ │ ├── README.md │ │ ├── api.h │ │ ├── example_add_quant.py │ │ ├── example_test_all_quants.py │ │ ├── ggml/ │ │ │ ├── __init__.py │ │ │ ├── __init__.pyi │ │ │ ├── cffi.py │ │ │ ├── ffi/ │ │ │ │ └── __init__.pyi │ │ │ └── utils.py │ │ ├── regenerate.py │ │ ├── stubs.py │ │ └── test_tensor.py │ ├── sam/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── convert-pth-to-ggml.py │ │ └── sam.cpp │ ├── simple/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── simple-backend.cpp │ │ └── simple-ctx.cpp │ ├── stb_image.h │ ├── stb_image_write.h │ ├── test-cmake/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ └── test-cmake.cpp │ └── yolo/ │ ├── CMakeLists.txt │ ├── README.md │ ├── convert-yolov3-tiny.py │ ├── data/ │ │ └── coco.names │ ├── yolo-image.cpp │ ├── yolo-image.h │ └── yolov3-tiny.cpp ├── ggml.pc.in ├── include/ │ ├── ggml-alloc.h │ ├── ggml-backend.h │ ├── ggml-blas.h │ ├── ggml-cann.h │ ├── ggml-cpp.h │ ├── ggml-cpu.h │ ├── ggml-cuda.h │ ├── ggml-hexagon.h │ ├── ggml-metal.h │ ├── ggml-opencl.h │ ├── ggml-openvino.h │ ├── ggml-opt.h │ ├── ggml-rpc.h │ ├── ggml-sycl.h │ ├── ggml-virtgpu.h │ ├── ggml-vulkan.h │ ├── ggml-webgpu.h │ ├── ggml-zdnn.h │ ├── ggml-zendnn.h │ ├── ggml.h │ └── gguf.h ├── requirements.txt ├── scripts/ │ ├── gen-authors.sh │ ├── release.sh │ ├── sync-llama-am.sh │ ├── sync-llama.last │ ├── sync-llama.sh │ ├── sync-whisper-am.sh │ ├── sync-whisper.last │ └── sync-whisper.sh ├── src/ │ ├── CMakeLists.txt │ ├── ggml-alloc.c │ ├── ggml-backend-dl.cpp │ ├── ggml-backend-dl.h │ ├── ggml-backend-impl.h │ ├── ggml-backend-reg.cpp │ ├── ggml-backend.cpp │ ├── ggml-blas/ │ │ ├── CMakeLists.txt │ │ └── ggml-blas.cpp │ ├── ggml-cann/ │ │ ├── CMakeLists.txt │ │ ├── acl_tensor.cpp │ │ ├── acl_tensor.h │ │ ├── aclnn_ops.cpp │ │ ├── aclnn_ops.h │ │ ├── common.h │ │ └── ggml-cann.cpp │ ├── ggml-common.h │ ├── ggml-cpu/ │ │ ├── CMakeLists.txt │ │ ├── amx/ │ │ │ ├── amx.cpp │ │ │ ├── amx.h │ │ │ ├── common.h │ │ │ ├── mmq.cpp │ │ │ └── mmq.h │ │ ├── arch/ │ │ │ ├── arm/ │ │ │ │ ├── cpu-feats.cpp │ │ │ │ ├── quants.c │ │ │ │ └── repack.cpp │ │ │ ├── loongarch/ │ │ │ │ └── quants.c │ │ │ ├── powerpc/ │ │ │ │ ├── cpu-feats.cpp │ │ │ │ └── quants.c │ │ │ ├── riscv/ │ │ │ │ ├── cpu-feats.cpp │ │ │ │ ├── quants.c │ │ │ │ └── repack.cpp │ │ │ ├── s390/ │ │ │ │ ├── cpu-feats.cpp │ │ │ │ └── quants.c │ │ │ ├── wasm/ │ │ │ │ └── quants.c │ │ │ └── x86/ │ │ │ ├── cpu-feats.cpp │ │ │ ├── quants.c │ │ │ └── repack.cpp │ │ ├── arch-fallback.h │ │ ├── binary-ops.cpp │ │ ├── binary-ops.h │ │ ├── cmake/ │ │ │ └── FindSIMD.cmake │ │ ├── common.h │ │ ├── ggml-cpu-impl.h │ │ ├── ggml-cpu.c │ │ ├── ggml-cpu.cpp │ │ ├── hbm.cpp │ │ ├── hbm.h │ │ ├── kleidiai/ │ │ │ ├── kernels.cpp │ │ │ ├── kernels.h │ │ │ ├── kleidiai.cpp │ │ │ └── kleidiai.h │ │ ├── llamafile/ │ │ │ ├── sgemm.cpp │ │ │ └── sgemm.h │ │ ├── ops.cpp │ │ ├── ops.h │ │ ├── quants.c │ │ ├── quants.h │ │ ├── repack.cpp │ │ ├── repack.h │ │ ├── simd-gemm.h │ │ ├── simd-mappings.h │ │ ├── spacemit/ │ │ │ ├── ime.cpp │ │ │ ├── ime.h │ │ │ ├── ime1_kernels.cpp │ │ │ └── ime_kernels.h │ │ ├── traits.cpp │ │ ├── traits.h │ │ ├── unary-ops.cpp │ │ ├── unary-ops.h │ │ ├── vec.cpp │ │ └── vec.h │ ├── ggml-cuda/ │ │ ├── CMakeLists.txt │ │ ├── acc.cu │ │ ├── acc.cuh │ │ ├── add-id.cu │ │ ├── add-id.cuh │ │ ├── arange.cu │ │ ├── arange.cuh │ │ ├── argmax.cu │ │ ├── argmax.cuh │ │ ├── argsort.cu │ │ ├── argsort.cuh │ │ ├── binbcast.cu │ │ ├── binbcast.cuh │ │ ├── clamp.cu │ │ ├── clamp.cuh │ │ ├── common.cuh │ │ ├── concat.cu │ │ ├── concat.cuh │ │ ├── conv-transpose-1d.cu │ │ ├── conv-transpose-1d.cuh │ │ ├── conv2d-dw.cu │ │ ├── conv2d-dw.cuh │ │ ├── conv2d-transpose.cu │ │ ├── conv2d-transpose.cuh │ │ ├── conv2d.cu │ │ ├── conv2d.cuh │ │ ├── convert.cu │ │ ├── convert.cuh │ │ ├── count-equal.cu │ │ ├── count-equal.cuh │ │ ├── cp-async.cuh │ │ ├── cpy-utils.cuh │ │ ├── cpy.cu │ │ ├── cpy.cuh │ │ ├── cross-entropy-loss.cu │ │ ├── cross-entropy-loss.cuh │ │ ├── cumsum.cu │ │ ├── cumsum.cuh │ │ ├── dequantize.cuh │ │ ├── diag.cu │ │ ├── diag.cuh │ │ ├── diagmask.cu │ │ ├── diagmask.cuh │ │ ├── fattn-common.cuh │ │ ├── fattn-mma-f16.cuh │ │ ├── fattn-tile.cu │ │ ├── fattn-tile.cuh │ │ ├── fattn-vec.cuh │ │ ├── fattn-wmma-f16.cu │ │ ├── fattn-wmma-f16.cuh │ │ ├── fattn.cu │ │ ├── fattn.cuh │ │ ├── fill.cu │ │ ├── fill.cuh │ │ ├── gated_delta_net.cu │ │ ├── gated_delta_net.cuh │ │ ├── getrows.cu │ │ ├── getrows.cuh │ │ ├── ggml-cuda.cu │ │ ├── gla.cu │ │ ├── gla.cuh │ │ ├── im2col.cu │ │ ├── im2col.cuh │ │ ├── mean.cu │ │ ├── mean.cuh │ │ ├── mma.cuh │ │ ├── mmf.cu │ │ ├── mmf.cuh │ │ ├── mmid.cu │ │ ├── mmid.cuh │ │ ├── mmq.cu │ │ ├── mmq.cuh │ │ ├── mmvf.cu │ │ ├── mmvf.cuh │ │ ├── mmvq.cu │ │ ├── mmvq.cuh │ │ ├── norm.cu │ │ ├── norm.cuh │ │ ├── opt-step-adamw.cu │ │ ├── opt-step-adamw.cuh │ │ ├── opt-step-sgd.cu │ │ ├── opt-step-sgd.cuh │ │ ├── out-prod.cu │ │ ├── out-prod.cuh │ │ ├── pad.cu │ │ ├── pad.cuh │ │ ├── pad_reflect_1d.cu │ │ ├── pad_reflect_1d.cuh │ │ ├── pool2d.cu │ │ ├── pool2d.cuh │ │ ├── quantize.cu │ │ ├── quantize.cuh │ │ ├── reduce_rows.cuh │ │ ├── roll.cu │ │ ├── roll.cuh │ │ ├── rope.cu │ │ ├── rope.cuh │ │ ├── scale.cu │ │ ├── scale.cuh │ │ ├── set-rows.cu │ │ ├── set-rows.cuh │ │ ├── set.cu │ │ ├── set.cuh │ │ ├── softcap.cu │ │ ├── softcap.cuh │ │ ├── softmax.cu │ │ ├── softmax.cuh │ │ ├── solve_tri.cu │ │ ├── solve_tri.cuh │ │ ├── ssm-conv.cu │ │ ├── ssm-conv.cuh │ │ ├── ssm-scan.cu │ │ ├── ssm-scan.cuh │ │ ├── sum.cu │ │ ├── sum.cuh │ │ ├── sumrows.cu │ │ ├── sumrows.cuh │ │ ├── template-instances/ │ │ │ ├── fattn-mma-f16-instance-ncols1_1-ncols2_16.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_1-ncols2_32.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_1-ncols2_8.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_16-ncols2_1.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_16-ncols2_2.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_16-ncols2_4.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_2-ncols2_16.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_2-ncols2_32.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_2-ncols2_4.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_2-ncols2_8.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_32-ncols2_1.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_32-ncols2_2.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_4-ncols2_16.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_4-ncols2_2.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_4-ncols2_4.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_4-ncols2_8.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_64-ncols2_1.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_8-ncols2_1.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_8-ncols2_2.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_8-ncols2_4.cu │ │ │ ├── fattn-mma-f16-instance-ncols1_8-ncols2_8.cu │ │ │ ├── fattn-tile-instance-dkq112-dv112.cu │ │ │ ├── fattn-tile-instance-dkq128-dv128.cu │ │ │ ├── fattn-tile-instance-dkq256-dv256.cu │ │ │ ├── fattn-tile-instance-dkq40-dv40.cu │ │ │ ├── fattn-tile-instance-dkq576-dv512.cu │ │ │ ├── fattn-tile-instance-dkq64-dv64.cu │ │ │ ├── fattn-tile-instance-dkq72-dv72.cu │ │ │ ├── fattn-tile-instance-dkq80-dv80.cu │ │ │ ├── fattn-tile-instance-dkq96-dv96.cu │ │ │ ├── fattn-vec-instance-f16-f16.cu │ │ │ ├── fattn-vec-instance-f16-q4_0.cu │ │ │ ├── fattn-vec-instance-f16-q4_1.cu │ │ │ ├── fattn-vec-instance-f16-q5_0.cu │ │ │ ├── fattn-vec-instance-f16-q5_1.cu │ │ │ ├── fattn-vec-instance-f16-q8_0.cu │ │ │ ├── fattn-vec-instance-q4_0-f16.cu │ │ │ ├── fattn-vec-instance-q4_0-q4_0.cu │ │ │ ├── fattn-vec-instance-q4_0-q4_1.cu │ │ │ ├── fattn-vec-instance-q4_0-q5_0.cu │ │ │ ├── fattn-vec-instance-q4_0-q5_1.cu │ │ │ ├── fattn-vec-instance-q4_0-q8_0.cu │ │ │ ├── fattn-vec-instance-q4_1-f16.cu │ │ │ ├── fattn-vec-instance-q4_1-q4_0.cu │ │ │ ├── fattn-vec-instance-q4_1-q4_1.cu │ │ │ ├── fattn-vec-instance-q4_1-q5_0.cu │ │ │ ├── fattn-vec-instance-q4_1-q5_1.cu │ │ │ ├── fattn-vec-instance-q4_1-q8_0.cu │ │ │ ├── fattn-vec-instance-q5_0-f16.cu │ │ │ ├── fattn-vec-instance-q5_0-q4_0.cu │ │ │ ├── fattn-vec-instance-q5_0-q4_1.cu │ │ │ ├── fattn-vec-instance-q5_0-q5_0.cu │ │ │ ├── fattn-vec-instance-q5_0-q5_1.cu │ │ │ ├── fattn-vec-instance-q5_0-q8_0.cu │ │ │ ├── fattn-vec-instance-q5_1-f16.cu │ │ │ ├── fattn-vec-instance-q5_1-q4_0.cu │ │ │ ├── fattn-vec-instance-q5_1-q4_1.cu │ │ │ ├── fattn-vec-instance-q5_1-q5_0.cu │ │ │ ├── fattn-vec-instance-q5_1-q5_1.cu │ │ │ ├── fattn-vec-instance-q5_1-q8_0.cu │ │ │ ├── fattn-vec-instance-q8_0-f16.cu │ │ │ ├── fattn-vec-instance-q8_0-q4_0.cu │ │ │ ├── fattn-vec-instance-q8_0-q4_1.cu │ │ │ ├── fattn-vec-instance-q8_0-q5_0.cu │ │ │ ├── fattn-vec-instance-q8_0-q5_1.cu │ │ │ ├── fattn-vec-instance-q8_0-q8_0.cu │ │ │ ├── generate_cu_files.py │ │ │ ├── mmf-instance-ncols_1.cu │ │ │ ├── mmf-instance-ncols_10.cu │ │ │ ├── mmf-instance-ncols_11.cu │ │ │ ├── mmf-instance-ncols_12.cu │ │ │ ├── mmf-instance-ncols_13.cu │ │ │ ├── mmf-instance-ncols_14.cu │ │ │ ├── mmf-instance-ncols_15.cu │ │ │ ├── mmf-instance-ncols_16.cu │ │ │ ├── mmf-instance-ncols_2.cu │ │ │ ├── mmf-instance-ncols_3.cu │ │ │ ├── mmf-instance-ncols_4.cu │ │ │ ├── mmf-instance-ncols_5.cu │ │ │ ├── mmf-instance-ncols_6.cu │ │ │ ├── mmf-instance-ncols_7.cu │ │ │ ├── mmf-instance-ncols_8.cu │ │ │ ├── mmf-instance-ncols_9.cu │ │ │ ├── mmq-instance-iq1_s.cu │ │ │ ├── mmq-instance-iq2_s.cu │ │ │ ├── mmq-instance-iq2_xs.cu │ │ │ ├── mmq-instance-iq2_xxs.cu │ │ │ ├── mmq-instance-iq3_s.cu │ │ │ ├── mmq-instance-iq3_xxs.cu │ │ │ ├── mmq-instance-iq4_nl.cu │ │ │ ├── mmq-instance-iq4_xs.cu │ │ │ ├── mmq-instance-mxfp4.cu │ │ │ ├── mmq-instance-q2_k.cu │ │ │ ├── mmq-instance-q3_k.cu │ │ │ ├── mmq-instance-q4_0.cu │ │ │ ├── mmq-instance-q4_1.cu │ │ │ ├── mmq-instance-q4_k.cu │ │ │ ├── mmq-instance-q5_0.cu │ │ │ ├── mmq-instance-q5_1.cu │ │ │ ├── mmq-instance-q5_k.cu │ │ │ ├── mmq-instance-q6_k.cu │ │ │ └── mmq-instance-q8_0.cu │ │ ├── top-k.cu │ │ ├── top-k.cuh │ │ ├── topk-moe.cu │ │ ├── topk-moe.cuh │ │ ├── tri.cu │ │ ├── tri.cuh │ │ ├── tsembd.cu │ │ ├── tsembd.cuh │ │ ├── unary.cu │ │ ├── unary.cuh │ │ ├── upscale.cu │ │ ├── upscale.cuh │ │ ├── vecdotq.cuh │ │ ├── vendors/ │ │ │ ├── cuda.h │ │ │ ├── hip.h │ │ │ └── musa.h │ │ ├── wkv.cu │ │ └── wkv.cuh │ ├── ggml-hexagon/ │ │ ├── CMakeLists.txt │ │ ├── ggml-hexagon.cpp │ │ ├── htp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── act-ops.c │ │ │ ├── argsort-ops.c │ │ │ ├── binary-ops.c │ │ │ ├── cmake-toolchain.cmake │ │ │ ├── cpy-ops.c │ │ │ ├── flash-attn-ops.c │ │ │ ├── get-rows-ops.c │ │ │ ├── hex-dma.c │ │ │ ├── hex-dma.h │ │ │ ├── hex-dump.h │ │ │ ├── hex-fastdiv.h │ │ │ ├── hex-utils.h │ │ │ ├── htp-ctx.h │ │ │ ├── htp-msg.h │ │ │ ├── htp-ops.h │ │ │ ├── htp_iface.idl │ │ │ ├── hvx-arith.h │ │ │ ├── hvx-base.h │ │ │ ├── hvx-copy.h │ │ │ ├── hvx-div.h │ │ │ ├── hvx-dump.h │ │ │ ├── hvx-exp.h │ │ │ ├── hvx-floor.h │ │ │ ├── hvx-inverse.h │ │ │ ├── hvx-reduce.h │ │ │ ├── hvx-scale.h │ │ │ ├── hvx-sigmoid.h │ │ │ ├── hvx-sqrt.h │ │ │ ├── hvx-types.h │ │ │ ├── hvx-utils.h │ │ │ ├── main.c │ │ │ ├── matmul-ops.c │ │ │ ├── rope-ops.c │ │ │ ├── set-rows-ops.c │ │ │ ├── softmax-ops.c │ │ │ ├── ssm-conv.c │ │ │ ├── sum-rows-ops.c │ │ │ ├── unary-ops.c │ │ │ ├── worker-pool.c │ │ │ └── worker-pool.h │ │ ├── htp-drv.cpp │ │ ├── htp-drv.h │ │ ├── libdl.h │ │ ├── libggml-htp.inf │ │ └── op-desc.h │ ├── ggml-hip/ │ │ └── CMakeLists.txt │ ├── ggml-impl.h │ ├── ggml-metal/ │ │ ├── CMakeLists.txt │ │ ├── ggml-metal-common.cpp │ │ ├── ggml-metal-common.h │ │ ├── ggml-metal-context.h │ │ ├── ggml-metal-context.m │ │ ├── ggml-metal-device.cpp │ │ ├── ggml-metal-device.h │ │ ├── ggml-metal-device.m │ │ ├── ggml-metal-impl.h │ │ ├── ggml-metal-ops.cpp │ │ ├── ggml-metal-ops.h │ │ ├── ggml-metal.cpp │ │ └── ggml-metal.metal │ ├── ggml-musa/ │ │ ├── CMakeLists.txt │ │ ├── mudnn.cu │ │ └── mudnn.cuh │ ├── ggml-opencl/ │ │ ├── CMakeLists.txt │ │ ├── ggml-opencl.cpp │ │ └── kernels/ │ │ ├── add.cl │ │ ├── add_id.cl │ │ ├── argsort.cl │ │ ├── clamp.cl │ │ ├── concat.cl │ │ ├── conv2d.cl │ │ ├── conv2d_f16_f32.cl │ │ ├── cpy.cl │ │ ├── cumsum.cl │ │ ├── cvt.cl │ │ ├── diag.cl │ │ ├── diag_mask_inf.cl │ │ ├── div.cl │ │ ├── embed_kernel.py │ │ ├── exp.cl │ │ ├── expm1.cl │ │ ├── fill.cl │ │ ├── flash_attn_f16.cl │ │ ├── flash_attn_f32.cl │ │ ├── flash_attn_f32_f16.cl │ │ ├── gelu.cl │ │ ├── gemm_moe_mxfp4_f32.cl │ │ ├── gemm_noshuffle_q4_1_f32.cl │ │ ├── gemv_moe_mxfp4_f32.cl │ │ ├── gemv_noshuffle.cl │ │ ├── gemv_noshuffle_general.cl │ │ ├── gemv_noshuffle_general_q8_0_f32.cl │ │ ├── gemv_noshuffle_q4_1_f32.cl │ │ ├── get_rows.cl │ │ ├── glu.cl │ │ ├── group_norm.cl │ │ ├── im2col_f16.cl │ │ ├── im2col_f32.cl │ │ ├── l2_norm.cl │ │ ├── mean.cl │ │ ├── mul.cl │ │ ├── mul_mat_Ab_Bi_8x4.cl │ │ ├── mul_mat_f16_f32.cl │ │ ├── mul_mm_f16_f32_kq_kqv.cl │ │ ├── mul_mm_f16_f32_l4_lm.cl │ │ ├── mul_mm_f32_f32_l4_lm.cl │ │ ├── mul_mm_q4_0_f32_l4_lm.cl │ │ ├── mul_mm_q4_1_f32_l4_lm.cl │ │ ├── mul_mm_q6_k_f32_l4_lm.cl │ │ ├── mul_mm_q8_0_f32_8x4.cl │ │ ├── mul_mm_q8_0_f32_l4_lm.cl │ │ ├── mul_mv_f16_f16.cl │ │ ├── mul_mv_f16_f32.cl │ │ ├── mul_mv_f16_f32_1row.cl │ │ ├── mul_mv_f16_f32_l4.cl │ │ ├── mul_mv_f32_f32.cl │ │ ├── mul_mv_id_mxfp4_f32.cl │ │ ├── mul_mv_id_mxfp4_f32_flat.cl │ │ ├── mul_mv_id_q4_0_f32_8x_flat.cl │ │ ├── mul_mv_id_q8_0_f32.cl │ │ ├── mul_mv_id_q8_0_f32_flat.cl │ │ ├── mul_mv_mxfp4_f32.cl │ │ ├── mul_mv_mxfp4_f32_flat.cl │ │ ├── mul_mv_q4_0_f32.cl │ │ ├── mul_mv_q4_0_f32_1d_16x_flat.cl │ │ ├── mul_mv_q4_0_f32_1d_8x_flat.cl │ │ ├── mul_mv_q4_0_f32_8x_flat.cl │ │ ├── mul_mv_q4_0_f32_v.cl │ │ ├── mul_mv_q4_1_f32.cl │ │ ├── mul_mv_q4_1_f32_flat.cl │ │ ├── mul_mv_q4_k_f32.cl │ │ ├── mul_mv_q6_k_f32.cl │ │ ├── mul_mv_q6_k_f32_flat.cl │ │ ├── mul_mv_q8_0_f32.cl │ │ ├── mul_mv_q8_0_f32_flat.cl │ │ ├── neg.cl │ │ ├── norm.cl │ │ ├── pad.cl │ │ ├── relu.cl │ │ ├── repeat.cl │ │ ├── rms_norm.cl │ │ ├── rope.cl │ │ ├── scale.cl │ │ ├── set_rows.cl │ │ ├── sigmoid.cl │ │ ├── silu.cl │ │ ├── softmax_4_f16.cl │ │ ├── softmax_4_f32.cl │ │ ├── softmax_f16.cl │ │ ├── softmax_f32.cl │ │ ├── softplus.cl │ │ ├── solve_tri.cl │ │ ├── sqr.cl │ │ ├── sqrt.cl │ │ ├── ssm_conv.cl │ │ ├── sub.cl │ │ ├── sum_rows.cl │ │ ├── tanh.cl │ │ ├── transpose.cl │ │ ├── tri.cl │ │ ├── tsembd.cl │ │ └── upscale.cl │ ├── ggml-openvino/ │ │ ├── .clang-format │ │ ├── CMakeLists.txt │ │ ├── ggml-decoder.cpp │ │ ├── ggml-decoder.h │ │ ├── ggml-openvino-extra.cpp │ │ ├── ggml-openvino-extra.h │ │ ├── ggml-openvino.cpp │ │ ├── ggml-quants.cpp │ │ ├── ggml-quants.h │ │ ├── openvino/ │ │ │ ├── decoder.h │ │ │ ├── frontend.cpp │ │ │ ├── frontend.h │ │ │ ├── input_model.cpp │ │ │ ├── input_model.h │ │ │ ├── node_context.h │ │ │ ├── op/ │ │ │ │ ├── cont.cpp │ │ │ │ ├── cpy.cpp │ │ │ │ ├── flash_attn_ext.cpp │ │ │ │ ├── get_rows.cpp │ │ │ │ ├── glu_geglu.cpp │ │ │ │ ├── glu_swiglu.cpp │ │ │ │ ├── mulmat.cpp │ │ │ │ ├── permute.cpp │ │ │ │ ├── reshape.cpp │ │ │ │ ├── rms_norm.cpp │ │ │ │ ├── rope.cpp │ │ │ │ ├── scale.cpp │ │ │ │ ├── set_rows.cpp │ │ │ │ ├── softmax.cpp │ │ │ │ ├── transpose.cpp │ │ │ │ ├── unary_silu.cpp │ │ │ │ └── view.cpp │ │ │ ├── op_table.cpp │ │ │ ├── op_table.h │ │ │ ├── pass/ │ │ │ │ ├── eliminate_zp.cpp │ │ │ │ ├── eliminate_zp.h │ │ │ │ ├── fuse_to_sdpa.cpp │ │ │ │ ├── fuse_to_sdpa.h │ │ │ │ ├── mark_decompression_convert_constant_folding.h │ │ │ │ ├── squeeze_matmul.cpp │ │ │ │ └── squeeze_matmul.h │ │ │ ├── translate_session.cpp │ │ │ ├── translate_session.h │ │ │ ├── utils.cpp │ │ │ └── utils.h │ │ ├── utils.cpp │ │ └── utils.h │ ├── ggml-opt.cpp │ ├── ggml-quants.c │ ├── ggml-quants.h │ ├── ggml-rpc/ │ │ ├── CMakeLists.txt │ │ └── ggml-rpc.cpp │ ├── ggml-sycl/ │ │ ├── CMakeLists.txt │ │ ├── add-id.cpp │ │ ├── add-id.hpp │ │ ├── backend.hpp │ │ ├── binbcast.cpp │ │ ├── binbcast.hpp │ │ ├── common.cpp │ │ ├── common.hpp │ │ ├── concat.cpp │ │ ├── concat.hpp │ │ ├── conv.cpp │ │ ├── conv.hpp │ │ ├── convert.cpp │ │ ├── convert.hpp │ │ ├── count-equal.cpp │ │ ├── count-equal.hpp │ │ ├── cpy.cpp │ │ ├── cpy.hpp │ │ ├── dequantize.hpp │ │ ├── dmmv.cpp │ │ ├── dmmv.hpp │ │ ├── dpct/ │ │ │ └── helper.hpp │ │ ├── element_wise.cpp │ │ ├── element_wise.hpp │ │ ├── fattn-common.hpp │ │ ├── fattn-tile.cpp │ │ ├── fattn-tile.hpp │ │ ├── fattn-vec.hpp │ │ ├── fattn.cpp │ │ ├── fattn.hpp │ │ ├── gated_delta_net.cpp │ │ ├── gated_delta_net.hpp │ │ ├── gemm.hpp │ │ ├── getrows.cpp │ │ ├── getrows.hpp │ │ ├── ggml-sycl.cpp │ │ ├── gla.cpp │ │ ├── gla.hpp │ │ ├── im2col.cpp │ │ ├── im2col.hpp │ │ ├── mmq.cpp │ │ ├── mmq.hpp │ │ ├── mmvq.cpp │ │ ├── mmvq.hpp │ │ ├── norm.cpp │ │ ├── norm.hpp │ │ ├── outprod.cpp │ │ ├── outprod.hpp │ │ ├── pad.cpp │ │ ├── pad.hpp │ │ ├── pad_reflect_1d.cpp │ │ ├── pad_reflect_1d.hpp │ │ ├── presets.hpp │ │ ├── quantize.hpp │ │ ├── quants.hpp │ │ ├── repeat_back.cpp │ │ ├── repeat_back.hpp │ │ ├── roll.cpp │ │ ├── roll.hpp │ │ ├── rope.cpp │ │ ├── rope.hpp │ │ ├── set.cpp │ │ ├── set.hpp │ │ ├── set_rows.cpp │ │ ├── set_rows.hpp │ │ ├── softmax.cpp │ │ ├── softmax.hpp │ │ ├── ssm_conv.cpp │ │ ├── ssm_conv.hpp │ │ ├── sycl_hw.cpp │ │ ├── sycl_hw.hpp │ │ ├── template-instances/ │ │ │ ├── fattn-tile-instance-dkq112-dv112.cpp │ │ │ ├── fattn-tile-instance-dkq128-dv128.cpp │ │ │ ├── fattn-tile-instance-dkq256-dv256.cpp │ │ │ ├── fattn-tile-instance-dkq40-dv40.cpp │ │ │ ├── fattn-tile-instance-dkq576-dv512.cpp │ │ │ ├── fattn-tile-instance-dkq64-dv64.cpp │ │ │ ├── fattn-tile-instance-dkq72-dv72.cpp │ │ │ ├── fattn-tile-instance-dkq80-dv80.cpp │ │ │ ├── fattn-tile-instance-dkq96-dv96.cpp │ │ │ ├── fattn-vec-instance-f16-f16.cpp │ │ │ ├── fattn-vec-instance-f16-q4_0.cpp │ │ │ ├── fattn-vec-instance-f16-q4_1.cpp │ │ │ ├── fattn-vec-instance-f16-q5_0.cpp │ │ │ ├── fattn-vec-instance-f16-q5_1.cpp │ │ │ ├── fattn-vec-instance-f16-q8_0.cpp │ │ │ ├── fattn-vec-instance-q4_0-f16.cpp │ │ │ ├── fattn-vec-instance-q4_0-q4_0.cpp │ │ │ ├── fattn-vec-instance-q4_0-q4_1.cpp │ │ │ ├── fattn-vec-instance-q4_0-q5_0.cpp │ │ │ ├── fattn-vec-instance-q4_0-q5_1.cpp │ │ │ ├── fattn-vec-instance-q4_0-q8_0.cpp │ │ │ ├── fattn-vec-instance-q4_1-f16.cpp │ │ │ ├── fattn-vec-instance-q4_1-q4_0.cpp │ │ │ ├── fattn-vec-instance-q4_1-q4_1.cpp │ │ │ ├── fattn-vec-instance-q4_1-q5_0.cpp │ │ │ ├── fattn-vec-instance-q4_1-q5_1.cpp │ │ │ ├── fattn-vec-instance-q4_1-q8_0.cpp │ │ │ ├── fattn-vec-instance-q5_0-f16.cpp │ │ │ ├── fattn-vec-instance-q5_0-q4_0.cpp │ │ │ ├── fattn-vec-instance-q5_0-q4_1.cpp │ │ │ ├── fattn-vec-instance-q5_0-q5_0.cpp │ │ │ ├── fattn-vec-instance-q5_0-q5_1.cpp │ │ │ ├── fattn-vec-instance-q5_0-q8_0.cpp │ │ │ ├── fattn-vec-instance-q5_1-f16.cpp │ │ │ ├── fattn-vec-instance-q5_1-q4_0.cpp │ │ │ ├── fattn-vec-instance-q5_1-q4_1.cpp │ │ │ ├── fattn-vec-instance-q5_1-q5_0.cpp │ │ │ ├── fattn-vec-instance-q5_1-q5_1.cpp │ │ │ ├── fattn-vec-instance-q5_1-q8_0.cpp │ │ │ ├── fattn-vec-instance-q8_0-f16.cpp │ │ │ ├── fattn-vec-instance-q8_0-q4_0.cpp │ │ │ ├── fattn-vec-instance-q8_0-q4_1.cpp │ │ │ ├── fattn-vec-instance-q8_0-q5_0.cpp │ │ │ ├── fattn-vec-instance-q8_0-q5_1.cpp │ │ │ └── fattn-vec-instance-q8_0-q8_0.cpp │ │ ├── tsembd.cpp │ │ ├── tsembd.hpp │ │ ├── vecdotq.hpp │ │ ├── wkv.cpp │ │ └── wkv.hpp │ ├── ggml-threading.cpp │ ├── ggml-threading.h │ ├── ggml-virtgpu/ │ │ ├── CMakeLists.txt │ │ ├── apir_cs_ggml-rpc-front.cpp │ │ ├── backend/ │ │ │ ├── CMakeLists.txt │ │ │ ├── apir_cs_ggml-rpc-back.cpp │ │ │ ├── backend-convert.h │ │ │ ├── backend-dispatched-backend.cpp │ │ │ ├── backend-dispatched-buffer-type.cpp │ │ │ ├── backend-dispatched-buffer.cpp │ │ │ ├── backend-dispatched-device.cpp │ │ │ ├── backend-dispatched.cpp │ │ │ ├── backend-dispatched.gen.h │ │ │ ├── backend-dispatched.h │ │ │ ├── backend-virgl-apir.h │ │ │ ├── backend.cpp │ │ │ └── shared/ │ │ │ ├── api_remoting.h │ │ │ ├── apir_backend.gen.h │ │ │ ├── apir_backend.h │ │ │ ├── apir_cs.h │ │ │ ├── apir_cs_ggml.h │ │ │ └── apir_cs_rpc.h │ │ ├── ggml-backend-buffer-type.cpp │ │ ├── ggml-backend-buffer.cpp │ │ ├── ggml-backend-device.cpp │ │ ├── ggml-backend-reg.cpp │ │ ├── ggml-backend.cpp │ │ ├── ggml-remoting.h │ │ ├── ggmlremoting_functions.yaml │ │ ├── include/ │ │ │ └── apir_hw.h │ │ ├── regenerate_remoting.py │ │ ├── virtgpu-apir.h │ │ ├── virtgpu-forward-backend.cpp │ │ ├── virtgpu-forward-buffer-type.cpp │ │ ├── virtgpu-forward-buffer.cpp │ │ ├── virtgpu-forward-device.cpp │ │ ├── virtgpu-forward-impl.h │ │ ├── virtgpu-forward.gen.h │ │ ├── virtgpu-shm.cpp │ │ ├── virtgpu-shm.h │ │ ├── virtgpu-utils.cpp │ │ ├── virtgpu-utils.h │ │ ├── virtgpu.cpp │ │ └── virtgpu.h │ ├── ggml-vulkan/ │ │ ├── CMakeLists.txt │ │ ├── cmake/ │ │ │ └── host-toolchain.cmake.in │ │ ├── ggml-vulkan.cpp │ │ └── vulkan-shaders/ │ │ ├── CMakeLists.txt │ │ ├── abs.comp │ │ ├── acc.comp │ │ ├── add.comp │ │ ├── add1.comp │ │ ├── add_id.comp │ │ ├── arange.comp │ │ ├── argmax.comp │ │ ├── argsort.comp │ │ ├── argsort_large.comp │ │ ├── ceil.comp │ │ ├── clamp.comp │ │ ├── concat.comp │ │ ├── contig_copy.comp │ │ ├── conv2d_dw.comp │ │ ├── conv2d_mm.comp │ │ ├── conv_transpose_1d.comp │ │ ├── copy.comp │ │ ├── copy_from_quant.comp │ │ ├── copy_to_quant.comp │ │ ├── copy_transpose.comp │ │ ├── cos.comp │ │ ├── count_equal.comp │ │ ├── count_experts.comp │ │ ├── cumsum.comp │ │ ├── cumsum_multipass1.comp │ │ ├── cumsum_multipass2.comp │ │ ├── dequant_f32.comp │ │ ├── dequant_funcs.glsl │ │ ├── dequant_funcs_cm2.glsl │ │ ├── dequant_head.glsl │ │ ├── dequant_iq1_m.comp │ │ ├── dequant_iq1_s.comp │ │ ├── dequant_iq2_s.comp │ │ ├── dequant_iq2_xs.comp │ │ ├── dequant_iq2_xxs.comp │ │ ├── dequant_iq3_s.comp │ │ ├── dequant_iq3_xxs.comp │ │ ├── dequant_iq4_nl.comp │ │ ├── dequant_iq4_xs.comp │ │ ├── dequant_mxfp4.comp │ │ ├── dequant_q2_k.comp │ │ ├── dequant_q3_k.comp │ │ ├── dequant_q4_0.comp │ │ ├── dequant_q4_1.comp │ │ ├── dequant_q4_k.comp │ │ ├── dequant_q5_0.comp │ │ ├── dequant_q5_1.comp │ │ ├── dequant_q5_k.comp │ │ ├── dequant_q6_k.comp │ │ ├── dequant_q8_0.comp │ │ ├── diag.comp │ │ ├── diag_mask_inf.comp │ │ ├── div.comp │ │ ├── elu.comp │ │ ├── exp.comp │ │ ├── feature-tests/ │ │ │ ├── bfloat16.comp │ │ │ ├── coopmat.comp │ │ │ ├── coopmat2.comp │ │ │ └── integer_dot.comp │ │ ├── fill.comp │ │ ├── flash_attn.comp │ │ ├── flash_attn_base.glsl │ │ ├── flash_attn_cm1.comp │ │ ├── flash_attn_cm2.comp │ │ ├── flash_attn_mask_opt.comp │ │ ├── flash_attn_split_k_reduce.comp │ │ ├── floor.comp │ │ ├── gated_delta_net.comp │ │ ├── geglu.comp │ │ ├── geglu_erf.comp │ │ ├── geglu_quick.comp │ │ ├── gelu.comp │ │ ├── gelu_erf.comp │ │ ├── gelu_quick.comp │ │ ├── generic_binary_head.glsl │ │ ├── generic_head.glsl │ │ ├── generic_unary_head.glsl │ │ ├── get_rows.comp │ │ ├── get_rows_quant.comp │ │ ├── glu_head.glsl │ │ ├── glu_main.glsl │ │ ├── group_norm.comp │ │ ├── hardsigmoid.comp │ │ ├── hardswish.comp │ │ ├── im2col.comp │ │ ├── im2col_3d.comp │ │ ├── l2_norm.comp │ │ ├── leaky_relu.comp │ │ ├── log.comp │ │ ├── mul.comp │ │ ├── mul_mat_split_k_reduce.comp │ │ ├── mul_mat_vec.comp │ │ ├── mul_mat_vec_base.glsl │ │ ├── mul_mat_vec_iface.glsl │ │ ├── mul_mat_vec_iq1_m.comp │ │ ├── mul_mat_vec_iq1_s.comp │ │ ├── mul_mat_vec_iq2_s.comp │ │ ├── mul_mat_vec_iq2_xs.comp │ │ ├── mul_mat_vec_iq2_xxs.comp │ │ ├── mul_mat_vec_iq3_s.comp │ │ ├── mul_mat_vec_iq3_xxs.comp │ │ ├── mul_mat_vec_nc.comp │ │ ├── mul_mat_vec_p021.comp │ │ ├── mul_mat_vec_q2_k.comp │ │ ├── mul_mat_vec_q3_k.comp │ │ ├── mul_mat_vec_q4_k.comp │ │ ├── mul_mat_vec_q5_k.comp │ │ ├── mul_mat_vec_q6_k.comp │ │ ├── mul_mat_vecq.comp │ │ ├── mul_mat_vecq_funcs.glsl │ │ ├── mul_mm.comp │ │ ├── mul_mm_cm2.comp │ │ ├── mul_mm_funcs.glsl │ │ ├── mul_mm_id_funcs.glsl │ │ ├── mul_mmq.comp │ │ ├── mul_mmq_funcs.glsl │ │ ├── mul_mmq_shmem_types.glsl │ │ ├── multi_add.comp │ │ ├── neg.comp │ │ ├── norm.comp │ │ ├── opt_step_adamw.comp │ │ ├── opt_step_sgd.comp │ │ ├── pad.comp │ │ ├── pool2d.comp │ │ ├── quantize_q8_1.comp │ │ ├── reglu.comp │ │ ├── relu.comp │ │ ├── repeat.comp │ │ ├── repeat_back.comp │ │ ├── rms_norm.comp │ │ ├── rms_norm_back.comp │ │ ├── rms_norm_partials.comp │ │ ├── roll.comp │ │ ├── rope_funcs.glsl │ │ ├── rope_head.glsl │ │ ├── rope_multi.comp │ │ ├── rope_neox.comp │ │ ├── rope_norm.comp │ │ ├── rope_params.glsl │ │ ├── rope_vision.comp │ │ ├── round.comp │ │ ├── rte.glsl │ │ ├── scale.comp │ │ ├── sgn.comp │ │ ├── sigmoid.comp │ │ ├── silu.comp │ │ ├── silu_back.comp │ │ ├── sin.comp │ │ ├── soft_max.comp │ │ ├── soft_max_back.comp │ │ ├── soft_max_large1.comp │ │ ├── soft_max_large2.comp │ │ ├── soft_max_large3.comp │ │ ├── soft_max_large_common.glsl │ │ ├── softplus.comp │ │ ├── solve_tri.comp │ │ ├── sqrt.comp │ │ ├── square.comp │ │ ├── ssm_conv.comp │ │ ├── ssm_scan.comp │ │ ├── step.comp │ │ ├── sub.comp │ │ ├── sum_rows.comp │ │ ├── sum_rows.glsl │ │ ├── swiglu.comp │ │ ├── swiglu_oai.comp │ │ ├── tanh.comp │ │ ├── timestep_embedding.comp │ │ ├── topk_argsort.comp │ │ ├── topk_moe.comp │ │ ├── topk_nary_search.comp │ │ ├── tri.comp │ │ ├── trunc.comp │ │ ├── types.glsl │ │ ├── upscale.comp │ │ ├── utils.glsl │ │ ├── vulkan-shaders-gen.cpp │ │ ├── wkv6.comp │ │ ├── wkv7.comp │ │ └── xielu.comp │ ├── ggml-webgpu/ │ │ ├── CMakeLists.txt │ │ ├── ggml-webgpu-shader-lib.hpp │ │ ├── ggml-webgpu.cpp │ │ ├── pre_wgsl.hpp │ │ └── wgsl-shaders/ │ │ ├── argmax.wgsl │ │ ├── argsort.wgsl │ │ ├── argsort_merge.wgsl │ │ ├── binary.wgsl │ │ ├── common_decls.tmpl │ │ ├── concat.wgsl │ │ ├── cpy.tmpl.wgsl │ │ ├── cumsum.wgsl │ │ ├── embed_wgsl.py │ │ ├── flash_attn.wgsl │ │ ├── get_rows.wgsl │ │ ├── glu.tmpl.wgsl │ │ ├── memset.wgsl │ │ ├── mul_mat.wgsl │ │ ├── mul_mat_decls.tmpl │ │ ├── mul_mat_reg_tile.wgsl │ │ ├── mul_mat_subgroup_matrix.wgsl │ │ ├── mul_mat_vec.wgsl │ │ ├── pad.wgsl │ │ ├── repeat.wgsl │ │ ├── rms_norm.wgsl │ │ ├── rope.tmpl.wgsl │ │ ├── scale.wgsl │ │ ├── set_rows.wgsl │ │ ├── soft_max.tmpl.wgsl │ │ ├── sum_rows.wgsl │ │ └── unary.wgsl │ ├── ggml-zdnn/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── common.hpp │ │ ├── ggml-zdnn.cpp │ │ ├── mmf.cpp │ │ ├── mmf.hpp │ │ ├── utils.cpp │ │ └── utils.hpp │ ├── ggml-zendnn/ │ │ ├── CMakeLists.txt │ │ └── ggml-zendnn.cpp │ ├── ggml.c │ ├── ggml.cpp │ └── gguf.cpp └── tests/ ├── CMakeLists.txt ├── test-arange.cpp ├── test-backend-ops.cpp ├── test-cont.c ├── test-conv-transpose-1d.cpp ├── test-conv-transpose.c ├── test-conv1d-dw-c1.cpp ├── test-conv1d-dw-c2.cpp ├── test-conv1d.cpp ├── test-conv2d-dw.cpp ├── test-conv2d.cpp ├── test-customop.c ├── test-dup.c ├── test-interpolate.cpp ├── test-opt.cpp ├── test-pad-reflect-1d.cpp ├── test-pool.c ├── test-quantize-fns.cpp ├── test-quantize-perf.cpp ├── test-rel-pos.c ├── test-roll.cpp └── test-timestep_embedding.cpp