Skip to content

Commit 00d4111

Browse files
mattjclyggerganov
authored andcommitted
cmake : add explicit metal version options (ggml-org#6370)
* cmake: add explicit metal version options * Update CMakeLists.txt --------- Co-authored-by: Georgi Gerganov <[email protected]>
1 parent 8a6502d commit 00d4111

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ option(LLAMA_METAL "llama: use Metal"
113113
option(LLAMA_METAL_NDEBUG "llama: disable Metal debugging" OFF)
114114
option(LLAMA_METAL_SHADER_DEBUG "llama: compile Metal with -fno-fast-math" OFF)
115115
option(LLAMA_METAL_EMBED_LIBRARY "llama: embed Metal library" OFF)
116+
set(LLAMA_METAL_MACOSX_VERSION_MIN "" CACHE STRING
117+
"llama: metal minimum macOS version")
118+
set(LLAMA_METAL_STD "" CACHE STRING "llama: metal standard version (-std flag)")
116119
option(LLAMA_KOMPUTE "llama: use Kompute" OFF)
117120
option(LLAMA_MPI "llama: use MPI" OFF)
118121
option(LLAMA_QKK_64 "llama: use super-block size of 64 for k-quants" OFF)
@@ -250,6 +253,16 @@ if (LLAMA_METAL)
250253
set(XC_FLAGS -O3)
251254
endif()
252255

256+
# Append macOS metal versioning flags
257+
if (LLAMA_METAL_MACOSX_VERSION_MIN)
258+
message(STATUS "Adding -mmacosx-version-min=${LLAMA_METAL_MACOSX_VERSION_MIN} flag to metal compilation")
259+
list(APPEND XC_FLAGS -mmacosx-version-min=${LLAMA_METAL_MACOSX_VERSION_MIN})
260+
endif()
261+
if (LLAMA_METAL_STD)
262+
message(STATUS "Adding -std=${LLAMA_METAL_STD} flag to metal compilation")
263+
list(APPEND XC_FLAGS -std=${LLAMA_METAL_STD})
264+
endif()
265+
253266
add_custom_command(
254267
OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/default.metallib
255268
COMMAND xcrun -sdk macosx metal ${XC_FLAGS} -c ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.metal -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.air

0 commit comments

Comments
 (0)