Skip to content

Commit 6c7d990

Browse files
authored
Merge branch 'microsoft:main' into ovep-develop-lnl-1.1
2 parents 3d1295b + 88336ff commit 6c7d990

File tree

359 files changed

+5435
-3082
lines changed

Some content is hidden

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

359 files changed

+5435
-3082
lines changed

.github/workflows/lint.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ jobs:
9898
--exclude=onnxruntime/core/mlas/inc/*
9999
--exclude=onnxruntime/core/mlas/lib/*
100100
--exclude=onnxruntime/contrib_ops/cuda/bert/flash_attention/*
101+
--exclude=build/Debug/*
102+
--exclude=cmake/*
103+
--exclude=csharp/test/*
104+
--exclude=onnxruntime/core/providers/dml/DmlExecutionProvider/src/Operators/GeneratedShaders/*
105+
--exclude=orttraining/orttraining/test/*
106+
--exclude=onnxruntime/test/*
107+
--exclude=winml/*
101108
filter: "-runtime/references"
102109

103110
lint-js:

cgmanifests/generated/cgmanifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"component": {
3737
"type": "git",
3838
"git": {
39-
"commitHash": "4a2c63365eff8823a5221db86ef490e828306f9d",
39+
"commitHash": "f46495ea96f68fc3f6c394f099b2992743f6ff7f",
4040
"repositoryUrl": "https://github.com/abseil/abseil-cpp.git"
4141
},
4242
"comments": "abseil_cpp"

cmake/CMakeLists.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -665,10 +665,10 @@ else()
665665
check_cxx_compiler_flag(-Wuseless-cast HAS_USELESS_CAST)
666666
check_cxx_compiler_flag(-Wstringop-overflow HAS_STRINGOP_OVERFLOW)
667667
if(onnxruntime_ENABLE_TRAINING_APIS)
668-
check_cxx_compiler_flag(-Wdangling-reference HAS_DANGLING_REFERENCE)
669-
if(HAS_DANGLING_REFERENCE)
670-
list(APPEND ORT_WARNING_FLAGS -Wno-dangling-reference)
671-
endif()
668+
check_cxx_compiler_flag(-Wdangling-reference HAS_DANGLING_REFERENCE)
669+
if(HAS_DANGLING_REFERENCE)
670+
list(APPEND ORT_WARNING_FLAGS -Wno-dangling-reference)
671+
endif()
672672
endif()
673673
check_function_exists(reallocarray HAS_REALLOCARRAY)
674674
if (NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten" AND onnxruntime_target_platform STREQUAL "aarch64")
@@ -845,8 +845,8 @@ if (onnxruntime_USE_QNN)
845845
file(GLOB QNN_LIB_FILES LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/libQnn*.so" "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/Qnn*.dll")
846846
if (${QNN_ARCH_ABI} STREQUAL "aarch64-windows-msvc" OR ${QNN_ARCH_ABI} STREQUAL "arm64x-windows-msvc")
847847
file(GLOB EXTRA_HTP_LIB LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/hexagon-v68/unsigned/libQnnHtpV68Skel.so"
848-
"${onnxruntime_QNN_HOME}/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so"
849-
"${onnxruntime_QNN_HOME}/lib/hexagon-v73/unsigned/libqnnhtpv73.cat")
848+
"${onnxruntime_QNN_HOME}/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so"
849+
"${onnxruntime_QNN_HOME}/lib/hexagon-v73/unsigned/libqnnhtpv73.cat")
850850
list(APPEND QNN_LIB_FILES ${EXTRA_HTP_LIB})
851851
endif()
852852
message(STATUS "QNN lib files: " ${QNN_LIB_FILES})
@@ -1057,6 +1057,9 @@ function(onnxruntime_set_compile_flags target_name)
10571057
foreach(FLAG ${ORT_WARNING_FLAGS})
10581058
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${FLAG}>")
10591059
endforeach()
1060+
if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 13 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
1061+
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:-Wno-maybe-uninitialized>")
1062+
endif()
10601063
if (onnxruntime_USE_CUDA)
10611064
foreach(FLAG ${ORT_WARNING_FLAGS})
10621065
target_compile_options(${target_name} PRIVATE "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options ${FLAG}>")
@@ -1198,11 +1201,11 @@ if (onnxruntime_USE_ACL OR onnxruntime_USE_ACL_1902 OR onnxruntime_USE_ACL_1905
11981201
if (onnxruntime_USE_ACL_2002)
11991202
add_definitions(-DACL_2002=1)
12001203
else()
1201-
if (onnxruntime_USE_ACL_2308)
1202-
add_definitions(-DACL_2308=1)
1203-
else()
1204+
if (onnxruntime_USE_ACL_2308)
1205+
add_definitions(-DACL_2308=1)
1206+
else()
12041207
add_definitions(-DACL_1905=1)
1205-
endif()
1208+
endif()
12061209
endif()
12071210
endif()
12081211
endif()
@@ -1529,7 +1532,7 @@ if (onnxruntime_ENABLE_TRAINING)
15291532
list(APPEND onnxruntime_EXTERNAL_LIBRARIES tensorboard)
15301533
endif()
15311534

1532-
if (UNIX AND onnxruntime_USE_NCCL)
1535+
if (UNIX OR onnxruntime_USE_NCCL)
15331536
# MPI is INDEPENDENT of NCCL for now. You can build NCLL without MPI and launch multi-GPU with your own launcher.
15341537
if (onnxruntime_USE_MPI)
15351538
if (EXISTS "${onnxruntime_MPI_HOME}")

cmake/deps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# NOTE: You must run deps_update_and_upload.py and generate_cgmanifest.py when ready to test your changes in a CI.
1313
# See https://microsoft.sharepoint.com/teams/ONNX2/_layouts/OneNote.aspx?id=%2Fteams%2FONNX2%2FShared%20Documents%2FNotebooks%2FONNX%20Ecosystem%20Team%20Notebook&wd=target%28Development.one%7C63D3AB47-51D1-4A62-9965-66882234BD44%2FAdd%20or%20update%20a%20dependency%20in%20deps.txt%7C0E9ED71D-89D5-40FA-B05F-C0123289C591%2F%29
1414
#
15-
abseil_cpp;https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.0.zip;bc2cec6baaad67fcb6c0c38972b687d4797927e9
15+
abseil_cpp;https://github.com/abseil/abseil-cpp/archive/f46495ea96f68fc3f6c394f099b2992743f6ff7f.zip;0e2b6d1dc7f0a808d1e23f7dd985f7bc18d52cbc
1616
coremltools;https://github.com/apple/coremltools/archive/refs/tags/7.1.zip;f1bab0f30966f2e217d8e01207d518f230a1641a
1717
cxxopts;https://github.com/jarro2783/cxxopts/archive/3c73d91c0b04e2b59462f0a741be8c07024c1bc0.zip;6c6ca7f8480b26c8d00476e0e24b7184717fe4f0
1818
date;https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.zip;2dac0c81dc54ebdd8f8d073a75c053b04b56e159

cmake/onnxruntime_mlas.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ function(setup_mlas_source_for_windows)
8282
${MLAS_SRC_DIR}/qgemm_kernel_neon.cpp
8383
${MLAS_SRC_DIR}/qgemm_kernel_udot.cpp
8484
${MLAS_SRC_DIR}/qgemm_kernel_sdot.cpp
85+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon.h
8586
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon.cpp
87+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_fp32.cpp
88+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_int8.cpp
8689
)
8790

8891
set(mlas_platform_preprocess_srcs
@@ -350,9 +353,12 @@ else()
350353
${MLAS_SRC_DIR}/qgemm_kernel_neon.cpp
351354
${MLAS_SRC_DIR}/qgemm_kernel_udot.cpp
352355
${MLAS_SRC_DIR}/qgemm_kernel_sdot.cpp
356+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon.h
353357
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon.cpp
358+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_fp32.cpp
359+
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_int8.cpp
354360
)
355-
set_source_files_properties(${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon.cpp
361+
set_source_files_properties(${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_int8.cpp
356362
PROPERTIES COMPILE_FLAGS " -march=armv8.2-a+dotprod")
357363
if (NOT APPLE)
358364
set(mlas_platform_srcs

cmake/onnxruntime_providers.cmake

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -192,32 +192,7 @@ if (onnxruntime_USE_TVM)
192192
endif()
193193

194194
if (onnxruntime_USE_VSINPU)
195-
add_definitions(-DUSE_VSINPU=1)
196-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
197-
file(GLOB_RECURSE onnxruntime_providers_vsinpu_srcs
198-
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/builders/*.h"
199-
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/builders/*.cc"
200-
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/*.h"
201-
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/*.cc"
202-
"${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.h"
203-
"${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.cc"
204-
)
205-
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_vsinpu_srcs})
206-
add_library(onnxruntime_providers_vsinpu ${onnxruntime_providers_vsinpu_srcs})
207-
onnxruntime_add_include_to_target(onnxruntime_providers_vsinpu
208-
onnxruntime_common onnxruntime_framework onnx onnx_proto protobuf::libprotobuf-lite flatbuffers Boost::mp11
209-
safeint_interface nsync::nsync_cpp)
210-
add_dependencies(onnxruntime_providers_vsinpu ${onnxruntime_EXTERNAL_DEPENDENCIES})
211-
set_target_properties(onnxruntime_providers_vsinpu PROPERTIES FOLDER "ONNXRuntime" LINKER_LANGUAGE CXX)
212-
target_include_directories(onnxruntime_providers_vsinpu PRIVATE ${ONNXRUNTIME_ROOT} $ENV{TIM_VX_INSTALL}/include)
213-
214-
find_library(TIMVX_LIBRARY NAMES tim-vx PATHS $ENV{TIM_VX_INSTALL}/lib NO_DEFAULT_PATH)
215-
if(TIMVX_LIBRARY)
216-
target_link_libraries(onnxruntime_providers_vsinpu PRIVATE ${TIMVX_LIBRARY})
217-
else()
218-
message(FATAL_ERROR "Cannot find TIM-VX library!")
219-
endif()
220-
195+
include(onnxruntime_providers_vsinpu.cmake)
221196
endif()
222197

223198
if (onnxruntime_USE_XNNPACK)

cmake/onnxruntime_providers_cuda.cmake

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,21 @@
3333
)
3434

3535

36-
if (onnxruntime_CUDA_MINIMAL)
37-
set(onnxruntime_providers_cuda_shared_srcs "")
38-
else()
36+
if (NOT onnxruntime_CUDA_MINIMAL)
3937
file(GLOB_RECURSE onnxruntime_providers_cuda_cu_srcs CONFIGURE_DEPENDS
4038
"${ONNXRUNTIME_ROOT}/core/providers/cuda/*.cu"
4139
"${ONNXRUNTIME_ROOT}/core/providers/cuda/*.cuh"
4240
)
41+
else()
42+
set(onnxruntime_providers_cuda_cu_srcs
43+
"${ONNXRUNTIME_ROOT}/core/providers/cuda/math/unary_elementwise_ops_impl.cu"
44+
)
4345
endif()
4446
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_cuda_cc_srcs} ${onnxruntime_providers_cuda_shared_srcs} ${onnxruntime_providers_cuda_cu_srcs})
4547
set(onnxruntime_providers_cuda_src ${onnxruntime_providers_cuda_cc_srcs} ${onnxruntime_providers_cuda_shared_srcs} ${onnxruntime_providers_cuda_cu_srcs})
4648

4749
# disable contrib ops conditionally
48-
if(NOT onnxruntime_DISABLE_CONTRIB_OPS)
50+
if(NOT onnxruntime_DISABLE_CONTRIB_OPS AND NOT onnxruntime_CUDA_MINIMAL)
4951
if (NOT onnxruntime_ENABLE_ATEN)
5052
list(REMOVE_ITEM onnxruntime_cuda_contrib_ops_cc_srcs
5153
"${ONNXRUNTIME_ROOT}/contrib_ops/cuda/aten_ops/aten_op.cc"

cmake/onnxruntime_providers_rocm.cmake

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@
4949

5050
find_library(RCCL_LIB rccl REQUIRED)
5151
find_library(ROCTRACER_LIB roctracer64 REQUIRED)
52-
set(ONNXRUNTIME_ROCM_LIBS roc::rocblas MIOpen hip::hipfft ${RCCL_LIB} ${ROCTRACER_LIB})
52+
find_package(rocm_smi REQUIRED)
53+
set(ONNXRUNTIME_ROCM_LIBS roc::rocblas MIOpen hip::hipfft ${ROCM_SMI_LIBRARY} ${RCCL_LIB} ${ROCTRACER_LIB})
54+
include_directories(${ROCM_SMI_INCLUDE_DIR})
55+
link_directories(${ROCM_SMI_LIB_DIR})
5356

5457
file(GLOB_RECURSE onnxruntime_providers_rocm_cc_srcs CONFIGURE_DEPENDS
5558
"${ONNXRUNTIME_ROOT}/core/providers/rocm/*.h"

cmake/onnxruntime_providers_tensorrt.cmake

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright (c) Microsoft Corporation. All rights reserved.
22
# Licensed under the MIT License.
3-
3+
if(onnxruntime_DISABLE_CONTRIB_OPS)
4+
message( FATAL_ERROR "To compile TensorRT execution provider contrib ops have to be enabled to dump an engine using com.microsoft:EPContext node." )
5+
endif()
46
add_definitions(-DUSE_TENSORRT=1)
57
if (onnxruntime_TENSORRT_PLACEHOLDER_BUILDER)
68
add_definitions(-DORT_TENSORRT_PLACEHOLDER_BUILDER)
@@ -154,8 +156,11 @@
154156
# See https://github.com/onnx/onnx-tensorrt/blob/8af13d1b106f58df1e98945a5e7c851ddb5f0791/CMakeLists.txt#L121
155157
# However, starting from TRT 10 GA, nvonnxparser_static doesn't link against tensorrt libraries.
156158
# Therefore, the above code finds ${TENSORRT_LIBRARY_INFER} and ${TENSORRT_LIBRARY_INFER_PLUGIN}.
157-
set(trt_link_libs cudnn cublas ${CMAKE_DL_LIBS} ${TENSORRT_LIBRARY})
158-
159+
if(onnxruntime_CUDA_MINIMAL)
160+
set(trt_link_libs ${CMAKE_DL_LIBS} ${TENSORRT_LIBRARY})
161+
else()
162+
set(trt_link_libs cudnn cublas ${CMAKE_DL_LIBS} ${TENSORRT_LIBRARY})
163+
endif()
159164
file(GLOB_RECURSE onnxruntime_providers_tensorrt_cc_srcs CONFIGURE_DEPENDS
160165
"${ONNXRUNTIME_ROOT}/core/providers/tensorrt/*.h"
161166
"${ONNXRUNTIME_ROOT}/core/providers/tensorrt/*.cc"
@@ -190,6 +195,9 @@
190195
if (WIN32)
191196
target_compile_options(onnxruntime_providers_tensorrt INTERFACE /wd4456)
192197
endif()
198+
if(onnxruntime_CUDA_MINIMAL)
199+
target_compile_definitions(onnxruntime_providers_tensorrt PRIVATE USE_CUDA_MINIMAL=1)
200+
endif()
193201

194202
# Needed for the provider interface, as it includes training headers when training is enabled
195203
if (onnxruntime_ENABLE_TRAINING_OPS)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
add_definitions(-DUSE_VSINPU=1)
2+
file(GLOB_RECURSE onnxruntime_providers_vsinpu_srcs
3+
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/builders/*.h"
4+
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/builders/*.cc"
5+
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/*.h"
6+
"${ONNXRUNTIME_ROOT}/core/providers/vsinpu/*.cc"
7+
"${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.h"
8+
"${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.cc"
9+
)
10+
source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_vsinpu_srcs})
11+
add_library(onnxruntime_providers_vsinpu ${onnxruntime_providers_vsinpu_srcs})
12+
onnxruntime_add_include_to_target(onnxruntime_providers_vsinpu
13+
onnxruntime_common onnxruntime_framework onnx onnx_proto protobuf::libprotobuf-lite flatbuffers Boost::mp11
14+
safeint_interface nsync::nsync_cpp)
15+
add_dependencies(onnxruntime_providers_vsinpu ${onnxruntime_EXTERNAL_DEPENDENCIES})
16+
set_target_properties(onnxruntime_providers_vsinpu PROPERTIES FOLDER "ONNXRuntime" LINKER_LANGUAGE CXX)
17+
target_include_directories(onnxruntime_providers_vsinpu PRIVATE ${ONNXRUNTIME_ROOT} $ENV{TIM_VX_INSTALL}/include)
18+
19+
find_library(TIMVX_LIBRARY NAMES tim-vx PATHS $ENV{TIM_VX_INSTALL}/lib NO_DEFAULT_PATH)
20+
if(NOT TIMVX_LIBRARY)
21+
message(FATAL_ERROR "TIM-VX library is not found!")
22+
endif()
23+
24+
if(CMAKE_CROSSCOMPILING)
25+
message(STATUS "VSINPU ep will be cross compiled.")
26+
if(EXISTS "$ENV{VIVANTE_SDK_DIR}/drivers")
27+
set(DRIVER_DIR "$ENV{VIVANTE_SDK_DIR}/drivers")
28+
elseif(EXISTS "$ENV{VIVANTE_SDK_DIR}/lib")
29+
set(DRIVER_DIR "$ENV{VIVANTE_SDK_DIR}/lib")
30+
else()
31+
message(FATAL_ERROR "Neither drivers nor lib directory exists in this VIVANTE_SDK_DIR.")
32+
endif()
33+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wl,-rpath-link ${DRIVER_DIR} ${TIMVX_LIBRARY}")
34+
else()
35+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
36+
target_link_libraries(onnxruntime_providers_vsinpu PRIVATE ${TIMVX_LIBRARY})
37+
endif()

0 commit comments

Comments
 (0)