Skip to content

Commit 1657447

Browse files
committed
[CANN] Adapt to dynamically loadable backends mechanism
1 parent 45f0976 commit 1657447

File tree

4 files changed

+260
-119
lines changed

4 files changed

+260
-119
lines changed

ggml/include/ggml-cann.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ extern "C" {
3333
* @brief Maximum number of CANN devices supported.
3434
*/
3535
#define GGML_CANN_MAX_DEVICES 16
36+
#define GGML_CANN_NAME "CANN"
37+
38+
GGML_API ggml_backend_reg_t ggml_backend_cann_reg(void);
3639

3740
/**
3841
* @brief Initializes the CANN backend for a specified device.

ggml/src/ggml-backend.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,10 @@ void * ggml_backend_reg_get_proc_address(ggml_backend_reg_t reg, const char * na
561561
# include "ggml-amx.h"
562562
#endif
563563

564+
#ifdef GGML_USE_CANN
565+
#include "ggml-cann.h"
566+
#endif
567+
564568
struct ggml_backend_registry {
565569
std::vector<ggml_backend_reg_t> backends;
566570
std::vector<ggml_backend_dev_t> devices;
@@ -584,11 +588,15 @@ struct ggml_backend_registry {
584588
#ifdef GGML_USE_RPC
585589
register_backend(ggml_backend_rpc_reg());
586590
#endif
591+
587592
#ifdef GGML_USE_AMX
588593
register_backend(ggml_backend_amx_reg());
589594
#endif
590595

591-
// TODO: kompute, cann
596+
#ifdef GGML_USE_CANN
597+
register_backend(ggml_backend_cann_reg());
598+
#endif
599+
// TODO: kompute
592600

593601
register_backend(ggml_backend_cpu_reg());
594602
}

0 commit comments

Comments
 (0)