@@ -495,7 +495,11 @@ bool ggml_backend_dev_supports_buft(ggml_backend_dev_t device, ggml_backend_buff
495495}
496496
497497bool ggml_backend_dev_offload_op (ggml_backend_dev_t device, const struct ggml_tensor * op) {
498- return device->iface .offload_op (device, op);
498+ if (device->iface .offload_op != NULL ) {
499+ return device->iface .offload_op (device, op);
500+ }
501+
502+ return false ;
499503}
500504
501505// Backend (reg)
@@ -525,6 +529,10 @@ void * ggml_backend_reg_get_proc_address(ggml_backend_reg_t reg, const char * na
525529#include " ggml-cuda.h"
526530#endif
527531
532+ #ifdef GGML_USE_BLAS
533+ #include " ggml-blas.h"
534+ #endif
535+
528536struct ggml_backend_registry {
529537 std::vector<ggml_backend_reg_t > backends;
530538 std::vector<ggml_backend_dev_t > devices;
@@ -534,6 +542,10 @@ struct ggml_backend_registry {
534542 register_backend (ggml_backend_cuda_reg ());
535543#endif
536544
545+ #ifdef GGML_USE_BLAS
546+ register_backend (ggml_backend_blas_reg ());
547+ #endif
548+
537549 register_backend (ggml_backend_cpu_reg ());
538550
539551 // TODO: sycl, metal, vulkan, kompute, cann
@@ -1221,11 +1233,21 @@ static ggml_backend_dev_t ggml_backend_cpu_reg_get_device(ggml_backend_reg_t reg
12211233 GGML_UNUSED (index);
12221234}
12231235
1236+ static void * ggml_backend_cpu_get_proc_address (ggml_backend_reg_t reg, const char * name) {
1237+ if (strcmp (name, " ggml_backend_set_n_threads" ) == 0 ) {
1238+ return (void *)ggml_backend_cpu_set_n_threads;
1239+ }
1240+ return NULL ;
1241+
1242+ GGML_UNUSED (reg);
1243+ GGML_UNUSED (name);
1244+ }
1245+
12241246static const struct ggml_backend_reg_i ggml_backend_cpu_reg_i = {
12251247 /* .get_name = */ ggml_backend_cpu_reg_get_name,
12261248 /* .get_device_count = */ ggml_backend_cpu_reg_get_device_count,
12271249 /* .get_device = */ ggml_backend_cpu_reg_get_device,
1228- /* .get_proc_address = */ NULL ,
1250+ /* .get_proc_address = */ ggml_backend_cpu_get_proc_address ,
12291251};
12301252
12311253ggml_backend_reg_t ggml_backend_cpu_reg (void ) {
0 commit comments