add cmake commands

This commit is contained in:
Henri Vasserman 2023-07-04 17:02:22 +03:00
parent 24eeb97d13
commit 3d7d8d00a4
No known key found for this signature in database
GPG key ID: 2995FC0F58B1A986

View file

@ -313,6 +313,37 @@ if (LLAMA_CLBLAST)
endif() endif()
endif() endif()
if (LLAMA_VULKAN)
find_package(Vulkan COMPONENTS glslc)
if (Vulkan_FOUND)
message(STATUS "Vulkan found")
add_library(ggml-vulkan STATIC ggml-vulkan.cpp ggml-vulkan.h)
target_link_libraries(ggml-vulkan PUBLIC Vulkan::Vulkan)
set(GGML_VULKAN_SHADERS matmul_f32 matmul_f16 f16_to_f32 dequant_q4_0)
foreach(s IN LISTS GGML_VULKAN_SHADERS)
add_custom_command(
OUTPUT "vk_shaders/${s}.spv"
COMMAND "${Vulkan_GLSLC_EXECUTABLE}"
-fshader-stage=compute
--target-env=vulkan1.2
-O "${CMAKE_CURRENT_SOURCE_DIR}/vk_shaders/${s}.glsl"
-o "${CMAKE_CURRENT_BINARY_DIR}/vk_shaders/${s}.spv"
DEPENDS "vk_shaders/${s}.glsl"
)
target_sources(ggml-vulkan PRIVATE "vk_shaders/${s}.spv")
endforeach()
add_compile_definitions(GGML_USE_VULKAN)
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} ggml-vulkan)
else()
message(WARNING "Vulkan not found")
endif()
endif()
if (LLAMA_ALL_WARNINGS) if (LLAMA_ALL_WARNINGS)
if (NOT MSVC) if (NOT MSVC)
set(c_flags set(c_flags