mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-07 00:13:17 +00:00
### Description Update xnnpack to remove the dependency on psimd and fp16 libraries. However, coremltool still depends on them, which will be addressed later. Also, update CPUINFO because the latest xnnpack requires CPUINFO's avx10 support. ### Motivation and Context The fewer dependencies the better.
37 lines
2.8 KiB
Diff
37 lines
2.8 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index f0b3410ae..1e3cb8178 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -337,7 +337,7 @@ ENDIF()
|
|
# ---[ Build flags
|
|
IF(NOT CMAKE_SYSTEM_NAME)
|
|
MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_NAME not defined")
|
|
-ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Android|Darwin|iOS|Linux|Windows|CYGWIN|MSYS|QURT)$")
|
|
+ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Android|Darwin|iOS|Linux|Windows|CYGWIN|MSYS|QURT|Emscripten|iOS)$")
|
|
MESSAGE(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_NAME value \"${CMAKE_SYSTEM_NAME}\"")
|
|
ENDIF()
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
@@ -848,7 +848,12 @@ IF(XNNPACK_BUILD_LIBRARY)
|
|
TARGET_LINK_LIBRARIES(operator-utils PRIVATE xnnpack-base logging)
|
|
TARGET_LINK_LIBRARIES(reference-ukernels PRIVATE xnnpack-base)
|
|
TARGET_LINK_LIBRARIES(subgraph PRIVATE xnnpack-base allocator logging memory mutex operators operator-run datatype)
|
|
- TARGET_LINK_LIBRARIES(XNNPACK PRIVATE xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing microkernels-prod subgraph datatype reference-ukernels)
|
|
+ IF(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
|
+ # omit microkernels-prod as the list is manually created by ORT in cmake/external/xnnpack.cmake
|
|
+ TARGET_LINK_LIBRARIES(XNNPACK PRIVATE xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing subgraph datatype reference-ukernels)
|
|
+ ELSE()
|
|
+ TARGET_LINK_LIBRARIES(XNNPACK PRIVATE xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing microkernels-prod subgraph datatype reference-ukernels)
|
|
+ ENDIF()
|
|
TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool logging)
|
|
SET_TARGET_PROPERTIES(XNNPACK PROPERTIES C_EXTENSIONS YES)
|
|
ENDIF()
|
|
@@ -857,7 +862,8 @@ IF(NOT MSVC)
|
|
ENDIF()
|
|
IF(XNNPACK_TARGET_PROCESSOR STREQUAL "arm")
|
|
SET_PROPERTY(SOURCE ${ALL_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -marm ")
|
|
- SET_PROPERTY(SOURCE ${ALL_ARMSIMD32_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv6 -mfpu=vfp -munaligned-access ")
|
|
+ # set this to armv7-a to workaround build issue. we don't target armv6 so it shouldn't matter
|
|
+ SET_PROPERTY(SOURCE ${ALL_ARMSIMD32_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=vfp -munaligned-access ")
|
|
SET_PROPERTY(SOURCE ${ALL_NEON_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=neon ")
|
|
SET_PROPERTY(SOURCE ${ALL_NEONFP16_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -march=armv7-a -mfpu=neon-fp16 ")
|
|
# GCC requires -mfp16-format=ieee to define __fp16 type, but Clang doesn't support this option at all.
|