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