* ggml : CLBlast support as in llama.cpp
Building with CLBlast speeds up whisper.cpp ~2x on low end / older AMD APUs (CPU with integrated GPU) such as the A9.
Usage:
WHISPER_CLBLAST=1 make
* CMake/Makefile : CLBlast support as in llama.cpp
Building with CLBlast speeds up whisper.cpp ~2x on low end / older AMD APUs (CPU with integrated GPU) such as the A9.
Usage:
```
Makefile:
cd whisper.cpp
WHISPER_CLBLAST=1 make
CMake:
cd whisper.cpp ; mkdir build ; cd build
cmake -DWHISPER_CLBLAST=ON ..
make
```
else()
option(WHISPER_OPENBLAS "whisper: support for 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)
endif()
endif()
+if (WHISPER_CLBLAST)
+ find_package(CLBlast)
+ if (CLBlast_FOUND)
+ message(STATUS "CLBlast found")
+
+ set(GGML_OPENCL_SOURCES ggml-opencl.c ggml-opencl.h)
+
+ add_compile_definitions(GGML_USE_CLBLAST)
+
+ set(WHISPER_EXTRA_LIBS ${WHISPER_EXTRA_LIBS} clblast)
+ else()
+ message(WARNING "CLBlast not found")
+ endif()
+endif()
+
# compiler flags
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
ggml.h
ggml.c
${GGML_CUDA_SOURCES}
+ ${GGML_OPENCL_SOURCES}
whisper.h
whisper.cpp
)
$(NVCC) $(NVCCFLAGS) $(CXXFLAGS) -Wno-pedantic -c $< -o $@
endif
+ifdef WHISPER_CLBLAST
+ CFLAGS += -DGGML_USE_CLBLAST
+ LDFLAGS += -lclblast -lOpenCL
+ WHISPER_OBJ += ggml-opencl.o
+
+ggml-opencl.o: ggml-opencl.c ggml-opencl.h
+ $(CC) $(CFLAGS) -c $< -o $@
+endif
+
ifdef WHISPER_GPROF
CFLAGS += -pg
CXXFLAGS += -pg