mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-16 21:00:14 +00:00
Enable WebAssembly SIMD build (#7839)
Add a build switch "--enable_wasm_simd" to enable WebAssembly SIMD build
This commit is contained in:
parent
5a63904aa9
commit
4dd724ef1a
6 changed files with 31 additions and 11 deletions
|
|
@ -1700,6 +1700,10 @@ if (onnxruntime_BUILD_CSHARP)
|
|||
endif()
|
||||
|
||||
if (onnxruntime_BUILD_WEBASSEMBLY)
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_SIMD)
|
||||
string(APPEND CMAKE_CXX_FLAGS " -msimd128")
|
||||
endif()
|
||||
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_EXCEPTION_CATCHING)
|
||||
string(APPEND CMAKE_CXX_FLAGS " -s DISABLE_EXCEPTION_CATCHING=0")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -25,9 +25,15 @@ set(mlas_common_srcs
|
|||
)
|
||||
|
||||
if (onnxruntime_BUILD_WEBASSEMBLY)
|
||||
file(GLOB_RECURSE mlas_platform_srcs
|
||||
"${ONNXRUNTIME_ROOT}/core/mlas/lib/wasm/*.cpp"
|
||||
)
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_SIMD)
|
||||
file(GLOB_RECURSE mlas_platform_srcs
|
||||
"${ONNXRUNTIME_ROOT}/core/mlas/lib/wasm_simd/*.cpp"
|
||||
)
|
||||
else()
|
||||
file(GLOB_RECURSE mlas_platform_srcs
|
||||
"${ONNXRUNTIME_ROOT}/core/mlas/lib/wasm/*.cpp"
|
||||
)
|
||||
endif()
|
||||
elseif(MSVC)
|
||||
if(onnxruntime_target_platform STREQUAL "ARM64")
|
||||
set(mlas_platform_preprocess_srcs
|
||||
|
|
|
|||
|
|
@ -60,9 +60,19 @@ else()
|
|||
endif()
|
||||
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_THREADS)
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasmThreaded -s USE_PTHREADS=1")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm-threaded")
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_SIMD)
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasmSimdThreaded -s USE_PTHREADS=1")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm-simd-threaded")
|
||||
else()
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasmThreaded -s USE_PTHREADS=1")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm-threaded")
|
||||
endif()
|
||||
else()
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasm")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm")
|
||||
if (onnxruntime_ENABLE_WEBASSEMBLY_SIMD)
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasmSimd")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm-simd")
|
||||
else()
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -s EXPORT_NAME=ortWasm")
|
||||
set_target_properties(onnxruntime_webassembly PROPERTIES OUTPUT_NAME "ort-wasm")
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -621,7 +621,7 @@ enum MLAS_CONV_ALGORITHM {
|
|||
MlasConvAlgorithmGemmDirect,
|
||||
MlasConvAlgorithmExpandThenGemm,
|
||||
MlasConvAlgorithmExpandThenGemmSegmented,
|
||||
#if defined(MLAS_TARGET_WASM)
|
||||
#if defined(MLAS_TARGET_WASM_SCALAR)
|
||||
MlasConvAlgorithmDepthwise,
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Abstract:
|
|||
|
||||
#include "mlasi.h"
|
||||
|
||||
size_t
|
||||
void
|
||||
MLASCALL
|
||||
MlasGemvFloatKernel(
|
||||
const float* A,
|
||||
|
|
@ -155,6 +155,4 @@ Return Value:
|
|||
B += ldb;
|
||||
A++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -336,6 +336,7 @@ def parse_arguments():
|
|||
|
||||
# WebAssembly build
|
||||
parser.add_argument("--build_wasm", action='store_true', help="Build for WebAssembly")
|
||||
parser.add_argument("--enable_wasm_simd", action='store_true', help="Enable WebAssembly SIMD")
|
||||
parser.add_argument(
|
||||
"--disable_wasm_exception_catching", action='store_true',
|
||||
help="Disable exception catching in WebAssembly.")
|
||||
|
|
@ -740,6 +741,7 @@ def generate_build_tree(cmake_path, source_dir, build_dir, cuda_home, cudnn_home
|
|||
"-Donnxruntime_ENABLE_MEMORY_PROFILE=" + ("ON" if args.enable_memory_profile else "OFF"),
|
||||
"-Donnxruntime_ENABLE_CUDA_LINE_NUMBER_INFO=" + ("ON" if args.enable_cuda_line_info else "OFF"),
|
||||
"-Donnxruntime_BUILD_WEBASSEMBLY=" + ("ON" if args.build_wasm else "OFF"),
|
||||
"-Donnxruntime_ENABLE_WEBASSEMBLY_SIMD=" + ("ON" if args.enable_wasm_simd else "OFF"),
|
||||
"-Donnxruntime_ENABLE_WEBASSEMBLY_EXCEPTION_CATCHING=" + ("OFF" if args.disable_wasm_exception_catching
|
||||
else "ON"),
|
||||
"-Donnxruntime_ENABLE_WEBASSEMBLY_THREADS=" + ("ON" if args.enable_wasm_threads else "OFF"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue