From 0b6de3a1357cb920fd25bd1139541ca6a4c8663e Mon Sep 17 00:00:00 2001 From: ntukanov Date: Wed, 10 Jul 2024 15:59:24 -0700 Subject: [PATCH] ggml : add NVPL BLAS support --- Makefile | 6 ++++++ ggml/src/ggml-blas.cpp | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 668b38b99..fbfca7610 100644 --- a/Makefile +++ b/Makefile @@ -552,6 +552,12 @@ ifdef GGML_BLIS OBJ_GGML += ggml/src/ggml-blas.o endif # GGML_BLIS +ifdef GGML_NVPL + MK_CPPFLAGS += -DGGML_USE_BLAS -DNVPL_ENABLE_CBLAS -DNVPL_ILP64 -I/usr/local/include/nvpl_blas -I/usr/include/nvpl_blas + MK_LDFLAGS += -L/usr/local/lib -lnvpl_blas_core -lnvpl_blas_ilp64_gomp + OBJ_GGML += ggml/src/ggml-blas.o +endif # GGML_NVPL + ifndef GGML_NO_LLAMAFILE MK_CPPFLAGS += -DGGML_USE_LLAMAFILE OBJ_GGML += ggml/src/llamafile/sgemm.o diff --git a/ggml/src/ggml-blas.cpp b/ggml/src/ggml-blas.cpp index d709a357b..f7604e580 100644 --- a/ggml/src/ggml-blas.cpp +++ b/ggml/src/ggml-blas.cpp @@ -8,11 +8,12 @@ # include #elif defined(GGML_BLAS_USE_MKL) # include +#elif defined(BLIS_ENABLE_CBLAS) +# include +#elif defined(NVPL_ENABLE_CBLAS) +# include #else # include -# ifdef BLIS_ENABLE_CBLAS -# include -# endif #endif struct ggml_backend_blas_context { @@ -144,6 +145,10 @@ static void ggml_backend_blas_mul_mat(ggml_backend_blas_context * ctx, struct gg bli_thread_set_num_threads(ctx->n_threads); #endif +#if defined(NVPL_ENABLE_CBLAS) + nvpl_blas_set_num_threads(ctx->n_threads); +#endif + for (int64_t i13 = 0; i13 < ne13; i13++) { for (int64_t i12 = 0; i12 < ne12; i12++) { const int64_t i03 = i13/r3;