]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
examples : adapt to new ggml backend interfaces
authorGeorgi Gerganov <redacted>
Thu, 3 Oct 2024 18:42:03 +0000 (21:42 +0300)
committerGeorgi Gerganov <redacted>
Thu, 3 Oct 2024 19:12:49 +0000 (22:12 +0300)
ggml-ci

examples/gpt-2/main-backend.cpp
examples/gpt-2/main-batched.cpp
examples/gpt-2/main-sched.cpp
examples/mnist/mnist-common.h
examples/simple/simple-backend.cpp
tests/test-backend-buffer.cpp
tests/test-conv-transpose-1d.cpp
tests/test-conv1d.cpp
tests/test-conv2d.cpp

index e35d5c673b263395e6ea3d8389de2c82f29638a5..9a4c9abe836505e1cc72405bba11fb05db010c2a 100644 (file)
@@ -178,6 +178,8 @@ bool gpt2_model_load(const std::string & fname, gpt2_model & model, gpt_vocab &
         return false;
     }
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     auto & ctx = model.ctx_w;
 
     // create the ggml context
@@ -210,7 +212,6 @@ bool gpt2_model_load(const std::string & fname, gpt2_model & model, gpt_vocab &
 #ifdef GGML_USE_METAL
     if (n_gpu_layers > 0) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         model.backend = ggml_backend_metal_init();
         if (!model.backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index f2646e88dfa8d21670450f182dd4d2acdb68fcd0..bf6fbe4e6fa43f85e7d48a90a29235e96b253497 100644 (file)
@@ -268,6 +268,8 @@ bool gpt2_model_load(const std::string & fname, gpt2_model & model, gpt_vocab &
         printf("%s: backend buffer size = %6.2f MB\n", __func__, buffer_size/(1024.0*1024.0));
     }
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     // create the ggml context
     {
         size_t n_tensors = 2 + 6 + 12*model.hparams.n_layer;
@@ -298,7 +300,6 @@ bool gpt2_model_load(const std::string & fname, gpt2_model & model, gpt_vocab &
 #ifdef GGML_USE_METAL
     if (n_gpu_layers > 0) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         model.backend = ggml_backend_metal_init();
         if (!model.backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index e8864aede80f5506a2812cf88263534f8e69e27b..f3bbc84ae29be942284072e9e8137f3b9f3aaffa 100644 (file)
@@ -108,6 +108,8 @@ struct gpt2_model {
 void init_backends(gpt2_model & model, const gpt_params & params) {
     ggml_backend_t gpu_backend = NULL;
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     // initialize the backends
 #ifdef GGML_USE_CUDA
     if (params.n_gpu_layers > 0) {
@@ -122,7 +124,6 @@ void init_backends(gpt2_model & model, const gpt_params & params) {
 #ifdef GGML_USE_METAL
     if (params.n_gpu_layers > 0) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         gpu_backend = ggml_backend_metal_init();
         if (!gpu_backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index a6239a426bbc3c9b64e746f0f820422bba51bbfa..0a88f05d391a8d17903e18b48f00218c8ee6cfa2 100644 (file)
@@ -57,17 +57,18 @@ struct mnist_model {
     ggml_backend_buffer_t buf_compute = nullptr;
 
     mnist_model(const std::string & backend_name) {
-        const size_t backend_index = ggml_backend_reg_find_by_name(backend_name.c_str());
-        if (backend_index == SIZE_MAX) {
+        const ggml_backend_reg_t reg = ggml_backend_reg_by_name(backend_name.c_str());
+        if (reg == nullptr) {
             fprintf(stderr, "%s: ERROR: backend %s not found, available:\n", __func__, backend_name.c_str());
-            for (size_t i = 0; i < ggml_backend_reg_get_count(); ++i) {
-                fprintf(stderr, "  - %s\n", ggml_backend_reg_get_name(i));
+            for (size_t i = 0; i < ggml_backend_reg_count(); ++i) {
+                fprintf(stderr, "  - %s\n", ggml_backend_reg_name(ggml_backend_reg_get(i)));
             }
             exit(1);
         }
 
         fprintf(stderr, "%s: using %s backend\n", __func__, backend_name.c_str());
-        backend = ggml_backend_reg_init_backend(backend_index, nullptr);
+
+        ggml_backend_t backend = ggml_backend_init_by_name(backend_name.c_str(), NULL);
         if (ggml_backend_is_cpu(backend)) {
             const int ncores_logical = std::thread::hardware_concurrency();
             ggml_backend_cpu_set_n_threads(backend, std::min(ncores_logical, (ncores_logical + 4)/2));
index 89594d0218ed0939a01e4b02cdc382b13bb8933b..d6de2a371b605da06550aab5ee301d61198d8ef5 100644 (file)
@@ -43,6 +43,8 @@ struct simple_model {
 
 // initialize the tensors of the model in this case two matrices 2x2
 void load_model(simple_model & model, float * a, float * b, int rows_A, int cols_A, int rows_B, int cols_B) {
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     // initialize the backend
 #ifdef GGML_USE_CUDA
     fprintf(stderr, "%s: using CUDA backend\n", __func__);
@@ -54,7 +56,6 @@ void load_model(simple_model & model, float * a, float * b, int rows_A, int cols
 
 #ifdef GGML_USE_METAL
     fprintf(stderr, "%s: using Metal backend\n", __func__);
-    ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
     model.backend = ggml_backend_metal_init();
     if (!model.backend) {
         fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index e8b62f28250f094de6a691fe0a0c31e9373444a9..cd53358cec59830b63ca73dcc2cfb35ab8d457b2 100644 (file)
@@ -64,16 +64,17 @@ static void test_buffer(ggml_backend_t backend, ggml_backend_buffer_type_t buft)
 
 int main() {
     // enumerate backends
-    printf("Testing %zu backends\n\n", ggml_backend_reg_get_count());
+    printf("Testing %zu backends\n\n", ggml_backend_reg_count());
 
-    for (size_t i = 0; i < ggml_backend_reg_get_count(); i++) {
-        printf("Backend %zu/%zu (%s)\n", i + 1, ggml_backend_reg_get_count(), ggml_backend_reg_get_name(i));
+    for (size_t i = 0; i < ggml_backend_reg_count(); i++) {
+        const char * name = ggml_backend_reg_name(ggml_backend_reg_get(i));
+        printf("Backend %zu/%zu (%s)\n", i + 1, ggml_backend_reg_count(), name);
 
-        ggml_backend_t backend = ggml_backend_reg_init_backend(i, NULL);
+        ggml_backend_t backend = ggml_backend_init_by_name(name, NULL);
         GGML_ASSERT(backend != NULL);
         printf("  Backend name: %s\n", ggml_backend_name(backend));
 
-        test_buffer(backend, ggml_backend_reg_get_default_buffer_type(i));
+        test_buffer(backend, ggml_backend_get_default_buffer_type(backend));
 
         ggml_backend_free(backend);
 
index f8236818382880265f5d835700d94ebafbb5e7a7..6f20ce5df0732bf8e8420ed806eace56f2771054 100644 (file)
@@ -85,10 +85,6 @@ void load_model(test_model & model, bool use_gpu = false) {
         buffer_size += 16 * 32 * 32 * ggml_type_size(GGML_TYPE_F32); // tensor a_4
         buffer_size += 197 * 32* ggml_type_size(GGML_TYPE_F32); // tensor b_4
 
-
-
-
-
         buffer_size += 1024;
     }
 
@@ -102,6 +98,8 @@ void load_model(test_model & model, bool use_gpu = false) {
             /*.no_alloc   =*/ true,
     };
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     // initialize the backend
 #ifdef GGML_USE_CUDA
     if (use_gpu) {
@@ -116,7 +114,6 @@ void load_model(test_model & model, bool use_gpu = false) {
 #ifdef GGML_USE_METAL
     if (use_gpu) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         model.backend = ggml_backend_metal_init();
         if (!model.backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index 95a9368fba73fc9c03d382e987881ee1eebbc79c..fe316ab3d3e2622b1e09fbb728318dfc149f3d9c 100644 (file)
@@ -65,6 +65,8 @@ void load_model(test_model & model, bool use_gpu = false) {
     printf("%s: ggml tensor size    = %d bytes\n", __func__, (int) sizeof(ggml_tensor));
     printf("%s: backend buffer size = %0.2f MB\n", __func__, (buffer_size/ 1024.f/ 1024.f));
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     int num_tensors = 2;
     struct ggml_init_params params {
             /*.mem_size   =*/ ggml_tensor_overhead() * num_tensors,
@@ -86,7 +88,6 @@ void load_model(test_model & model, bool use_gpu = false) {
 #ifdef GGML_USE_METAL
     if (use_gpu) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         model.backend = ggml_backend_metal_init();
         if (!model.backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);
index 788c3352cebf1540bf0804b0cdbf8bac2264da40..705492833e34005951cf8c428ff091b8c0cfbd4e 100644 (file)
@@ -72,6 +72,8 @@ void load_model(test_model & model, bool use_gpu = false) {
             /*.no_alloc   =*/ true,
     };
 
+    ggml_log_set(ggml_log_callback_default, nullptr);
+
     // initialize the backend
 #ifdef GGML_USE_CUDA
     if (use_gpu) {
@@ -86,7 +88,6 @@ void load_model(test_model & model, bool use_gpu = false) {
 #ifdef GGML_USE_METAL
     if (use_gpu) {
         fprintf(stderr, "%s: using Metal backend\n", __func__);
-        ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
         model.backend = ggml_backend_metal_init();
         if (!model.backend) {
             fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__);