-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[QNN EP] Make QNN EP a shared library #23120
Open
adrianlizarraga
wants to merge
91
commits into
main
Choose a base branch
from
adrianl/qnn-ep-dynamic-lib
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,512
−688
Open
Changes from 89 commits
Commits
Show all changes
91 commits
Select commit
Hold shift + click to select a range
d035fb4
Copy shared utils into qnn ep
adrianlizarraga 7e46a7d
Update QNN EP's initializer transpose logic to use only functions exp…
adrianlizarraga a155b33
Update comment
adrianlizarraga e9c5f14
Added TransposeBase::DoTranspose() to provider bridge. May elect to r…
adrianlizarraga d0f64dc
Add TypeProto_Tensor_has_elem_type() to provider bridge
adrianlizarraga f8bd2f6
Add to provider bridge: TensorTypeBase class, TensorTypeBase::GetElem…
adrianlizarraga 1f533a9
Transpose initializers within QNN EP without using CPU EP utils
adrianlizarraga ccaefb3
Rename transpose func
adrianlizarraga fb765c7
Remove TransposeBase forward declaration from provider bridge
adrianlizarraga 0237bca
Rewrite SliceOpBuilder util GetInitializerInputData() to not use func…
adrianlizarraga e3705b2
Revert addition of TensorTypeBase to provider bridge
adrianlizarraga 6f0b3c6
Remove last use of GetTensorShapeFromTensorProto
adrianlizarraga 5939bf6
Add DataTypeUtils::ToType(std::string&) to provider bridge
adrianlizarraga 58dbf49
Add Logger::GetSeverity() to provider bridge
adrianlizarraga f76b09a
Add TensorShapeProto_Dimensions__size to provider bridge
adrianlizarraga d189fe6
Add utils::CreateSupportedPartitions() to provider bridege
adrianlizarraga a0b3c75
Merge main and fix conflicts
adrianlizarraga 48191ea
Use new namespace for NodeAttrHelper
adrianlizarraga e6afd72
Add to provider bridge: GraphViewer::Nodes(), ConstGraphNodes struct …
adrianlizarraga 0b1e538
Replace usage of cbegin() and cend() in NodeAttrHelper with version t…
adrianlizarraga fb3618d
Add convenience function to get the default Env to provider bridge
adrianlizarraga 6b581fd
Moving ORT includes to a separate header
adrianlizarraga a1129e5
Add Node::EdgeEnd wrapper class to provider bridge. Add NodeUnit cons…
adrianlizarraga ba86c41
Move more header includes to ort_api.h
adrianlizarraga 2b1ea09
Add GraphViewer::NodeProducesGraphOutput() to provider bridge
adrianlizarraga 421cd78
Replace use of InlinedVector with std::vector and fix newly discovere…
adrianlizarraga d94e6f7
Eliminate use of qmath.h by introducing new quantization utils for QNN
adrianlizarraga 4eb1e80
Move includes into qnn/ort_api.h
adrianlizarraga d86fb6c
Add TensorProto::has_data_type() to provider bridge
adrianlizarraga 187e3b9
Checkpoint: updating usage of provider bridge in ep
adrianlizarraga 693dd33
Compiles but does not link (until update cmake to build as shared lib)
adrianlizarraga ae2dbd2
Use provider bridge function to get default Env
adrianlizarraga db5f0ec
It works! QNN EP is a shared library and all QNN unit tests pass on W…
adrianlizarraga ea2a141
Add onnxruntime_providers_qnn.dll to nuget
adrianlizarraga d820c9b
Pass --build_shared_lib to some QNN pipelines. Include Boost::mp11.
adrianlizarraga 9861ec8
Copy qnn dll for java build
adrianlizarraga b92043d
Add linker -rpath="
adrianlizarraga f29ce59
two backslashes in rpath
adrianlizarraga 5d954d6
Copy qnn ep dlls when running java unit tests
adrianlizarraga 03614bc
Modify Java bindings to use QNN shared lib
adrianlizarraga 421f39f
Try to build onnxruntime_providers_shared on Android
adrianlizarraga 7aae2b3
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
adrianlizarraga 9354f18
Pass linker flag to Android build of qnn dll
adrianlizarraga e8df64f
Try different linker flag for android
adrianlizarraga 863ff04
Use -z undefs on android
adrianlizarraga ef1b91d
Expose ETW logger functionality via provider bridge. Fix multithreadi…
adrianlizarraga 57e0072
Cmake java android: copy libonnxruntime_providers_shared.so and libon…
adrianlizarraga bd32daa
QNN Nuget Pipeline: print contents of binaries directory to see if sh…
adrianlizarraga 8a65a1d
Fix print in yaml
adrianlizarraga 7ff94a0
Fix cmake copy command for Java build with qnn
adrianlizarraga 0fbff4a
Try to fix nuget shared lib files for qnn
adrianlizarraga 9cbd0fa
Pass --build_shared_lib when bulding python wheels with qnn [pipelines]
adrianlizarraga f8747db
Print correct binary directory in QNN Nuget pipeline
adrianlizarraga 058e7bb
Add onnxruntime_providers_qnn.dll/.so to setup.py so that it gets cop…
adrianlizarraga 4172575
Edit Java bindins to allow loading/extracting shared provider libs on…
adrianlizarraga 3e39b88
Create temp directory for java android
adrianlizarraga 5ed035f
consistent library loading logic for java android
adrianlizarraga 6347c5f
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
adrianlizarraga 6562433
Add temporary logging
adrianlizarraga 0bbf3af
fix typo
adrianlizarraga c04176a
fix another type in temporary logging code for debugging android qnn …
adrianlizarraga cc14971
Android: Go back to not extracting shared libs from classpath resources.
adrianlizarraga 4c6a985
Try linking shared.so with qnn.so for android
adrianlizarraga fc00346
Use --undefined=Provider_GetHost
adrianlizarraga b707c46
prepend _ to linker arg
adrianlizarraga 7f50558
Add linker option -z global to libonnxruntime_providers_shared.so on …
adrianlizarraga 17c3bde
Try to use libc++_shared.so for android qnn build
adrianlizarraga 7e7fe68
Merge main and fix conflicts
adrianlizarraga e907fe2
Add shims over functions that create ORT objects. These shims will al…
adrianlizarraga d83ff7b
Enable build QNN EP as both static and dynamic lib
adrianlizarraga 354203c
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
adrianlizarraga d500cf8
Fix java cmake conditions when building qnn as shared lib
adrianlizarraga 183ca05
Handle possibility of shared or static qnn lib in Java bindings
adrianlizarraga 5e44199
properly dectect qnn build when building android+qnn AAR package
adrianlizarraga 29c6872
Don't publish artifacts for QNN Win arm64 if QNN is built as a static…
adrianlizarraga 02b71ed
python linter
adrianlizarraga 52199d7
don't include ntverp.h if not needed. set cmake source_group for QNN …
adrianlizarraga af16458
Add function to provider bridge to check if ETW for logging is suppor…
adrianlizarraga 1d61cae
python linting
adrianlizarraga dfc9baf
Move NodeAttrHelper to ort_api.h/cc
adrianlizarraga 325d62f
Make some ort_api.h functions inline
adrianlizarraga a72efb5
cmake clean up
adrianlizarraga 67abb6a
Clean up include paths
adrianlizarraga 6335a88
Edit pipeline job names
adrianlizarraga f9e5c0c
Add QnnTelemetry for logging profiling events to etw (works for both …
adrianlizarraga a4f6923
Add comments to quantization utils
adrianlizarraga e3f6f5e
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
adrianlizarraga 4a0c7a1
Fix QnnTelemetry for static lib case
adrianlizarraga 0495a99
Dont use QnnTelemetry on non-windows
adrianlizarraga 98f40ad
Merge branch 'main' into adrianl/qnn-ep-dynamic-lib
adrianlizarraga 4f5c037
review comments: remove no-op cmake statement; change to --use_qnn sh…
adrianlizarraga File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line is empty
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks. I removed this line (it is currently there in main branch for building qnn ep as static lib).