Skip to content

Commit 674dec9

Browse files
committed
fixes
1 parent c4e9c7c commit 674dec9

File tree

3 files changed

+42
-41
lines changed

3 files changed

+42
-41
lines changed

ggml/CMakeLists.txt

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -92,30 +92,33 @@ else()
9292
set(INS_ENB ON)
9393
endif()
9494

95-
option(GGML_CPU_HBM "ggml: use memkind for CPU HBM" OFF)
96-
option(GGML_CPU_AARCH64 "ggml: use runtime weight conversion of Q4_0 to Q4_X_X" ON)
97-
98-
option(GGML_AVX "ggml: enable AVX" ${INS_ENB})
99-
option(GGML_AVX_VNNI "ggml: enable AVX-VNNI" OFF)
100-
option(GGML_AVX2 "ggml: enable AVX2" ${INS_ENB})
101-
option(GGML_AVX512 "ggml: enable AVX512" OFF)
102-
option(GGML_AVX512_VBMI "ggml: enable AVX512-VBMI" OFF)
103-
option(GGML_AVX512_VNNI "ggml: enable AVX512-VNNI" OFF)
104-
option(GGML_AVX512_BF16 "ggml: enable AVX512-BF16" OFF)
105-
option(GGML_AMX_TILE "ggml: enable AMX-TILE" OFF)
106-
option(GGML_AMX_INT8 "ggml: enable AMX-INT8" OFF)
107-
option(GGML_AMX_BF16 "ggml: enable AMX-BF16" OFF)
108-
option(GGML_FMA "ggml: enable FMA" ${INS_ENB})
95+
option(GGML_CPU_HBM "ggml: use memkind for CPU HBM" OFF)
96+
option(GGML_CPU_AARCH64 "ggml: use runtime weight conversion of Q4_0 to Q4_X_X" ON)
97+
option(GGML_AVX "ggml: enable AVX" ${INS_ENB})
98+
option(GGML_AVX_VNNI "ggml: enable AVX-VNNI" OFF)
99+
option(GGML_AVX2 "ggml: enable AVX2" ${INS_ENB})
100+
option(GGML_AVX512 "ggml: enable AVX512F" OFF)
101+
option(GGML_AVX512_VBMI "ggml: enable AVX512-VBMI" OFF)
102+
option(GGML_AVX512_VNNI "ggml: enable AVX512-VNNI" OFF)
103+
option(GGML_AVX512_BF16 "ggml: enable AVX512-BF16" OFF)
109104
if (NOT MSVC)
110-
option(GGML_F16C "ggml: enable F16C" ${INS_ENB}) # in MSVC F16C is implied with AVX2/AVX512
105+
# in MSVC F16C and FMA is implied with AVX2/AVX512
106+
option(GGML_FMA "ggml: enable FMA" ${INS_ENB})
107+
option(GGML_F16C "ggml: enable F16C" ${INS_ENB})
108+
# MSVC does not seem to support AMX
109+
option(GGML_AMX_TILE "ggml: enable AMX-TILE" OFF)
110+
option(GGML_AMX_INT8 "ggml: enable AMX-INT8" OFF)
111+
option(GGML_AMX_BF16 "ggml: enable AMX-BF16" OFF)
111112
endif()
112-
option(GGML_LASX "ggml: enable lasx" ON)
113-
option(GGML_LSX "ggml: enable lsx" ON)
114-
option(GGML_RVV "ggml: enable rvv" ON)
115-
option(GGML_SVE "ggml: enable SVE" OFF)
113+
option(GGML_LASX "ggml: enable lasx" ON)
114+
option(GGML_LSX "ggml: enable lsx" ON)
115+
option(GGML_RVV "ggml: enable rvv" ON)
116+
option(GGML_SVE "ggml: enable SVE" OFF)
117+
option(GGML_CPU_ALL_VARIANTS "ggml: build all variants of the CPU backend (requires GGML_BACKEND_DL)" OFF)
118+
116119

117120
if (WIN32)
118-
set(GGML_WIN_VER "0x602" CACHE STRING "ggml: Windows Version")
121+
set(GGML_WIN_VER "0x602" CACHE STRING "ggml: Windows version")
119122
endif()
120123

121124
# ggml core
@@ -180,11 +183,7 @@ option(GGML_BUILD_EXAMPLES "ggml: build examples" ${GGML_STANDALONE})
180183
set(CMAKE_C_STANDARD 11)
181184
set(CMAKE_C_STANDARD_REQUIRED true)
182185

183-
if (GGML_SYCL)
184-
set(CMAKE_CXX_STANDARD 17)
185-
else()
186-
set(CMAKE_CXX_STANDARD 11)
187-
endif()
186+
set(CMAKE_CXX_STANDARD 17)
188187
set(CMAKE_CXX_STANDARD_REQUIRED true)
189188

