From e72defac41655cd9dd1efc5b9ebbf6416dcf282c Mon Sep 17 00:00:00 2001 From: krolhm Date: Sun, 4 Feb 2024 16:21:33 +0100 Subject: [PATCH 1/2] Work with Mac M1 --- ggml-vulkan.cpp | 8 +++++++- ggml.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 14fb89e096f25..d77fed3189a25 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -977,9 +977,15 @@ void ggml_vk_init() { const std::vector extensions = { #ifdef GGML_VULKAN_VALIDATE "VK_EXT_validation_features", +#endif +#ifdef __APPLE__ + "VK_KHR_portability_enumeration", #endif }; - vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags(), &app_info, layers, extensions); +vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags(), &app_info, layers, extensions); +#ifdef __APPLE__ + instance_create_info.flags = vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR; +#endif #ifdef GGML_VULKAN_VALIDATE const std::vector features_enable = { vk::ValidationFeatureEnableEXT::eBestPractices }; vk::ValidationFeaturesEXT validation_features = { diff --git a/ggml.c b/ggml.c index ee994c8757d9d..d5cb10d18cf8a 100644 --- a/ggml.c +++ b/ggml.c @@ -270,6 +270,8 @@ inline static void * ggml_calloc(size_t num, size_t size) { #include #if defined(GGML_USE_CLBLAST) // allow usage of CLBlast alongside Accelerate functions #include "ggml-opencl.h" +#elif defined(GGML_USE_VULKAN) && __APPLE__ +#include "ggml-vulkan.h" #endif #elif defined(GGML_USE_OPENBLAS) #if defined(GGML_BLAS_USE_MKL) From df25b638a26c52e4bfd4c944bb525356b9aa3981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Bourgeat?= <40271833+rbourgeat@users.noreply.github.com> Date: Sun, 4 Feb 2024 16:32:36 +0100 Subject: [PATCH 2/2] Fix padding --- ggml-vulkan.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index d77fed3189a25..94c973458a76e 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -982,7 +982,7 @@ void ggml_vk_init() { "VK_KHR_portability_enumeration", #endif }; -vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags(), &app_info, layers, extensions); + vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags(), &app_info, layers, extensions); #ifdef __APPLE__ instance_create_info.flags = vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR; #endif