From 02670db4559884e9100756f0a1f188d095f85ff2 Mon Sep 17 00:00:00 2001 From: Vulcan <93451215+trholding@users.noreply.github.com> Date: Wed, 3 May 2023 21:54:43 +0530 Subject: [PATCH] readme : partial OpenCL GPU support via CLBlast (#863) * 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 ``` * Update README.md Added OpenCL Build Instructions * Instruction: Partial OpenCL GPU support via CLBlast Added build instructions and examples for Make and CMake to support OpenCL enabled GPUs. --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 45ef0b86072..e74cc371f07 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ High-performance inference of [OpenAI's Whisper](https://github.com/openai/whisp - Zero memory allocations at runtime - Runs on the CPU - [Partial GPU support for NVIDIA via cuBLAS](https://github.com/ggerganov/whisper.cpp#nvidia-gpu-support-via-cublas) +- [Partial OpenCL GPU support via CLBlast](https://github.com/ggerganov/whisper.cpp#opencl-gpu-support-via-clblast) - [C-style API](https://github.com/ggerganov/whisper.cpp/blob/master/whisper.h) Supported platforms: @@ -311,6 +312,29 @@ make clean WHISPER_CUBLAS=1 make -j ``` +## OpenCL GPU support via CLBlast + +For cards and integrated GPUs that support OpenCL, the Encoder processing can be largely offloaded to the GPU through CLBlast. This is especially useful for users with AMD APU's or low end devices for up to ~2x speedup. + +First, make sure you have installed `CLBlast` for your OS or Distribution: https://github.com/CNugteren/CLBlast + +Now build `whisper.cpp` with CLBlast support: + +``` +Makefile: +cd whisper.cpp +make clean +WHISPER_CLBLAST=1 make -j + +CMake: +cd whisper.cpp ; mkdir build ; cd build +cmake -DWHISPER_CLBLAST=ON .. +make clean +make -j +cp bin/* ../ +``` + + Run all the examples as usual. ## Limitations