diff --git a/.gitignore b/.gitignore index 503a4735..d2499559 100644 --- a/.gitignore +++ b/.gitignore @@ -1,46 +1,46 @@ -*.o -*.a -.cache/ -.coreml/ -.test/ -.vs/ -.vscode/ -.DS_Store - -build/ -build-em/ -build-debug/ -build-release/ -build-static/ -build-cublas/ -build-no-accel/ -build-sanitize-addr/ -build-sanitize-thread/ - -/main -/stream -/command -/talk -/talk-llama -/bench -/quantize - -arm_neon.h -sync.sh -libwhisper.a -libwhisper.so -compile_commands.json - -examples/arm_neon.h -examples/whisper.objc/whisper.objc.xcodeproj/xcshareddata -examples/whisper.objc/whisper.objc.xcodeproj/xcuserdata/ -examples/whisper.objc/whisper.objc.xcodeproj/project.xcworkspace/xcuserdata - -extra/bench-gg.txt - -models/*.mlmodel -models/*.mlmodelc -models/*.mlpackage -bindings/java/.gradle/ -bindings/java/.idea/ -.idea/ +*.o +*.a +.cache/ +.coreml/ +.test/ +.vs/ +.vscode/ +.DS_Store + +build/ +build-em/ +build-debug/ +build-release/ +build-static/ +build-cublas/ +build-no-accel/ +build-sanitize-addr/ +build-sanitize-thread/ + +/main +/stream +/command +/talk +/talk-llama +/bench +/quantize + +arm_neon.h +sync.sh +libwhisper.a +libwhisper.so +compile_commands.json + +examples/arm_neon.h +examples/whisper.objc/whisper.objc.xcodeproj/xcshareddata +examples/whisper.objc/whisper.objc.xcodeproj/xcuserdata/ +examples/whisper.objc/whisper.objc.xcodeproj/project.xcworkspace/xcuserdata + +extra/bench-gg.txt + +models/*.mlmodel +models/*.mlmodelc +models/*.mlpackage +bindings/java/.gradle/ +bindings/java/.idea/ +.idea/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 92b5d0c3..60eb0276 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)