From: Diego Devesa Date: Fri, 4 Oct 2024 06:41:40 +0000 (+0200) Subject: ggml : fixes after sync (#983) X-Git-Tag: upstream/0.0.1642~307 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=decae832b0d89655d140534397a47420306e1cff;p=pkg%2Fggml%2Fsources%2Fggml ggml : fixes after sync (#983) ggml : remove test-backend-buffer ggml : fix CUDA build warnings --- diff --git a/examples/mnist/mnist-common.h b/examples/mnist/mnist-common.h index 37531b28..1c6fe783 100644 --- a/examples/mnist/mnist-common.h +++ b/examples/mnist/mnist-common.h @@ -57,18 +57,19 @@ struct mnist_model { ggml_backend_buffer_t buf_compute = nullptr; mnist_model(const std::string & backend_name) { - const ggml_backend_dev_t dev = ggml_backend_dev_by_name(backend_name.c_str()); + ggml_backend_dev_t dev = ggml_backend_dev_by_name(backend_name.c_str()); if (dev == 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_count(); ++i) { - fprintf(stderr, " - %s\n", ggml_backend_reg_name(ggml_backend_reg_get(i))); + for (size_t i = 0; i < ggml_backend_dev_count(); ++i) { + ggml_backend_dev_t this_dev = ggml_backend_dev_get(i); + fprintf(stderr, " - %s (%s)\n", ggml_backend_dev_name(this_dev), ggml_backend_dev_description(this_dev)); } exit(1); } - fprintf(stderr, "%s: using %s backend\n", __func__, backend_name.c_str()); + fprintf(stderr, "%s: using %s (%s) backend\n", __func__, ggml_backend_dev_name(dev), ggml_backend_dev_description(dev)); - ggml_backend_t backend = ggml_backend_dev_init(dev, NULL); + backend = ggml_backend_dev_init(dev, 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/src/ggml-cuda.cu b/src/ggml-cuda.cu index bcb39766..5b6f605b 100644 --- a/src/ggml-cuda.cu +++ b/src/ggml-cuda.cu @@ -2448,6 +2448,7 @@ static void ggml_backend_cuda_synchronize(ggml_backend_t backend) { GGML_UNUSED(backend); } +#ifdef USE_CUDA_GRAPH static void set_ggml_graph_node_properties(ggml_tensor * node, ggml_graph_node_properties * graph_node_properties) { graph_node_properties->node_address = node->data; graph_node_properties->node_op = node->op; @@ -2498,6 +2499,7 @@ static bool ggml_graph_node_has_matching_properties(ggml_tensor * node, ggml_gra return true; } +#endif static enum ggml_status ggml_backend_cuda_graph_compute(ggml_backend_t backend, ggml_cgraph * cgraph) { ggml_backend_cuda_context * cuda_ctx = (ggml_backend_cuda_context *)backend->context; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index dfa64920..4a69230e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -419,16 +419,6 @@ add_test(NAME ${TEST_TARGET} COMMAND $) set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_TARGET}.profraw") -# -# test-backend-buffer - -set(TEST_TARGET test-backend-buffer) -add_executable(${TEST_TARGET} ${TEST_TARGET}.cpp) -target_link_libraries(${TEST_TARGET} PRIVATE ggml) -add_test(NAME ${TEST_TARGET} COMMAND $) -set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_TARGET}.profraw") - - # # test-backend-ops diff --git a/tests/test-backend-buffer.cpp b/tests/test-backend-buffer.cpp deleted file mode 100644 index 09f46e8b..00000000 --- a/tests/test-backend-buffer.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include - -#include -#include -#include - -static bool is_pow2(size_t x) { - return (x & (x - 1)) == 0; -} - -static void test_buffer(ggml_backend_t backend, ggml_backend_buffer_type_t buft) { - GGML_ASSERT(ggml_backend_get_default_buffer_type(backend) == buft); - - GGML_ASSERT(ggml_backend_supports_buft(backend, buft)); - - //ggml_backend_buffer_t buffer = ggml_backend_alloc_buffer(backend, 1024); - ggml_backend_buffer_t buffer = ggml_backend_buft_alloc_buffer(buft, 1024); - - GGML_ASSERT(buffer != NULL); - - GGML_ASSERT(is_pow2(ggml_backend_buffer_get_alignment(buffer))); - - GGML_ASSERT(ggml_backend_buffer_get_base(buffer) != NULL); - - GGML_ASSERT(ggml_backend_buffer_get_size(buffer) >= 1024); - - struct ggml_init_params params = { - /* .mem_size = */ 1024, - /* .mem_base = */ NULL, - /* .no_alloc = */ true, - }; - struct ggml_context * ctx = ggml_init(params); - - static const size_t n = 10; - - struct ggml_tensor * tensor = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n); - - GGML_ASSERT(ggml_backend_buffer_get_alloc_size(buffer, tensor) >= n * sizeof(float)); - - struct ggml_tallocr allocr = ggml_tallocr_new(buffer); - ggml_tallocr_alloc(&allocr, tensor); - - GGML_ASSERT(tensor->data != NULL); - - GGML_ASSERT(tensor->data >= ggml_backend_buffer_get_base(buffer)); - - float data[n]; - for (size_t i = 0; i < n; i++) { - data[i] = (float) i; - } - - ggml_backend_tensor_set(tensor, data, 0, sizeof(data)); - - float data2[n]; - ggml_backend_tensor_get(tensor, data2, 0, sizeof(data2)); - - GGML_ASSERT(memcmp(data, data2, sizeof(data)) == 0); - - ggml_backend_buffer_free(buffer); - ggml_free(ctx); -} - -int main() { - // enumerate backends - printf("Testing %zu backends\n\n", ggml_backend_reg_count()); - - for (size_t i = 0; i < ggml_backend_reg_count(); i++) { - ggml_backend_reg_t reg = ggml_backend_reg_get(i); - const char * reg_name = ggml_backend_reg_name(reg); - printf("Backend %zu/%zu (%s)\n", i + 1, ggml_backend_reg_count(), reg_name); - - const ggml_backend_dev_t dev = ggml_backend_reg_dev_get(reg, 0); - ggml_backend_t backend = ggml_backend_dev_init(dev, NULL); - GGML_ASSERT(backend != NULL); - printf(" Backend name: %s\n", ggml_backend_name(backend)); - - test_buffer(backend, ggml_backend_get_default_buffer_type(backend)); - - ggml_backend_free(backend); - - printf(" OK\n\n"); - } -}