guix-mirrors/gnu/packages/patches/llama-cpp-vulkan-optional.patch
Danny Milosavljevic 14b8039d94
gnu: llama-cpp: Enable Vulkan.
* gnu/packages/patches/llama-cpp-vulkan-optional.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/machine-learning.scm (llama-cpp)
[source]: Add patch.
[arguments]<#:tests?>: Disable.
<#:configure-flags>: Add "-DGGML_VULKAN=ON".
<#:phases>[patch-paths]: New phase.
[inputs]: Add vulkan-headers, vulkan-loader.
[native-inputs]: Add shaderc, bash.

Change-Id: Ib7a58f5c7f622213f3aaf5abcd701b17eed80f6b
2025-01-29 11:03:18 +01:00

24 lines
870 B
Diff

Author: Danny Milosavljevic <dannym@friendly-machines.com>
Date: 2025-01-29
License: Expat
diff -ru orig/llama.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp llama.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp
--- orig/llama.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp 2025-01-29 06:24:10.922476480 +0100
+++ llama.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp 2025-01-29 06:26:45.973357439 +0100
@@ -7317,9 +7317,13 @@
}
static int ggml_vk_get_device_count() {
- ggml_vk_instance_init();
-
- return vk_instance.device_indices.size();
+ try {
+ ggml_vk_instance_init();
+ return vk_instance.device_indices.size();
+ } catch (const vk::SystemError& e) {
+ std::cerr << "ggml_vulkan: Error: System error" << std::endl;
+ return 0;
+ }
}
static void ggml_vk_get_device_description(int device, char * description, size_t description_size) {