]> git.djapps.eu Git - pkg/ggml/sources/ggml/commit
CANN: add operator fusion support for ADD + RMS_NORM (llama/17512)
authorChenguang Li <redacted>
Mon, 5 Jan 2026 07:38:18 +0000 (15:38 +0800)
committerGeorgi Gerganov <redacted>
Sun, 11 Jan 2026 09:02:08 +0000 (11:02 +0200)
commit34e1e6cd3ad6ccfee4aeab735cc8540d5aa0b133
treeb3974e22d6a6c95660f59558e59696747e607ac5
parent175f6455f8c8a8a23b793fb10effb8356c5fbfc6
CANN: add operator fusion support for ADD + RMS_NORM (llama/17512)

This commit implements operator fusion for ADD + RMS_NORM operations
in the CANN backend to reduce memory access overhead and improve
performance. The fusion is controlled by the GGML_CANN_OPERATOR_FUSION
environment variable (default: false).

Changes:
- Implement ggml_cann_op_add_rms_norm_fused() using ACLNN AddRmsNorm
- Add ggml_cann_can_fuse() to check fusion eligibility
- Integrate fusion logic into computation graph evaluation
- Add test cases for ADD + RMS_NORM fusion
- Update documentation with new environment variable

The fusion combines ADD and RMS_NORM into a single kernel call,
which is more efficient than executing them separately.
src/ggml-cann/aclnn_ops.cpp
src/ggml-cann/aclnn_ops.h
src/ggml-cann/ggml-cann.cpp
tests/test-backend-ops.cpp