Skip to content

Commit 5751c30

Browse files
committed
add vulkan for whisper
1 parent 357bef3 commit 5751c30

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

Makefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,7 @@ sampling.o: common/sampling.cpp common/common.h common/sampling.h common/log.h
715715
$(CXX) $(CXXFLAGS) -c $< -o $@
716716
console.o: common/console.cpp common/console.h
717717
$(CXX) $(CXXFLAGS) -c $< -o $@
718-
expose.o: expose.cpp expose.h
718+
expose.o: expose.cpp expose.h model_adapter.cpp
719719
$(CXX) $(CXXFLAGS) -c $< -o $@
720720

721721
# sd.cpp objects
@@ -730,6 +730,8 @@ sdcpp_vulkan.o: otherarch/sdcpp/sdtype_adapter.cpp otherarch/sdcpp/stable-diffus
730730
#whisper objects
731731
whispercpp_default.o: otherarch/whispercpp/whisper_adapter.cpp
732732
$(CXX) $(CXXFLAGS) -c $< -o $@
733+
whispercpp_vulkan.o: otherarch/whispercpp/whisper_adapter.cpp
734+
$(CXX) $(CXXFLAGS) $(VULKAN_FLAGS) -c $< -o $@
733735
whispercpp_cublas.o: otherarch/whispercpp/whisper_adapter.cpp
734736
$(CXX) $(CXXFLAGS) $(CUBLAS_FLAGS) $(HIPFLAGS) -c $< -o $@
735737

@@ -942,10 +944,10 @@ koboldcpp_hipblas:
942944
endif
943945

944946
ifdef VULKAN_BUILD
945-
koboldcpp_vulkan: ggml_v4_vulkan.o ggml-cpu.o ggml-ops.o ggml-vec.o ggml-binops.o ggml-unops.o ggml_v3.o ggml_v2.o ggml_v1.o expose.o gpttype_adapter_vulkan.o ggml-vulkan.o ggml-vulkan-shaders.o sdcpp_vulkan.o whispercpp_default.o tts_default.o embeddings_default.o llavaclip_vulkan.o llava.o ggml-backend_vulkan.o ggml-backend-reg_vulkan.o ggml-repack.o $(OBJS_FULL) $(OBJS)
947+
koboldcpp_vulkan: ggml_v4_vulkan.o ggml-cpu.o ggml-ops.o ggml-vec.o ggml-binops.o ggml-unops.o ggml_v3.o ggml_v2.o ggml_v1.o expose.o gpttype_adapter_vulkan.o ggml-vulkan.o ggml-vulkan-shaders.o sdcpp_vulkan.o whispercpp_vulkan.o tts_default.o embeddings_default.o llavaclip_vulkan.o llava.o ggml-backend_vulkan.o ggml-backend-reg_vulkan.o ggml-repack.o $(OBJS_FULL) $(OBJS)
946948
$(VULKAN_BUILD)
947949
ifdef NOAVX2_BUILD
948-
koboldcpp_vulkan_noavx2: ggml_v4_vulkan_noavx2.o ggml-cpu_v4_noavx2.o ggml-ops-noavx2.o ggml-vec-noavx2.o ggml-binops.o ggml-unops.o ggml_v3_noavx2.o ggml_v2_noavx2.o ggml_v1_failsafe.o expose.o gpttype_adapter_vulkan_noavx2.o ggml-vulkan-noext.o ggml-vulkan-shaders-noext.o sdcpp_vulkan.o whispercpp_default.o tts_default.o embeddings_default.o llavaclip_vulkan.o llava.o ggml-backend_vulkan.o ggml-backend-reg_vulkan.o ggml-repack.o $(OBJS_SIMPLE) $(OBJS)
950+
koboldcpp_vulkan_noavx2: ggml_v4_vulkan_noavx2.o ggml-cpu_v4_noavx2.o ggml-ops-noavx2.o ggml-vec-noavx2.o ggml-binops.o ggml-unops.o ggml_v3_noavx2.o ggml_v2_noavx2.o ggml_v1_failsafe.o expose.o gpttype_adapter_vulkan_noavx2.o ggml-vulkan-noext.o ggml-vulkan-shaders-noext.o sdcpp_vulkan.o whispercpp_vulkan.o tts_default.o embeddings_default.o llavaclip_vulkan.o llava.o ggml-backend_vulkan.o ggml-backend-reg_vulkan.o ggml-repack.o $(OBJS_SIMPLE) $(OBJS)
949951
$(VULKAN_BUILD)
950952
else
951953
koboldcpp_vulkan_noavx2:

model_adapter.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ std::string gguf_get_model_arch(const std::string & gguf_filename)
221221
}
222222
}
223223
}
224-
else if(vocabsiz < 31998 || vocabsiz > 33000)
224+
else if((vocabsiz < 31998 || vocabsiz > 33000) && vocabsiz<51864) //avoid whisper false positive
225225
{
226226
//anything outside the llama v1 range is assumed to be NeoX
227227
fileformat = FileFormat::NEOX_6;
@@ -268,7 +268,11 @@ std::string gguf_get_model_arch(const std::string & gguf_filename)
268268
}
269269
}
270270
}
271-
271+
}
272+
else if (vocabsiz>=51864 && vocabsiz<=51865)
273+
{
274+
printf("\nWhisper model detected - you should load it as a whisper model instead, not a text model!\n");
275+
fileformat = FileFormat::BADFORMAT; //known whisper formats, do not proceed
272276
}
273277
}
274278
else if(magic == 0x67676d66) //v2 format ggmf

otherarch/whispercpp/whisper.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
#include "ggml-cuda.h"
1313
#endif
1414

15+
#ifdef GGML_USE_VULKAN
16+
#include "ggml-vulkan.h"
17+
#endif
18+
1519
#ifdef GGML_USE_SYCL
1620
#include "ggml-sycl.h"
1721
#endif
@@ -1262,6 +1266,16 @@ static ggml_backend_t whisper_backend_init(const whisper_context_params & params
12621266
}
12631267
#endif
12641268

1269+
#ifdef GGML_USE_VULKAN
1270+
if (params.use_gpu) {
1271+
WHISPER_LOG_INFO("%s: using Vulkan backend\n", __func__);
1272+
backend_gpu = ggml_backend_vk_init(params.gpu_device);
1273+
if (!backend_gpu) {
1274+
WHISPER_LOG_ERROR("%s: ggml_backend_vk_init() failed\n", __func__);
1275+
}
1276+
}
1277+
#endif
1278+
12651279
if (backend_gpu) {
12661280
return backend_gpu;
12671281
}

0 commit comments

Comments
 (0)