@@ -36,6 +36,12 @@ endif()
36
36
# Option list
37
37
#
38
38
39
+ if (APPLE )
40
+ set (LLAMA_METAL_DEFAULT ON )
41
+ else ()
42
+ set (LLAMA_METAL_DEFAULT OFF )
43
+ endif ()
44
+
39
45
# general
40
46
option (LLAMA_STATIC "llama: static link libraries" OFF )
41
47
option (LLAMA_NATIVE "llama: enable -march=native flag" OFF )
@@ -76,7 +82,7 @@ option(LLAMA_CUDA_F16 "llama: use 16 bit floats for some
76
82
set (LLAMA_CUDA_KQUANTS_ITER "2" CACHE STRING "llama: iters./thread per block for Q2_K/Q6_K" )
77
83
option (LLAMA_HIPBLAS "llama: use hipBLAS" OFF )
78
84
option (LLAMA_CLBLAST "llama: use CLBlast" OFF )
79
- option (LLAMA_METAL "llama: use Metal" OFF )
85
+ option (LLAMA_METAL "llama: use Metal" ${LLAMA_METAL_DEFAULT} )
80
86
option (LLAMA_MPI "llama: use MPI" OFF )
81
87
option (LLAMA_K_QUANTS "llama: use k-quants" ON )
82
88
option (LLAMA_QKK_64 "llama: use super-block size of 64 for k-quants" OFF )
@@ -158,6 +164,31 @@ if (APPLE AND LLAMA_ACCELERATE)
158
164
endif ()
159
165
endif ()
160
166
167
+ if (LLAMA_METAL )
168
+ find_library (FOUNDATION_LIBRARY Foundation REQUIRED )
169
+ find_library (METAL_FRAMEWORK Metal REQUIRED )
170
+ find_library (METALKIT_FRAMEWORK MetalKit REQUIRED )
171
+
172
+ message (STATUS "Metal framework found" )
173
+
174
+ set (GGML_SOURCES_METAL ggml-metal.m ggml-metal.h )
175
+
176
+ add_compile_definitions (GGML_USE_METAL )
177
+ #add_compile_definitions(GGML_METAL_NDEBUG)
178
+
179
+ # get full path to the file
180
+ #add_compile_definitions(GGML_METAL_DIR_KERNELS="${CMAKE_CURRENT_SOURCE_DIR}/")
181
+
182
+ # copy ggml-metal.metal to bin directory
183
+ configure_file (ggml-metal.metal bin/ggml-metal.metal COPYONLY )
184
+
185
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS}
186
+ ${FOUNDATION_LIBRARY}
187
+ ${METAL_FRAMEWORK}
188
+ ${METALKIT_FRAMEWORK}
189
+ )
190
+ endif ()
191
+
161
192
if (LLAMA_BLAS )
162
193
if (LLAMA_STATIC )
163
194
set (BLA_STATIC ON )
@@ -293,29 +324,6 @@ if (LLAMA_CUBLAS)
293
324
endif ()
294
325
endif ()
295
326
296
- if (LLAMA_METAL )
297
- find_library (FOUNDATION_LIBRARY Foundation REQUIRED )
298
- find_library (METAL_FRAMEWORK Metal REQUIRED )
299
- find_library (METALKIT_FRAMEWORK MetalKit REQUIRED )
300
-
301
- set (GGML_SOURCES_METAL ggml-metal.m ggml-metal.h )
302
-
303
- add_compile_definitions (GGML_USE_METAL )
304
- #add_compile_definitions(GGML_METAL_NDEBUG)
305
-
306
- # get full path to the file
307
- #add_compile_definitions(GGML_METAL_DIR_KERNELS="${CMAKE_CURRENT_SOURCE_DIR}/")
308
-
309
- # copy ggml-metal.metal to bin directory
310
- configure_file (ggml-metal.metal bin/ggml-metal.metal COPYONLY )
311
-
312
- set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS}
313
- ${FOUNDATION_LIBRARY}
314
- ${METAL_FRAMEWORK}
315
- ${METALKIT_FRAMEWORK}
316
- )
317
- endif ()
318
-
319
327
if (LLAMA_MPI )
320
328
cmake_minimum_required (VERSION 3.10 )
321
329
find_package (MPI )
0 commit comments