@@ -877,7 +877,7 @@ static void ggml_backend_dnnl_buffer_init_tensor(ggml_backend_buffer_t buffer, g
877877 if (tensor->view_src != NULL && tensor->view_offs == 0 ) {
878878 tensor->extra = tensor->view_src ->extra ;
879879 } else {
880- printf (" op:%s-'%s'\n " , ggml_op_desc (tensor), tensor->name );
880+ // printf(" op:%s-'%s'\n", ggml_op_desc(tensor), tensor->name);
881881 auto buf = tensor->view_src != NULL ? tensor->view_src ->buffer : tensor->buffer ;
882882 ggml_backend_dnnl_buffer_context* ctx = (ggml_backend_dnnl_buffer_context*)buf->context ;
883883 dnnl::memory::dim offset = (uintptr_t )tensor->data - DNNL_BUFFER_BASE;
@@ -976,7 +976,6 @@ GGML_CALL static ggml_backend_buffer_type_t ggml_backend_dnnl_get_default_buffer
976976 /* .get_alignment = */ ggml_backend_dnnl_buffer_type_get_alignment,
977977 /* .get_max_size = */ NULL , // defaults to SIZE_MAX
978978 /* .get_alloc_size = */ NULL , // defaults to ggml_nbytes
979- /* .supports_backend = */ ggml_backend_dnnl_buffer_type_supports_backend,
980979 /* .is_host = */ NULL , // defaults to false // ggml_backend_dnnl_buffer_type_is_host,
981980 },
982981 /* .context = */ backend->context ,
@@ -993,12 +992,6 @@ GGML_CALL static const char * ggml_backend_dnnl_buffer_type_get_name(ggml_backen
993992 GGML_UNUSED (buft);
994993}
995994
996- GGML_CALL static bool ggml_backend_dnnl_buffer_type_supports_backend (ggml_backend_buffer_type_t buft, ggml_backend_t backend) {
997- return ggml_backend_is_dnnl (backend) || ggml_backend_is_cpu (backend);
998-
999- GGML_UNUSED (buft);
1000- }
1001-
1002995GGML_CALL static bool ggml_backend_dnnl_buffer_type_is_host (ggml_backend_buffer_type_t buft) {
1003996 return true ;
1004997
@@ -1015,7 +1008,6 @@ GGML_CALL static ggml_backend_buffer_type_t ggml_backend_dnnl_get_default_buffer
10151008 /* .get_alignment = */ cpu_buffer_type->iface .get_alignment , // ggml_backend_cpu_buffer_type_get_alignment,
10161009 /* .get_max_size = */ NULL , // defaults to SIZE_MAX
10171010 /* .get_alloc_size = */ NULL , // defaults to ggml_nbytes
1018- /* .supports_backend = */ ggml_backend_dnnl_buffer_type_supports_backend,
10191011 /* .is_host = */ ggml_backend_dnnl_buffer_type_is_host,
10201012 },
10211013 /* .context = */ NULL ,
@@ -1067,6 +1059,20 @@ GGML_CALL static bool ggml_backend_dnnl_supports_op(ggml_backend_t backend, cons
10671059 return ggml_backend_dnnl_node_supported (backend, op);
10681060}
10691061
1062+ static bool ggml_backend_buft_is_dnnl (ggml_backend_buffer_type_t buft) {
1063+ return buft->iface .get_name == ggml_backend_dnnl_buffer_type_get_name;
1064+ }
1065+
1066+ GGML_CALL static bool ggml_backend_dnnl_supports_buft (ggml_backend_t backend, ggml_backend_buffer_type_t buft) {
1067+ GGML_UNUSED (backend);
1068+ #if USE_DNNL_BUFFER
1069+ return ggml_backend_buft_is_dnnl (buft);
1070+ #else
1071+ return ggml_backend_buft_is_dnnl (buft) || ggml_backend_buft_is_host (buft);
1072+ #endif
1073+ }
1074+
1075+
10701076static struct ggml_backend_i dnnl_backend_i = {
10711077 /* .get_name = */ ggml_backend_dnnl_name,
10721078 /* .free = */ ggml_backend_dnnl_free,
@@ -1077,15 +1083,17 @@ static struct ggml_backend_i dnnl_backend_i = {
10771083 /* .synchronize = */ ggml_backend_dnnl_synchronize,
10781084 /* .graph_plan_create = */ NULL ,
10791085 /* .graph_plan_free = */ NULL ,
1086+ /* .graph_plan_update = */ NULL ,
10801087 /* .graph_plan_compute = */ NULL ,
10811088 /* .graph_compute = */ ggml_backend_dnnl_graph_compute,
10821089 /* .supports_op = */ ggml_backend_dnnl_supports_op,
1090+ /* .supports_buft = */ ggml_backend_dnnl_supports_buft,
10831091 /* .offload_op = */ NULL ,
10841092 /* .event_new = */ NULL ,
10851093 /* .event_free = */ NULL ,
10861094 /* .event_record = */ NULL ,
10871095 /* .event_wait = */ NULL ,
1088- /* .event_synchronize = */ NULL ,
1096+ /* .event_synchronize = */ NULL
10891097};
10901098
10911099static ggml_guid_t ggml_backend_dnnl_guid () {
0 commit comments