onnxruntime
[QNN EP] Make QNN EP a shared library
#23120
Merged

[QNN EP] Make QNN EP a shared library #23120

adrianlizarraga merged 111 commits into main from adrianl/qnn-ep-dynamic-lib
adrianlizarraga
adrianlizarraga Copy shared utils into qnn ep
d035fb42
adrianlizarraga Update QNN EP's initializer transpose logic to use only functions exp…
7e46a7de
adrianlizarraga Update comment
a155b33b
adrianlizarraga Added TransposeBase::DoTranspose() to provider bridge. May elect to r…
e9c5f142
adrianlizarraga Add TypeProto_Tensor_has_elem_type() to provider bridge
d0f64dc1
adrianlizarraga Add to provider bridge: TensorTypeBase class, TensorTypeBase::GetElem…
f8bd2f63
adrianlizarraga Transpose initializers within QNN EP without using CPU EP utils
1f533a99
adrianlizarraga Rename transpose func
ccaefb3e
adrianlizarraga Remove TransposeBase forward declaration from provider bridge
fb765c7f
adrianlizarraga Rewrite SliceOpBuilder util GetInitializerInputData() to not use func…
0237bca5
adrianlizarraga Revert addition of TensorTypeBase to provider bridge
e3705b26
adrianlizarraga Remove last use of GetTensorShapeFromTensorProto
6f0b3c61
adrianlizarraga Add DataTypeUtils::ToType(std::string&) to provider bridge
5939bf64
adrianlizarraga Add Logger::GetSeverity() to provider bridge
58dbf494
adrianlizarraga Add TensorShapeProto_Dimensions__size to provider bridge
f76b09a2
adrianlizarraga Add utils::CreateSupportedPartitions() to provider bridege
d189fe66
adrianlizarraga Merge main and fix conflicts
a0b3c753
adrianlizarraga Use new namespace for NodeAttrHelper
48191eaa
adrianlizarraga Add to provider bridge: GraphViewer::Nodes(), ConstGraphNodes struct …
e6afd729
adrianlizarraga Replace usage of cbegin() and cend() in NodeAttrHelper with version t…
0b1e5386
adrianlizarraga Add convenience function to get the default Env to provider bridge
fb3618dc
adrianlizarraga Moving ORT includes to a separate header
6b581fd6
adrianlizarraga Add Node::EdgeEnd wrapper class to provider bridge. Add NodeUnit cons…
a1129e5d
adrianlizarraga Move more header includes to ort_api.h
ba86c418
adrianlizarraga Add GraphViewer::NodeProducesGraphOutput() to provider bridge
2b1ea09d
adrianlizarraga Replace use of InlinedVector with std::vector and fix newly discovere…
421cd781
adrianlizarraga Eliminate use of qmath.h by introducing new quantization utils for QNN
d94e6f7b
adrianlizarraga Move includes into qnn/ort_api.h
4eb1e808
adrianlizarraga Add TensorProto::has_data_type() to provider bridge
d86fb6c0
adrianlizarraga Checkpoint: updating usage of provider bridge in ep
187e3b9e
adrianlizarraga Compiles but does not link (until update cmake to build as shared lib)
693dd335
adrianlizarraga Use provider bridge function to get default Env
ae2dbd28
adrianlizarraga It works! QNN EP is a shared library and all QNN unit tests pass on W…
db5f0ec1
adrianlizarraga Add onnxruntime_providers_qnn.dll to nuget
ea2a141a
adrianlizarraga adrianlizarraga added ep:QNN
adrianlizarraga Pass --build_shared_lib to some QNN pipelines. Include Boost::mp11.
d820c9b5
adrianlizarraga Copy qnn dll for java build
9861ec8b
adrianlizarraga Add linker -rpath="
b92043da
adrianlizarraga two backslashes in rpath
f29ce59b
adrianlizarraga Copy qnn ep dlls when running java unit tests
5d954d69
adrianlizarraga Modify Java bindings to use QNN shared lib
03614bcf
adrianlizarraga Try to build onnxruntime_providers_shared on Android
421f39f3
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
7aae2b39
adrianlizarraga Pass linker flag to Android build of qnn dll
9354f18d
adrianlizarraga Try different linker flag for android
e8df64fc
adrianlizarraga Use -z undefs on android
863ff04c
adrianlizarraga Expose ETW logger functionality via provider bridge. Fix multithreadi…
ef1b91da
adrianlizarraga Cmake java android: copy libonnxruntime_providers_shared.so and libon…
57e00722
adrianlizarraga QNN Nuget Pipeline: print contents of binaries directory to see if sh…
bd32daaf
adrianlizarraga Fix print in yaml
8a65a1d3
adrianlizarraga Fix cmake copy command for Java build with qnn
7ff94a0b
adrianlizarraga Try to fix nuget shared lib files for qnn
0fbff4ad
adrianlizarraga Pass --build_shared_lib when bulding python wheels with qnn [pipelines]
9cbd0fa9
adrianlizarraga Print correct binary directory in QNN Nuget pipeline
f8747db9
adrianlizarraga Add onnxruntime_providers_qnn.dll/.so to setup.py so that it gets cop…
058e7bbb
adrianlizarraga Edit Java bindins to allow loading/extracting shared provider libs on…
41725755
adrianlizarraga Create temp directory for java android
3e39b88f
adrianlizarraga consistent library loading logic for java android
5ed035fc
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
6347c5fe
adrianlizarraga Add temporary logging
65624339
github-advanced-security
github-advanced-security commented on 2024-12-22
github-advanced-security
github-advanced-security commented on 2024-12-22
adrianlizarraga fix typo
0bbf3af4
adrianlizarraga fix another type in temporary logging code for debugging android qnn …
c04176a5
adrianlizarraga Android: Go back to not extracting shared libs from classpath resources.
cc149718
adrianlizarraga Try linking shared.so with qnn.so for android
4c6a9854
adrianlizarraga Use --undefined=Provider_GetHost
fc003463
adrianlizarraga prepend _ to linker arg
b707c46a
adrianlizarraga Add linker option -z global to libonnxruntime_providers_shared.so on …
7f505586
adrianlizarraga Try to use libc++_shared.so for android qnn build
17c3bdee
adrianlizarraga Merge main and fix conflicts
7e7fe68d
adrianlizarraga Add shims over functions that create ORT objects. These shims will al…
e907fe20
adrianlizarraga Enable build QNN EP as both static and dynamic lib
d83ff7ba
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
354203c3
adrianlizarraga Fix java cmake conditions when building qnn as shared lib
d500cf89
adrianlizarraga Handle possibility of shared or static qnn lib in Java bindings
183ca05e
adrianlizarraga properly dectect qnn build when building android+qnn AAR package
5e44199d
adrianlizarraga Don't publish artifacts for QNN Win arm64 if QNN is built as a static…
29c68727
adrianlizarraga python linter
02b71edd
adrianlizarraga don't include ntverp.h if not needed. set cmake source_group for QNN …
52199d75
adrianlizarraga Add function to provider bridge to check if ETW for logging is suppor…
af164589
adrianlizarraga python linting
1d61caef
adrianlizarraga Move NodeAttrHelper to ort_api.h/cc
dfc9bafd
adrianlizarraga Make some ort_api.h functions inline
325d62f4
adrianlizarraga cmake clean up
a72efb51
adrianlizarraga Clean up include paths
67abb6a2
adrianlizarraga Edit pipeline job names
6335a884
adrianlizarraga Add QnnTelemetry for logging profiling events to etw (works for both …
f9e5c0c1
adrianlizarraga Add comments to quantization utils
a4f69239
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
e3f6f5e5
adrianlizarraga Fix QnnTelemetry for static lib case
4a0c7a13
adrianlizarraga Dont use QnnTelemetry on non-windows
0495a993
adrianlizarraga adrianlizarraga marked this pull request as ready for review 1 year ago
adrianlizarraga adrianlizarraga changed the title [QNN EP] [DRAFT] Make QNN EP a shared library [QNN EP] Make QNN EP a shared library 1 year ago
adrianlizarraga adrianlizarraga requested a review from HectorSVC HectorSVC 1 year ago
adrianlizarraga adrianlizarraga requested a review from snnn snnn 1 year ago
adrianlizarraga adrianlizarraga requested a review from jywu-msft jywu-msft 1 year ago
adrianlizarraga adrianlizarraga requested a review from ivberg ivberg 1 year ago
adrianlizarraga adrianlizarraga requested a review from edgchen1 edgchen1 1 year ago
snnn
snnn commented on 2025-01-04
adrianlizarraga adrianlizarraga requested a review from RyanUnderhill RyanUnderhill 1 year ago
adrianlizarraga
adrianlizarraga commented on 2024-12-19
adrianlizarraga
adrianlizarraga commented on 2025-01-04
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
98f40ad6
adrianlizarraga review comments: remove no-op cmake statement; change to --use_qnn sh…
4f5c0373
HectorSVC
HectorSVC commented on 2025-01-06
HectorSVC
HectorSVC commented on 2025-01-06
HectorSVC
HectorSVC commented on 2025-01-06
HectorSVC
HectorSVC commented on 2025-01-06
HectorSVC
HectorSVC commented on 2025-01-06
adrianlizarraga Create generic Factory to create ort objects (reduce amount of boiler…
194b7b81
adrianlizarraga Review comments: reuse transpose functions
d6c5942d
adrianlizarraga Update function use to create logging::Capture
d170a2d0
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
d8f5067d
jywu-msft jywu-msft requested a review from jslhcl jslhcl 1 year ago
jywu-msft jywu-msft requested a review from 007zszmz 007zszmz 1 year ago
adrianlizarraga Merge main and fix conflicts
9ef96225
adrianlizarraga Remove GetClipMinMax() because it is no longer needed after separater…
5ee8c43a
HectorSVC
HectorSVC dismissed these changes on 2025-01-10
RyanUnderhill
RyanUnderhill commented on 2025-01-10
adrianlizarraga Use PROVIDER_DISALLOW_ALL for Node_EdgeEnd struct in provider bridge
88581906
adrianlizarraga Remove unused function Capture_Create()
e93705de
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
b53881c2
adrianlizarraga Experiment to see of unloading libonnxruntime_providers_qnn.so on Lin…
8dda435f
adrianlizarraga adrianlizarraga dismissed their stale review via 8dda435f 1 year ago
adrianlizarraga Fix merge conflicts. TODO: re-enable htp shared mem test that uses in…
57b3d881
github-advanced-security
github-advanced-security commented on 2025-01-16
adrianlizarraga Fix python linter error
dab568f9
adrianlizarraga Include fixes to HTP shared memory from PR 23402
2bba9369
adrianlizarraga Fix python linter formatting error
c33fa663
adrianlizarraga Move deleted NodeUnit constructors next to overloaded delete operator…
15e88e4d
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
a98bcf80
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
12283fd3
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
75afaa62
adrianlizarraga Merge main and fix conflicts
c0644018
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
f7ef5723
jywu-msft
jywu-msft approved these changes on 2025-01-22
adrianlizarraga adrianlizarraga merged 3b4c7df4 into main 1 year ago
adrianlizarraga adrianlizarraga deleted the adrianl/qnn-ep-dynamic-lib branch 1 year ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone