whisper.cpp/ggml/src/ggml-metal
Gabe Goodhart 307dc525bb
metal: SSM kernel improvements (llama/17876)
* feat: Add a batched version of ssm_conv

This was done using Claude Code. It found a number of optimizations around
how the threads were organized, resulting in a huge performance boost!

Branch: Mamba2SSD

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* feat: Optimized SSM_SCAN kernel for metal

This used Claude Code and resulted in a modest performance improvement
while maintaining correctness.

Branch: Mamba2SSD

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* test: Add test-backend-ops perf tests for SSM_CONV

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* test: Real representitive tests for SSM_CONV

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* refactor: Use function constant for ssm_conv batch size

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* test: backend op tests for ssm_scan from granite4 1b-h

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* style: remove commented out templates

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* feat: float4 version of ssm_conv_batched

Branch: SSMKernelImprovements

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

* fix: Add missing ggml_metal_cv_free

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>

---------

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
2025-12-12 17:53:23 +02:00
..
CMakeLists.txt metal : refactor + optimize v2 (llama/15995) 2025-09-20 13:46:10 +03:00
ggml-metal-common.cpp metal : fix loop bound in ggml_mem_ranges (llama/16412) 2025-10-12 11:16:23 +03:00
ggml-metal-common.h metal : refactor + optimize v2 (llama/15995) 2025-09-20 13:46:10 +03:00
ggml-metal-context.h metal : refactor + optimize v2 (llama/15995) 2025-09-20 13:46:10 +03:00
ggml-metal-context.m metal : add residency sets keep-alive heartbeat (llama/17766) 2025-12-12 17:53:18 +02:00
ggml-metal-device.cpp metal: SSM kernel improvements (llama/17876) 2025-12-12 17:53:23 +02:00
ggml-metal-device.h metal: SSM kernel improvements (llama/17876) 2025-12-12 17:53:23 +02:00
ggml-metal-device.m ggml : add circular tiling support to pad, for Vulkan, CUDA, and CPU (used for making seamless textures) (llama/16985) 2025-12-12 17:53:20 +02:00
ggml-metal-impl.h metal: SSM kernel improvements (llama/17876) 2025-12-12 17:53:23 +02:00
ggml-metal-ops.cpp metal: SSM kernel improvements (llama/17876) 2025-12-12 17:53:23 +02:00
ggml-metal-ops.h metal: TRI, FILL, EXPM1, SOFTPLUS (llama/16623) 2025-12-12 17:53:17 +02:00
ggml-metal.cpp ggml : add ggml_top_k (llama/17365) 2025-12-12 17:53:08 +02:00
ggml-metal.metal metal: SSM kernel improvements (llama/17876) 2025-12-12 17:53:23 +02:00