@@ -14642,7 +14642,8 @@ GGML_CALL static const char * ggml_backend_sycl_buffer_type_name(ggml_backend_bu
14642
14642
static ggml_backend_buffer_t
14643
14643
ggml_backend_sycl_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft,
14644
14644
size_t size) try {
14645
- int device = (int) (intptr_t) buft->context;
14645
+ ggml_backend_sycl_buffer_type_context * buft_ctx = (ggml_backend_sycl_buffer_type_context *)buft->context;
14646
+ int device = (int) buft_ctx->device;
14646
14647
14647
14648
ggml_sycl_set_device(device);
14648
14649
int device_index = get_device_index_by_id(device);
@@ -14720,7 +14721,7 @@ ggml_backend_buffer_type_t ggml_backend_sycl_buffer_type(int device) {
14720
14721
for (int i = 0; i < GGML_SYCL_MAX_DEVICES; i++) {
14721
14722
ggml_backend_sycl_buffer_types[i] = {
14722
14723
/* .iface = */ ggml_backend_sycl_buffer_type_interface,
14723
- /* .context = */ (ggml_backend_buffer_type_context_t) (intptr_t) i ,
14724
+ /* .context = */ new ggml_backend_sycl_buffer_type_context{i, GGML_SYCL_NAME + std::to_string(i)} ,
14724
14725
};
14725
14726
}
14726
14727
ggml_backend_sycl_buffer_type_initialized = true;
@@ -14782,25 +14783,21 @@ ggml_backend_buffer_type_t ggml_backend_sycl_host_buffer_type() {
14782
14783
14783
14784
// backend
14784
14785
14785
- struct ggml_backend_context_sycl {
14786
- int device;
14787
- };
14788
-
14789
14786
static const char * ggml_backend_sycl_name(ggml_backend_t backend) {
14790
14787
return GGML_SYCL_NAME;
14791
14788
14792
14789
UNUSED(backend);
14793
14790
}
14794
14791
14795
14792
static void ggml_backend_sycl_free(ggml_backend_t backend) {
14796
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14793
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14797
14794
14798
14795
delete sycl_ctx;
14799
14796
delete backend;
14800
14797
}
14801
14798
14802
14799
static ggml_backend_buffer_type_t ggml_backend_sycl_get_default_buffer_type(ggml_backend_t backend) {
14803
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14800
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14804
14801
14805
14802
return ggml_backend_sycl_buffer_type(sycl_ctx->device);
14806
14803
}
@@ -14809,7 +14806,7 @@ static void ggml_backend_sycl_set_tensor_async(ggml_backend_t backend,
14809
14806
ggml_tensor *tensor,
14810
14807
const void *data, size_t offset,
14811
14808
size_t size) try {
14812
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14809
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14813
14810
14814
14811
GGML_ASSERT(tensor->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
14815
14812
GGML_ASSERT(tensor->backend == GGML_BACKEND_GPU);
@@ -14827,7 +14824,7 @@ static void ggml_backend_sycl_get_tensor_async(ggml_backend_t backend,
14827
14824
const ggml_tensor *tensor,
14828
14825
void *data, size_t offset,
14829
14826
size_t size) try {
14830
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14827
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14831
14828
14832
14829
GGML_ASSERT(tensor->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) && "unsupported buffer type");
14833
14830
GGML_ASSERT(tensor->backend == GGML_BACKEND_GPU);
@@ -14842,7 +14839,7 @@ catch (sycl::exception const &exc) {
14842
14839
}
14843
14840
14844
14841
static void ggml_backend_sycl_synchronize(ggml_backend_t backend) try {
14845
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14842
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14846
14843
14847
14844
SYCL_CHECK(CHECK_TRY_ERROR(g_syclStreams[sycl_ctx->device][0]->wait()));
14848
14845
@@ -14878,7 +14875,7 @@ static void ggml_backend_sycl_graph_plan_compute(ggml_backend_t backend, ggml_ba
14878
14875
}
14879
14876
14880
14877
static bool ggml_backend_sycl_graph_compute(ggml_backend_t backend, ggml_cgraph * cgraph) {
14881
- ggml_backend_context_sycl * sycl_ctx = (ggml_backend_context_sycl *)backend->context;
14878
+ ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
14882
14879
14883
14880
ggml_sycl_set_main_device(sycl_ctx->device);
14884
14881
@@ -15092,8 +15089,9 @@ ggml_backend_t ggml_backend_sycl_init(int device) {
15092
15089
// not strictly necessary, but it may reduce the overhead of the first graph_compute
15093
15090
ggml_sycl_set_main_device(device);
15094
15091
15095
- ggml_backend_context_sycl * ctx = new ggml_backend_context_sycl {
15096
- /* .device = */ device
15092
+ ggml_backend_sycl_context * ctx = new ggml_backend_sycl_context {
15093
+ /* .device = */ device,
15094
+ /* .name = */ GGML_SYCL_NAME + std::to_string(device),
15097
15095
};
15098
15096
15099
15097
ggml_backend_t sycl_backend = new ggml_backend {
0 commit comments