]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
CANN: Use smart pointers to manage ACL objects (llama/17238)
authorhipudding <redacted>
Mon, 17 Nov 2025 00:43:59 +0000 (08:43 +0800)
committerGeorgi Gerganov <redacted>
Mon, 17 Nov 2025 19:05:46 +0000 (21:05 +0200)
commitd3f5487464f8c1af2bcc0d9364ae4440692f5022
treecb594ebfc0925a9be57946cd4fb60058ad790a0b
parent9d95d9a1ee31bdfbec5f56af8841c08e344638c3
CANN: Use smart pointers to manage ACL objects (llama/17238)

* CANN: Use smart pointers to manage ACL objects

Previously, ACL objects were managed via manual destruction, which
led to multiple memory-leak issues during runtime. This patch replaces
manual memory management with smart pointers so that ACL objects
are properly released and ownership is clearly defined.

Note that the ownership of an ACL object belongs to the function
that creates it. Other internal functions should operate on these ACL
objects using raw pointers to avoid unintended ownership transfers.

Additionally, since aclTensorList automatically frees its contained
aclTensor objects, any aclTensor added to a tensor list must release
ownership to avoid double free operations.

This PR also removes the asynchronous task submission mechanism.
Due to changes in recent CANN versions, tiling time has significantly
decreased. Even with a dual-thread submission model, the dispatch
overhead still falls on the critical path, making async submission
less beneficial. Moreover, aclGraph support provides a much better
path to reducing operator dispatch latency.

* CANN: resolve review comments
ggml/src/ggml-cann/Doxyfile [deleted file]
ggml/src/ggml-cann/acl_tensor.cpp
ggml/src/ggml-cann/acl_tensor.h
ggml/src/ggml-cann/aclnn_ops.cpp
ggml/src/ggml-cann/aclnn_ops.h
ggml/src/ggml-cann/common.h
ggml/src/ggml-cann/ggml-cann.cpp