diff --git a/CMakeLists.txt b/CMakeLists.txt index dd2b0d0d..4da0188d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,9 +59,11 @@ if (APPLE) option(WHISPER_COREML "whisper: enable Core ML framework" OFF) option(WHISPER_COREML_ALLOW_FALLBACK "whisper: allow non-CoreML fallback" OFF) else() - option(WHISPER_OPENBLAS "whisper: support for OpenBLAS" OFF) - option(WHISPER_CUBLAS "whisper: support for cuBLAS" OFF) - option(WHISPER_CLBLAST "whisper: use CLBlast" OFF) + option(WHISPER_BLAS "whisper: use BLAS libraries" OFF) + option(WHISPER_BLAS_VENDOR "whisper: BLAS library vendor" Generic) + option(WHISPER_OPENBLAS "whisper: prefer OpenBLAS" OFF) + option(WHISPER_CUBLAS "whisper: support for cuBLAS" OFF) + option(WHISPER_CLBLAST "whisper: use CLBlast" OFF) endif() option(WHISPER_PERF "whisper: enable perf timings" OFF) @@ -127,19 +129,29 @@ if (APPLE) endif() if (WHISPER_OPENBLAS) - find_library(OPENBLAS_LIB - NAMES openblas libopenblas - ) - if (OPENBLAS_LIB) - message(STATUS "OpenBLAS found") - - set(WHISPER_EXTRA_LIBS ${WHISPER_EXTRA_LIBS} ${OPENBLAS_LIB}) - set(WHISPER_EXTRA_FLAGS ${WHISPER_EXTRA_FLAGS} -DGGML_USE_OPENBLAS) - else() - message(WARNING "OpenBLAS not found") - endif() + set(WHISPER_BLAS_VENDOR "OpenBLAS") + set(WHISPER_BLAS ON) endif() +if (WHISPER_BLAS) + set(BLA_STATIC 1) + set(BLA_VENDOR ${WHISPER_BLAS_VENDOR}) +# set(BLA_PREFER_PKGCONFIG 1) + set(BLA_SIZEOF_INTEGER 8) + find_package(BLAS) + + if(BLAS_FOUND) + message(STATUS "BLAS compatible library found") + message(STATUS "Libraries ${BLAS_LIBRARIES}") + set(WHISPER_EXTRA_FLAGS ${WHISPER_EXTRA_FLAGS} -DGGML_USE_OPENBLAS) + + include_directories(${BLAS_INCLUDE_DIRS}) + set(WHISPER_EXTRA_LIBS ${WHISPER_EXTRA_LIBS} ${BLAS_LIBRARIES}) + else() + message(WARNING "BLAS library was not found") + endif() +endif () + if (WHISPER_CUBLAS) cmake_minimum_required(VERSION 3.17) @@ -147,7 +159,7 @@ if (WHISPER_CUBLAS) if (CUDAToolkit_FOUND) message(STATUS "cuBLAS found") - + set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc) enable_language(CUDA) set(GGML_CUDA_SOURCES ggml-cuda.cu ggml-cuda.h)