190189
set(THREADS_PREFER_PTHREAD_FLAG ON)

ggml/src/CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,12 +294,15 @@ if (GGML_CPU_ALL_VARIANTS)
294294
endif()
295295
ggml_add_cpu_backend_variant(sandybridge AVX)
296296
ggml_add_cpu_backend_variant(haswell AVX F16C AVX2 FMA)
297-
ggml_add_cpu_backend_variant(alderlake AVX F16C AVX2 FMA AVX_VNNI)
298297
ggml_add_cpu_backend_variant(skylakex AVX F16C AVX2 FMA AVX512)
299298
ggml_add_cpu_backend_variant(icelake AVX F16C AVX2 FMA AVX512 AVX512_VBMI AVX512_VNNI)
300-
ggml_add_cpu_backend_variant(sapphirerapids AVX F16C AVX2 FMA AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16 AMX_TILE AMX_INT8)
299+
if (NOT MSVC)
300+
# MSVC doesn't support AVX-VNNI or AMX
301+
ggml_add_cpu_backend_variant(alderlake AVX F16C AVX2 FMA AVX_VNNI)
302+
ggml_add_cpu_backend_variant(sapphirerapids AVX F16C AVX2 FMA AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16 AMX_TILE AMX_INT8)
303+
endif()
301304
else ()
302-
ggml_add_cpu_backend_variant_impl()
305+
ggml_add_cpu_backend_variant_impl("")
303306
endif()
304307

305308
ggml_add_backend(BLAS)

ggml/src/ggml-cpu/CMakeLists.txt

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
179179
if (MSVC)
180180
# instruction set detection for MSVC only
181181
if (GGML_NATIVE)
182-
include(cmake/FindSIMD.cmake)
182+
include(ggml-cpu/cmake/FindSIMD.cmake)
183183
endif ()
184184
if (GGML_AVX512)
185185
list(APPEND ARCH_FLAGS /arch:AVX512)
@@ -227,12 +227,10 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
227227
list(APPEND ARCH_DEFINITIONS GGML_SSE42)
228228
endif()
229229
if (GGML_AVX_VNNI)
230-
list(APPEND ARCH_DEFINITIONS __AVXVNNI__ GGML_AVX_VNNI)
231-
if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
232-
list(APPEND ARCH_FLAGS -mavxvnni)
233-
endif()
230+
# MSVC generates AVX512 with AVX-VNNI intrinsics even with /arch:AVX2
231+
#list(APPEND ARCH_DEFINITIONS __AVXVNNI__ GGML_AVX_VNNI)
234232
endif()
235-
else()
233+
else ()
236234
if (GGML_NATIVE)
237235
list(APPEND ARCH_FLAGS -march=native)
238236
else ()
@@ -340,13 +338,14 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
340338
# The feature detection code is compiled as a separate target so that
341339
# it can be built without the architecture flags
342340
# Since multiple variants of the CPU backend may be included in the same
343-
# build, using set_source_files_properties() is not possible
344-
add_library(${GGML_CPU_NAME}_feats OBJECT ggml-cpu/cpu-feats-x86.cpp)
345-
target_include_directories(${GGML_CPU_NAME}_feats PRIVATE . .. ../include)
346-
target_compile_definitions(${GGML_CPU_NAME}_feats PRIVATE ${ARCH_DEFINITIONS})
347-
target_compile_definitions(${GGML_CPU_NAME}_feats PRIVATE GGML_BACKEND_DL GGML_BACKEND_BUILD GGML_BACKEND_SHARED)
348-
set_target_properties(${GGML_CPU_NAME}_feats PROPERTIES POSITION_INDEPENDENT_CODE ON)
349-
target_link_libraries(${GGML_CPU_NAME} PRIVATE ${GGML_CPU_NAME}_feats)
341+
# build, using set_source_files_properties() to set the arch flags is not possible
342+
set(GGML_CPU_FEATS_NAME ${GGML_CPU_NAME}-feats)
343+
add_library(${GGML_CPU_FEATS_NAME} OBJECT ggml-cpu/cpu-feats-x86.cpp)
344+
target_include_directories(${GGML_CPU_FEATS_NAME} PRIVATE . .. ../include)
345+
target_compile_definitions(${GGML_CPU_FEATS_NAME} PRIVATE ${ARCH_DEFINITIONS})
346+
target_compile_definitions(${GGML_CPU_FEATS_NAME} PRIVATE GGML_BACKEND_DL GGML_BACKEND_BUILD GGML_BACKEND_SHARED)
347+
set_target_properties(${GGML_CPU_FEATS_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
348+
target_link_libraries(${GGML_CPU_NAME} PRIVATE ${GGML_CPU_FEATS_NAME})
350349
endif()
351350

352351
if (EMSCRIPTEN)

0 commit comments

Comments
 (0)