]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
CANN: add operator fusion support for ADD + RMS_NORM (#17512)
authorChenguang Li <redacted>
Mon, 5 Jan 2026 07:38:18 +0000 (15:38 +0800)
committerGitHub <redacted>
Mon, 5 Jan 2026 07:38:18 +0000 (15:38 +0800)
commit67e3f6f60155870d4b5ce727515aa81e5a7b4753
treeb4fba7baa01218f0895fa85f49f8c3289b2998a1
parent92ac1e016b4327bb58f62a098cd6bc484d9d6cbf
CANN: add operator fusion support for ADD + RMS_NORM (#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.
docs/backend/CANN.md
ggml/src/ggml-cann/aclnn_ops.cpp
ggml/src/ggml-cann/aclnn_ops.h
ggml/src/ggml-cann/ggml-cann.cpp
tests/test-backend-ops.cpp