]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
ggml : add mmla kernels for quantized GEMM (#4966)
authorsnadampal <redacted>
Sun, 11 Feb 2024 13:22:33 +0000 (07:22 -0600)
committerGitHub <redacted>
Sun, 11 Feb 2024 13:22:33 +0000 (15:22 +0200)
commita07d0fee1f05c5c1dc49948ae1a3293db017275f
tree06614ff1364269493e4853333ced56802abd7284
parente4640d8fdf56f14a6db3d092bcd3d2d315cb5d04
ggml : add mmla kernels for quantized GEMM (#4966)

* ggml: aarch64: implement smmla kernel for q8_0_q8_0 quantized gemm

armv8.2-a and above supports MMLA instructions that have higher
throughput than DOT. this commit adds mmla kernel for
q8_0_q8_0 gemm. The feature is enabled if the platform supports
"__ARM_FEATURE_MATMUL_INT8"

On AWS Graviton3 processors this kernel resulted up to 1.5x
improvement for prompt evaluation throughput compared to the
default sdot kernel.

* ggml: aarch64: implement smmla kernel for q4_0_q8_0 quantized gemm

armv8.2-a and above supports MMLA instructions that have higher
throughput than DOT. this commit adds mmla kernel for
q4_0_q8_0 gemm. The feature is enabled if the platform supports
"__ARM_FEATURE_MATMUL_INT8"

On AWS Graviton3 processors this kernel resulted up to 1.5x
improvement for prompt evaluation throughput compared to the
default sdot kernel.

* ggml: aarch64: implement smmla kernel for q4_1_q8_1 quantized gemm

armv8.2-a and above supports MMLA instructions that have higher
throughput than DOT. this commit adds mmla kernel for
q4_1_q8_1 gemm. The feature is enabled if the platform supports
"__ARM_FEATURE_MATMUL_INT8"

On AWS Graviton3 processors this kernel resulted up to 1.5x
improvement for prompt evaluation throughput compared to the
default sdot kernel.

* ggml: update unit tests for the new vec_dot interface

* llama.cpp: add MATMUL_INT8 capability to system_info
common/common.cpp
ggml-quants.c
ggml-quants.h
ggml.c
ggml.h
llama.cpp
pocs/vdot/q8dot.cpp
pocs/vdot/vdot.cpp
tests/test-quantize-fns.cpp
tests/test-quantize-perf.cpp