configure_msvc_target(ggml-cpu-x64)
configure_msvc_target(ggml-cpu-sse42)
configure_msvc_target(ggml-cpu-sandybridge)
+ # __FMA__ and __F16C__ are not defined in MSVC, however they are implied with AVX2/AVX512
+ # skipping ggml-cpu-ivybridge
+ # skipping ggml-cpu-piledriver
configure_msvc_target(ggml-cpu-haswell)
configure_msvc_target(ggml-cpu-skylakex)
+ configure_msvc_target(ggml-cpu-cannonlake)
+ configure_msvc_target(ggml-cpu-cascadelake)
configure_msvc_target(ggml-cpu-icelake)
+ # MSVC 2022 doesn't support BF16 intrinsics without `/arch:AVX10.1` ?!
+ # https://learn.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=msvc-170
+ # https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-170
+ # skipping ggml-cpu-cooperlake
+ # skipping ggml-cpu-zen4
configure_msvc_target(ggml-cpu-alderlake)
+ # MSVC doesn't support AMX
+ # skipping ggml-cpu-sapphirerapids
if (GGML_BUILD_EXAMPLES)
configure_msvc_target(common-ggml)
endif()
if (GGML_SYSTEM_ARCH STREQUAL "x86")
ggml_add_cpu_backend_variant(x64)
- ggml_add_cpu_backend_variant(sse42 SSE42)
- ggml_add_cpu_backend_variant(sandybridge SSE42 AVX)
- ggml_add_cpu_backend_variant(haswell SSE42 AVX F16C AVX2 BMI2 FMA)
- ggml_add_cpu_backend_variant(skylakex SSE42 AVX F16C AVX2 BMI2 FMA AVX512)
- ggml_add_cpu_backend_variant(icelake SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI)
- ggml_add_cpu_backend_variant(alderlake SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI)
+ ggml_add_cpu_backend_variant(sse42 SSE42)
+ ggml_add_cpu_backend_variant(sandybridge SSE42 AVX)
+ if (NOT MSVC)
+ # __FMA__ and __F16C__ are not defined in MSVC, however they are implied with AVX2/AVX512
+ ggml_add_cpu_backend_variant(ivybridge SSE42 AVX F16C)
+ ggml_add_cpu_backend_variant(piledriver SSE42 AVX F16C FMA)
+ endif()
+ ggml_add_cpu_backend_variant(haswell SSE42 AVX F16C FMA AVX2 BMI2)
+ ggml_add_cpu_backend_variant(skylakex SSE42 AVX F16C FMA AVX2 BMI2 AVX512)
+ ggml_add_cpu_backend_variant(cannonlake SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VBMI)
+ ggml_add_cpu_backend_variant(cascadelake SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VNNI)
+ ggml_add_cpu_backend_variant(icelake SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VBMI AVX512_VNNI)
+ if (NOT MSVC)
+ # MSVC 2022 doesn't support BF16 intrinsics without `/arch:AVX10.1` ?!
+ # https://learn.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=msvc-170
+ # https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-170
+ ggml_add_cpu_backend_variant(cooperlake SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VNNI AVX512_BF16)
+ ggml_add_cpu_backend_variant(zen4 SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16)
+ endif()
+ ggml_add_cpu_backend_variant(alderlake SSE42 AVX F16C FMA AVX2 BMI2 AVX_VNNI)
if (NOT MSVC)
# MSVC doesn't support AMX
- ggml_add_cpu_backend_variant(sapphirerapids SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16 AMX_TILE AMX_INT8)
+ ggml_add_cpu_backend_variant(sapphirerapids SSE42 AVX F16C FMA AVX2 BMI2 AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16 AMX_TILE AMX_INT8)
endif()
elseif(GGML_SYSTEM_ARCH STREQUAL "ARM")
if (CMAKE_SYSTEM_NAME MATCHES "Linux")