Skip to content

Commit 815e3cb

Browse files
committed
Merge branch 'main' into graph_profiling
2 parents 668f5c2 + 1ca9746 commit 815e3cb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+684
-385
lines changed

cmake/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1801,8 +1801,11 @@ if (onnxruntime_ENABLE_EXTERNAL_CUSTOM_OP_SCHEMAS)
18011801
)
18021802
endif()
18031803

1804-
if(NOT onnxruntime_BUILD_SHARED_LIB AND onnxruntime_USE_WEBGPU)
1805-
message(WARNING "CMake target files will not be generated for static onnxruntime builds with webgpu support")
1804+
if (NOT onnxruntime_BUILD_SHARED_LIB AND
1805+
(onnxruntime_USE_WEBGPU OR (CMAKE_SYSTEM_NAME STREQUAL "Emscripten" AND onnxruntime_USE_XNNPACK)))
1806+
message(WARNING
1807+
"CMake target files will not be generated for static onnxruntime builds "
1808+
"with WebGPU or Emscripten+XNNPACK support")
18061809
else()
18071810
# Install
18081811
include(CMakePackageConfigHelpers)

cmake/external/abseil-cpp.cmake

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,8 @@ set(ABSL_USE_EXTERNAL_GOOGLETEST ON)
1212

1313
# Both abseil and xnnpack create a target called memory, which
1414
# results in a duplicate target if ABSL_ENABLE_INSTALL is on.
15-
if (onnxruntime_USE_XNNPACK)
16-
set(ABSL_ENABLE_INSTALL OFF)
17-
else()
18-
if (NOT CMAKE_SYSTEM_NAME MATCHES "AIX")
15+
if (NOT CMAKE_SYSTEM_NAME MATCHES "AIX")
1916
set(ABSL_ENABLE_INSTALL ON)
20-
endif()
2117
endif()
2218

2319
if(Patch_FOUND)

cmake/external/xnnpack.cmake

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
6262
SET(ORT_TARGET_PROCESSOR "arm64")
6363
ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
6464
SET(ORT_TARGET_PROCESSOR "ppc64")
65+
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
66+
SET(ORT_TARGET_PROCESSOR "wasm")
6567
ELSEIF(NOT ORT_TARGET_PROCESSOR MATCHES "^(x86(_64)?|arm64|riscv(32|64|128)|Hexagon|ppc64)$")
6668
SET(ORT_TARGET_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
6769
ELSE()
@@ -90,18 +92,21 @@ onnxruntime_fetchcontent_makeavailable(googlexnnpack)
9092
set(XNNPACK_DIR ${googlexnnpack_SOURCE_DIR})
9193
set(XNNPACK_INCLUDE_DIR ${XNNPACK_DIR}/include)
9294

93-
set(onnxruntime_EXTERNAL_LIBRARIES_XNNPACK XNNPACK xnnpack-microkernels-prod pthreadpool)
95+
set(onnxruntime_EXTERNAL_LIBRARIES_XNNPACK XNNPACK pthreadpool)
9496
if(ORT_TARGET_PROCESSOR MATCHES "^arm64.*" AND NOT CMAKE_C_COMPILER_ID STREQUAL "MSVC")
9597
list(APPEND onnxruntime_EXTERNAL_LIBRARIES_XNNPACK kleidiai)
9698
endif()
99+
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
100+
list(APPEND onnxruntime_EXTERNAL_LIBRARIES_XNNPACK xnnpack-microkernels-prod)
101+
endif()
97102

98103
# the XNNPACK CMake setup doesn't include the WASM kernels so we have to manually set those up
99104
if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
100105
# See source lists in _deps/googlexnnpack-src/BUILD.bazel for wasm_prod_microkernels
101106
message("Adding WebAssembly Source Files to XNNPACK")
102107
set(wasm_srcs "")
103108

104-
file(READ "${XNNPACK_DIR}/BUILD.bazel" xnnpack_bazel_config)
109+
file(READ "${XNNPACK_DIR}/build_srcs.bzl" xnnpack_bazel_config)
105110

106111
# Replace newlines with semicolon so that it is treated as a list by CMake
107112
# Also replace '[' and ']' so the bazel source lists don't get parsed as a nested list by cmake
@@ -139,19 +144,26 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
139144
GetSrcListFromBazel("TABLE_SRCS" table_srcs)
140145
list(APPEND wasm_srcs ${operator_srcs} ${table_srcs})
141146

142-
# kernels
143-
list(APPEND wasm_srcs ${XNNPACK_DIR}/src/amalgam/gen/scalar.c)
144-
list(APPEND wasm_srcs ${XNNPACK_DIR}/src/amalgam/gen/wasm.c)
147+
set(microkernel_src "")
148+
149+
include(${XNNPACK_DIR}/cmake/gen/scalar_microkernels.cmake)
150+
list(APPEND microkernel_src ${PROD_SCALAR_MICROKERNEL_SRCS})
151+
list(APPEND microkernel_src ${PROD_WASM_MICROKERNEL_SRCS})
145152

146153
if(onnxruntime_ENABLE_WEBASSEMBLY_RELAXED_SIMD)
147-
list(APPEND wasm_srcs ${XNNPACK_DIR}/src/amalgam/gen/wasmsimd.c)
148-
list(APPEND wasm_srcs ${XNNPACK_DIR}/src/amalgam/gen/wasmrelaxedsimd.c)
154+
include(${XNNPACK_DIR}/cmake/gen/wasmsimd_microkernels.cmake)
155+
include(${XNNPACK_DIR}/cmake/gen/wasmrelaxedsimd_microkernels.cmake)
156+
list(APPEND microkernel_src ${PROD_WASMSIMD_MICROKERNEL_SRCS})
157+
list(APPEND microkernel_src ${PROD_WASMRELAXEDSIMD_MICROKERNEL_SRCS})
149158
target_compile_options(XNNPACK PRIVATE "-msimd128")
150159
target_compile_options(XNNPACK PRIVATE "-mrelaxed-simd")
151160
elseif(onnxruntime_ENABLE_WEBASSEMBLY_SIMD)
152-
list(APPEND wasm_srcs ${XNNPACK_DIR}/src/amalgam/gen/wasmsimd.c)
161+
include(${XNNPACK_DIR}/cmake/gen/wasmsimd_microkernels.cmake)
162+
list(APPEND microkernel_src ${PROD_WASMSIMD_MICROKERNEL_SRCS})
153163
target_compile_options(XNNPACK PRIVATE "-msimd128")
154164
endif()
165+
list(TRANSFORM microkernel_src PREPEND "${XNNPACK_DIR}/")
166+
list(APPEND wasm_srcs ${microkernel_src})
155167

156168
message(DEBUG "wasm_srcs: ${wasm_srcs}\n")
157169
target_sources(XNNPACK PRIVATE ${wasm_srcs})

0 commit comments

Comments
 (0)