-
Notifications
You must be signed in to change notification settings - Fork 792
Fix tutorial for Qualcomm AI Engine Direct Backend #2956
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
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -115,8 +115,12 @@ Python APIs on x64 are required to compile models to Qualcomm AI Engine Direct b | |
|
|
||
| ```bash | ||
| cd $EXECUTORCH_ROOT | ||
| mkdir build_x86_64 | ||
| cd build_x86_64 | ||
| # Workaround for fbs files in exir/_serialize | ||
| cp schema/program.fbs exir/_serialize/program.fbs | ||
| cp schema/scalar_type.fbs exir/_serialize/scalar_type.fbs | ||
|
|
||
| mkdir cmake_out | ||
| cd cmake_out | ||
| cmake .. -DEXECUTORCH_BUILD_QNN=ON -DQNN_SDK_ROOT=${QNN_SDK_ROOT} | ||
| cmake --build . -t "PyQnnManagerAdaptor" "PyQnnWrapperAdaptor" -j8 | ||
|
|
||
|
|
@@ -134,12 +138,12 @@ Commands to build `qnn_executor_runner` for Android: | |
|
|
||
| ```bash | ||
| cd $EXECUTORCH_ROOT | ||
| mkdir build_android | ||
| cd build_android | ||
| mkdir cmake_android_out | ||
| cd cmake_android_out | ||
|
||
| # build executorch & qnn_executorch_backend | ||
| cmake .. \ | ||
| -DBUCK2=buck2 \ | ||
| -DCMAKE_INSTALL_PREFIX=$PWD \ | ||
| -DEXECUTORCH_BUILD_SDK=ON \ | ||
| -DEXECUTORCH_BUILD_QNN=ON \ | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Possibly need something like CMAKE_INSTALL_PREFIX if we don't want to require root priviledge.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. never mind! I saw
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this issue good now?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Yes, it's good now. |
||
| -DQNN_SDK_ROOT=$QNN_SDK_ROOT \ | ||
| -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ | ||
|
|
@@ -162,7 +166,7 @@ cmake --build examples/qualcomm -j16 | |
|
|
||
| **Note:** If you want to build for release, add `-DCMAKE_BUILD_TYPE=Release` to the `cmake` command options. | ||
|
|
||
| You can find `qnn_executor_runner` under `build_android/examples/qualcomm/`. | ||
| You can find `qnn_executor_runner` under `cmake_android_out/examples/qualcomm/`. | ||
|
|
||
|
|
||
| ## Deploying and running on device | ||
|
|
@@ -174,7 +178,7 @@ We use deeplab-v3-resnet101 as an example in this tutorial. Run below commands t | |
|
|
||
| ``` | ||
| cd $EXECUTORCH_ROOT | ||
| python -m examples.qualcomm.scripts.deeplab_v3 -b build_android -m SM8550 --compile_only --download | ||
| python -m examples.qualcomm.scripts.deeplab_v3 -b cmake_android_out -m SM8550 --compile_only --download | ||
| ``` | ||
|
|
||
| You might see something like below: | ||
|
|
@@ -219,7 +223,8 @@ So, we can run `qnn_executor_runner` like | |
|
|
||
| ```bash | ||
| adb push ./deeplab_v3/dlv3_qnn.pte ${DEVICE_DIR} | ||
| adb push ${EXECUTORCH_ROOT}/build_android/examples/qualcomm/qnn_executor_runner ${DEVICE_DIR} | ||
| adb push ${EXECUTORCH_ROOT}/cmake_android_out/examples/qualcomm/qnn_executor_runner ${DEVICE_DIR} | ||
| adb push ${EXECUTORCH_ROOT}/cmake_android_out/lib/libqnn_executorch_backend.so ${DEVICE_DIR} | ||
| adb shell "cd ${DEVICE_DIR} \ | ||
| && export LD_LIBRARY_PATH=${DEVICE_DIR} \ | ||
| && export ADSP_LIBRARY_PATH=${DEVICE_DIR} \ | ||
|
|
||
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.
how do we link it with prim ops lib?
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.
In
executorch/examples/qualcomm/CMakeLists.txt
Lines 102 to 108 in 687425d
For other users, add executorch explicitly to binary helps
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.
TLDR is for users who use
qnn_executorch_backendas a dependency, it should also haveexecutorchas a dependency now.