@@ -500,7 +500,11 @@ bool ggml_backend_dev_supports_buft(ggml_backend_dev_t device, ggml_backend_buff
500
500
}
501
501
502
502
bool ggml_backend_dev_offload_op (ggml_backend_dev_t device, const struct ggml_tensor * op) {
503
- return device->iface .offload_op (device, op);
503
+ if (device->iface .offload_op != NULL ) {
504
+ return device->iface .offload_op (device, op);
505
+ }
506
+
507
+ return false ;
504
508
}
505
509
506
510
// Backend (reg)
@@ -534,6 +538,10 @@ void * ggml_backend_reg_get_proc_address(ggml_backend_reg_t reg, const char * na
534
538
#include " ggml-metal.h"
535
539
#endif
536
540
541
+ #ifdef GGML_USE_BLAS
542
+ #include " ggml-blas.h"
543
+ #endif
544
+
537
545
struct ggml_backend_registry {
538
546
std::vector<ggml_backend_reg_t > backends;
539
547
std::vector<ggml_backend_dev_t > devices;
@@ -545,10 +553,13 @@ struct ggml_backend_registry {
545
553
#ifdef GGML_USE_METAL
546
554
register_backend (ggml_backend_metal_reg ());
547
555
#endif
548
-
549
- register_backend (ggml_backend_cpu_reg ());
556
+ #ifdef GGML_USE_BLAS
557
+ register_backend (ggml_backend_blas_reg ());
558
+ #endif
550
559
551
560
// TODO: sycl, vulkan, kompute, cann
561
+
562
+ register_backend (ggml_backend_cpu_reg ());
552
563
}
553
564
554
565
void register_backend (ggml_backend_reg_t reg) {
@@ -1229,16 +1240,22 @@ static ggml_backend_dev_t ggml_backend_cpu_reg_get_device(ggml_backend_reg_t reg
1229
1240
};
1230
1241
1231
1242
return &ggml_backend_cpu_device;
1243
+ }
1244
+
1245
+ static void * ggml_backend_cpu_get_proc_address (ggml_backend_reg_t reg, const char * name) {
1246
+ if (strcmp (name, " ggml_backend_set_n_threads" ) == 0 ) {
1247
+ return (void *)ggml_backend_cpu_set_n_threads;
1248
+ }
1249
+ return NULL ;
1232
1250
1233
1251
GGML_UNUSED (reg);
1234
- GGML_UNUSED (index);
1235
1252
}
1236
1253
1237
1254
static const struct ggml_backend_reg_i ggml_backend_cpu_reg_i = {
1238
1255
/* .get_name = */ ggml_backend_cpu_reg_get_name,
1239
1256
/* .get_device_count = */ ggml_backend_cpu_reg_get_device_count,
1240
1257
/* .get_device = */ ggml_backend_cpu_reg_get_device,
1241
- /* .get_proc_address = */ NULL ,
1258
+ /* .get_proc_address = */ ggml_backend_cpu_get_proc_address ,
1242
1259
};
1243
1260
1244
1261
ggml_backend_reg_t ggml_backend_cpu_reg (void ) {
0 commit comments