From d3f85771ef2284a7ff71a58c097b3136cc8e2619 Mon Sep 17 00:00:00 2001 From: Sandro Hanea Date: Tue, 29 Oct 2024 15:35:39 +0100 Subject: [PATCH 1/2] Fixed No_AVX build on Windows --- ggml/cmake/FindSIMD.cmake | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/ggml/cmake/FindSIMD.cmake b/ggml/cmake/FindSIMD.cmake index 5533668ec4a..ecf963e037a 100644 --- a/ggml/cmake/FindSIMD.cmake +++ b/ggml/cmake/FindSIMD.cmake @@ -77,24 +77,25 @@ macro(check_sse type flags) endmacro() # flags are for MSVC only! -check_sse("AVX" " ;/arch:AVX") -if (NOT ${AVX_FOUND}) - set(GGML_AVX OFF) -else() - set(GGML_AVX ON) +# Only perform checks if the options are enabled, otherwise the params won't be respected +if (GGML_AVX) + check_sse("AVX" " ;/arch:AVX") + if (NOT AVX_FOUND) + set(GGML_AVX OFF) + endif() endif() -check_sse("AVX2" " ;/arch:AVX2") -check_sse("FMA" " ;/arch:AVX2") -if ((NOT ${AVX2_FOUND}) OR (NOT ${FMA_FOUND})) - set(GGML_AVX2 OFF) -else() - set(GGML_AVX2 ON) +if (GGML_AVX2) + check_sse("AVX2" " ;/arch:AVX2") + check_sse("FMA" " ;/arch:AVX2") + if (NOT AVX2_FOUND OR NOT FMA_FOUND) + set(GGML_AVX2 OFF) + endif() endif() -check_sse("AVX512" " ;/arch:AVX512") -if (NOT ${AVX512_FOUND}) - set(GGML_AVX512 OFF) -else() - set(GGML_AVX512 ON) -endif() +if (GGML_AVX512) + check_sse("AVX512" " ;/arch:AVX512") + if (NOT AVX512_FOUND) + set(GGML_AVX512 OFF) + endif() +endif() \ No newline at end of file From f17dc8dd09e9911157e532c8088af3de0d75361a Mon Sep 17 00:00:00 2001 From: Sandro Hanea Date: Tue, 29 Oct 2024 15:53:34 +0100 Subject: [PATCH 2/2] Changed default for MSVC to use AVX --- ggml/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index 89fdf9d1c11..071295dbb57 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -85,7 +85,7 @@ option(GGML_SANITIZE_ADDRESS "ggml: enable address sanitizer" OFF) option(GGML_SANITIZE_UNDEFINED "ggml: enable undefined sanitizer" OFF) # instruction set specific -if (GGML_NATIVE OR NOT GGML_NATIVE_DEFAULT) +if (NOT MSVC AND (GGML_NATIVE OR NOT GGML_NATIVE_DEFAULT)) set(INS_ENB OFF) else() set(INS_ENB ON)