Skip to content

Commit 58f3bda

Browse files
ikawrakowIwan Kawrakow
andauthored
Vulkan: add cmake options to build without coopmat(2) support (ikawrakow#674)
So I can test KHR coopmat and no coopmat. Co-authored-by: Iwan Kawrakow <[email protected]>
1 parent dee40cf commit 58f3bda

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

ggml/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ option(GGML_VULKAN_MEMORY_DEBUG "ggml: enable Vulkan memory debug ou
147147
option(GGML_VULKAN_SHADER_DEBUG_INFO "ggml: enable Vulkan shader debug info" OFF)
148148
option(GGML_VULKAN_VALIDATE "ggml: enable Vulkan validation" OFF)
149149
option(GGML_VULKAN_RUN_TESTS "ggml: run Vulkan tests" OFF)
150+
option(GGML_VULKAN_NO_COOPMAT "ggml: don't use Vulkan coopmat even if supported" OFF)
151+
option(GGML_VULKAN_NO_COOPMAT2 "ggml: don't use Vulkan coopmat2 even if supported" OFF)
152+
option(GGML_VULKAN_NO_BF16 "ggml: don't use Vulkan bf16 even if supported" OFF)
153+
option(GGML_VULKAN_NO_INT_DOT "ggml: don't use Vulkan integer dot even if supported" OFF)
150154
option(GGML_KOMPUTE "ggml: use Kompute" OFF)
151155
option(GGML_METAL "ggml: use Metal" ${GGML_METAL_DEFAULT})
152156
option(GGML_METAL_NDEBUG "ggml: disable Metal debugging" OFF)

ggml/src/CMakeLists.txt

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -695,29 +695,37 @@ if (GGML_VULKAN)
695695
set(VULKAN_SHADER_GEN_CMAKE_ARGS "")
696696

697697
# Test all shader extensions
698-
test_shader_extension_support(
699-
"GL_KHR_cooperative_matrix"
700-
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_coopmat_support.comp"
701-
"GGML_VULKAN_COOPMAT_GLSLC_SUPPORT"
702-
)
698+
if (NOT GGML_VULKAN_NO_COOPMAT)
699+
test_shader_extension_support(
700+
"GL_KHR_cooperative_matrix"
701+
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_coopmat_support.comp"
702+
"GGML_VULKAN_COOPMAT_GLSLC_SUPPORT"
703+
)
704+
endif()
703705

704-
test_shader_extension_support(
705-
"GL_NV_cooperative_matrix2"
706-
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_coopmat2_support.comp"
707-
"GGML_VULKAN_COOPMAT2_GLSLC_SUPPORT"
708-
)
706+
if (NOT GGML_VULKAN_NO_COOPMAT2)
707+
test_shader_extension_support(
708+
"GL_NV_cooperative_matrix2"
709+
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_coopmat2_support.comp"
710+
"GGML_VULKAN_COOPMAT2_GLSLC_SUPPORT"
711+
)
712+
endif()
709713

710-
test_shader_extension_support(
711-
"GL_EXT_integer_dot_product"
712-
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_integer_dot_support.comp"
713-
"GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT"
714-
)
714+
if (NOT GGML_VULKAN_NO_INT_DOT)
715+
test_shader_extension_support(
716+
"GL_EXT_integer_dot_product"
717+
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_integer_dot_support.comp"
718+
"GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT"
719+
)
720+
endif()
715721

716-
test_shader_extension_support(
717-
"GL_EXT_bfloat16"
718-
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_bfloat16_support.comp"
719-
"GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT"
720-
)
722+
if (NOT GGML_VULKAN_NO_BF16)
723+
test_shader_extension_support(
724+
"GL_EXT_bfloat16"
725+
"${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_bfloat16_support.comp"
726+
"GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT"
727+
)
728+
endif()
721729

722730
# end vulkan test
723731
list(APPEND GGML_CDEF_PUBLIC GGML_USE_VULKAN)

0 commit comments

Comments
 (0)