From b0682c94c5e461e3641e67aa5889451e75013ee0 Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 14:41:13 +0800 Subject: [PATCH 1/6] Update windows-arm.yml --- .github/workflows/windows-arm.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index 32e508440cb..eea43001f80 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -86,8 +86,8 @@ jobs: run: | export PATH=/msvc/bin/arm64:$PATH mkdir build && cd build - cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DNCNN_BUILD_TESTS=ON .. - cmake --build . --config Release -j $(nproc) + cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Windows -DNCNN_BUILD_TESTS=ON .. + cmake --build . --config Debug -j $(nproc) - name: test run: | cd build From b45fbc5e9f72d6f17b459aab3ab8d3a430526cec Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 14:50:57 +0800 Subject: [PATCH 2/6] Update windows-arm.yml --- .github/workflows/windows-arm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index eea43001f80..a71d958a73d 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -91,4 +91,4 @@ jobs: - name: test run: | cd build - TESTS_EXECUTABLE_LOADER=wine-arm64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="" ctest --output-on-failure -j $(nproc) + TESTS_EXECUTABLE_LOADER=wine-arm64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="" ctest -C Debug --output-on-failure -j $(nproc) From 52069083593f8e27ee3e59cefb549dbc9c332e64 Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 15:25:55 +0800 Subject: [PATCH 3/6] Update windows-arm.yml --- .github/workflows/windows-arm.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index a71d958a73d..32e508440cb 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -86,9 +86,9 @@ jobs: run: | export PATH=/msvc/bin/arm64:$PATH mkdir build && cd build - cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SYSTEM_NAME=Windows -DNCNN_BUILD_TESTS=ON .. - cmake --build . --config Debug -j $(nproc) + cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DNCNN_BUILD_TESTS=ON .. + cmake --build . --config Release -j $(nproc) - name: test run: | cd build - TESTS_EXECUTABLE_LOADER=wine-arm64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="" ctest -C Debug --output-on-failure -j $(nproc) + TESTS_EXECUTABLE_LOADER=wine-arm64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="" ctest --output-on-failure -j $(nproc) From 8d82dfabf3d22e6631b8edddf591cccbfeda979d Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 15:26:25 +0800 Subject: [PATCH 4/6] Update unaryop.cpp --- src/layer/unaryop.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layer/unaryop.cpp b/src/layer/unaryop.cpp index 28447f171e7..c86584e3985 100644 --- a/src/layer/unaryop.cpp +++ b/src/layer/unaryop.cpp @@ -108,7 +108,7 @@ struct unary_op_exp { float operator()(const float& x) const { - return (float)expf(x); + return (float)exp(x); } }; From 13c4145ae63146de157c8bee1e0d9982df646693 Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 15:54:38 +0800 Subject: [PATCH 5/6] Update unaryop.cpp --- src/layer/unaryop.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layer/unaryop.cpp b/src/layer/unaryop.cpp index c86584e3985..28447f171e7 100644 --- a/src/layer/unaryop.cpp +++ b/src/layer/unaryop.cpp @@ -108,7 +108,7 @@ struct unary_op_exp { float operator()(const float& x) const { - return (float)exp(x); + return (float)expf(x); } }; From 6dbb70cd9b1aa3cbce47f984407a7a4360fb94e4 Mon Sep 17 00:00:00 2001 From: nihui Date: Tue, 24 Dec 2024 15:58:28 +0800 Subject: [PATCH 6/6] Update CMakeLists.txt --- src/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cd5f9b6728d..c97235d97a0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -348,6 +348,11 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang target_compile_options(ncnn PRIVATE /fp:fast) endif() + if(NCNN_TARGET_ARCH STREQUAL "arm") + # disable msvc svml optimization on arm target as it produces wrong result + target_compile_options(ncnn PRIVATE /d2Qvec-mathlib-) + endif() + if(NCNN_SHARED_LIB) # msvc argues about stl string and vector uses in exported functions target_compile_options(ncnn PRIVATE /wd4251)