From: Georgi Gerganov Date: Thu, 3 Oct 2024 18:42:03 +0000 (+0300) Subject: examples : adapt to new ggml backend interfaces X-Git-Tag: upstream/0.0.1642~311 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=c73d836bbf7055551e8ec8d4cbabd7da066ebf60;p=pkg%2Fggml%2Fsources%2Fggml examples : adapt to new ggml backend interfaces ggml-ci --- diff --git a/examples/gpt-2/main-backend.cpp b/examples/gpt-2/main-backend.cpp index e35d5c67..9a4c9abe 100644 --- a/examples/gpt-2/main-backend.cpp +++ b/examples/gpt-2/main-backend.cpp @@ -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__); diff --git a/examples/gpt-2/main-batched.cpp b/examples/gpt-2/main-batched.cpp index f2646e88..bf6fbe4e 100644 --- a/examples/gpt-2/main-batched.cpp +++ b/examples/gpt-2/main-batched.cpp @@ -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__); diff --git a/examples/gpt-2/main-sched.cpp b/examples/gpt-2/main-sched.cpp index e8864aed..f3bbc84a 100644 --- a/examples/gpt-2/main-sched.cpp +++ b/examples/gpt-2/main-sched.cpp @@ -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__); diff --git a/examples/mnist/mnist-common.h b/examples/mnist/mnist-common.h index a6239a42..0a88f05d 100644 --- a/examples/mnist/mnist-common.h +++ b/examples/mnist/mnist-common.h @@ -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)); diff --git a/examples/simple/simple-backend.cpp b/examples/simple/simple-backend.cpp index 89594d02..d6de2a37 100644 --- a/examples/simple/simple-backend.cpp +++ b/examples/simple/simple-backend.cpp @@ -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__); diff --git a/tests/test-backend-buffer.cpp b/tests/test-backend-buffer.cpp index e8b62f28..cd53358c 100644 --- a/tests/test-backend-buffer.cpp +++ b/tests/test-backend-buffer.cpp @@ -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); diff --git a/tests/test-conv-transpose-1d.cpp b/tests/test-conv-transpose-1d.cpp index f8236818..6f20ce5d 100644 --- a/tests/test-conv-transpose-1d.cpp +++ b/tests/test-conv-transpose-1d.cpp @@ -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__); diff --git a/tests/test-conv1d.cpp b/tests/test-conv1d.cpp index 95a9368f..fe316ab3 100644 --- a/tests/test-conv1d.cpp +++ b/tests/test-conv1d.cpp @@ -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__); diff --git a/tests/test-conv2d.cpp b/tests/test-conv2d.cpp index 788c3352..70549283 100644 --- a/tests/test-conv2d.cpp +++ b/tests/test-conv2d.cpp @@ -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__);