Skip to content

Conversation

@CarefreeSun
Copy link

@CarefreeSun CarefreeSun commented Nov 24, 2025

描述 (Description)

本 PR 在 ggml 的 CANN 后端中添加对 CROSS_ENTROPY_LOSS的支持。

变更摘要:
在 ggml/src/ggml-cann/aclnn_ops.h 中增加函数声明。
在 ggml/src/ggml-cann/aclnn_ops.cpp 中增加函数实现。
在 ggml/src/ggml-cann/ggml-cann.cpp 中:
在 ggml_cann_compute_forward 的 switch-case 中注册算子;
在 ggml_backend_cann_supports_op 中使算子返回 true。

测试 (Testing)

测试步骤:

  1. 执行编译:
    cmake -B build -DGGML_CANN=on -DCMAKE_BUILD_TYPE=release
    cmake --build build --config release -j

  2. 运行测试
    ./bin/test-backend-ops test -b CANN0 -o CROSS_ENTROPY_LOSS

测试结果:
5a57f52335a48f53c99a6dcb5f4859e

备注 (Notes)

当前仅实现并测试 F32。若需要支持 F16、BF16 或量化类型,需增加转换/降精逻辑或在后端实现相应 kernel。

经测试,cninfer的环境似乎不支持cross entropy loss算子的运行,只能使用cntrain集群的节点进行实验。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant