]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
CANN: implement quantized MUL_MAT_ID for MoE models (#19228)
authorhipudding <redacted>
Tue, 10 Feb 2026 06:18:59 +0000 (14:18 +0800)
committerGitHub <redacted>
Tue, 10 Feb 2026 06:18:59 +0000 (14:18 +0800)
commit52e38faf8c1c8e0d32fca7a43d5efd3a2f5efdc8
tree3592c4fbdcd7c651efe0b86882353c334a339f07
parenta0d585537cb7f0352c4859acbad64d5084dbe964
CANN: implement quantized MUL_MAT_ID for MoE models (#19228)

Implement ggml_cann_mul_mat_id_quant function to support quantized matrix
multiplication for Mixture of Experts (MoE) architectures on CANN backend.

Key features:
- Support Q4_0 and Q8_0 quantized weight formats
- Use IndexSelect to dynamically route expert-specific weights based on indices
- Leverage WeightQuantBatchMatmulV2 for efficient quantized computation
- Handle automatic F16 type conversion for hardware compatibility
- Support both per-expert and broadcast input modes

Implementation details:
- Extract expert weights and scales using CANN IndexSelect operation
- Process each batch and expert combination independently
- Create proper tensor views with correct stride for matmul operations
- Automatic input/output type casting to/from F16 as needed

Testing: All test cases passed for supported types (F32, F16, Q4_0, Q8_0).
ggml/src/ggml-cann/aclnn_ops.cpp