]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/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>
Wed, 14 Jan 2026 07:11:59 +0000 (09:11 +0200)
commit1d657effe392fc5b302a5cbada9f5e10332bc6af
tree2111d3f2012fb9f86ff153ba217132b9742a71f6
parent4d6a3fb00d8c4f2bea91c52958f6ffd4d7fa2adf
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.
ggml/src/ggml-cann/aclnn_ops.cpp
ggml/src/ggml-cann/aclnn_ops.h
ggml/src/ggml-cann/ggml-cann.cpp