register qnn backend

This commit is contained in:
hongruichen 2024-07-17 20:53:53 +08:00
parent eed960575f
commit 454deef83c
3 changed files with 6 additions and 5 deletions

View file

@ -18,8 +18,6 @@ enum QNNBackend {
// QNN and original GGML // QNN and original GGML
}; };
GGML_API int ggml_backend_qnn_reg_devices(void);
/** /**
* *
* @param device 0: QNN_BACKEND_CPU 1: QNN_BACKEND_GPU 2: * @param device 0: QNN_BACKEND_CPU 1: QNN_BACKEND_GPU 2:

View file

@ -445,6 +445,11 @@ GGML_CALL static void ggml_backend_registry_init(void) {
extern GGML_CALL void ggml_backend_kompute_reg_devices(void); extern GGML_CALL void ggml_backend_kompute_reg_devices(void);
ggml_backend_kompute_reg_devices(); ggml_backend_kompute_reg_devices();
#endif #endif
#ifdef GGML_USE_QNN
extern GGML_CALL void ggml_backend_qnn_reg_devices(void);
ggml_backend_qnn_reg_devices();
#endif
} }
GGML_CALL void ggml_backend_register(const char * name, ggml_backend_init_fn init_fn, ggml_backend_buffer_type_t default_buffer_type, void * user_data) { GGML_CALL void ggml_backend_register(const char * name, ggml_backend_init_fn init_fn, ggml_backend_buffer_type_t default_buffer_type, void * user_data) {

View file

@ -534,13 +534,11 @@ ggml_backend_t ggml_backend_qnn_init(size_t device, const char *qnn_lib_path) {
return qnn_backend; return qnn_backend;
} }
int ggml_backend_qnn_reg_devices() { extern "C" GGML_CALL void ggml_backend_qnn_reg_devices() {
for (size_t idx = 0; idx < GGML_QNN_MAX_DEVICES; idx++) { for (size_t idx = 0; idx < GGML_QNN_MAX_DEVICES; idx++) {
char name[GGML_MAX_NAME]; char name[GGML_MAX_NAME];
ggml_backend_qnn_get_device_description(idx, name, GGML_MAX_NAME); ggml_backend_qnn_get_device_description(idx, name, GGML_MAX_NAME);
ggml_backend_register(name, ggml_backend_qnn_reg_init, ggml_backend_qnn_buffer_type(idx), ggml_backend_register(name, ggml_backend_qnn_reg_init, ggml_backend_qnn_buffer_type(idx),
(void *)(intptr_t)idx); (void *)(intptr_t)idx);
} }
return GGML_QNN_MAX_DEVICES;
} }