Skip to content

Commit

Permalink
Fix tutorial for Qualcomm AI Engine Direct Backend (#2956)
Browse files Browse the repository at this point in the history
Summary:
We have refactors recently and need to update the tutorial and cmake.

See #2955 for isseues.

Pull Request resolved: #2956

Reviewed By: mcr229, cccclai

Differential Revision: D55947725

Pulled By: kirklandsign

fbshipit-source-id: f23af28b9a8fe071223d8ffa922a6cd4e49efe61
(cherry picked from commit c7fd394)
  • Loading branch information
kirklandsign committed Apr 12, 2024
1 parent ca69051 commit 09f8afe
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
2 changes: 1 addition & 1 deletion backends/qualcomm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ target_link_libraries(qnn_executorch_backend
qnn_executorch_header
qnn_schema
qnn_manager
executorch
executorch_no_prim_ops
qcir_utils
)
target_link_libraries(utils
Expand Down
7 changes: 6 additions & 1 deletion docs/source/build-run-qualcomm-ai-engine-direct-backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ Python APIs on x64 are required to compile models to Qualcomm AI Engine Direct b

```bash
cd $EXECUTORCH_ROOT
# 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 build_x86_64
cd build_x86_64
cmake .. -DEXECUTORCH_BUILD_QNN=ON -DQNN_SDK_ROOT=${QNN_SDK_ROOT}
Expand All @@ -138,8 +142,8 @@ mkdir build_android
cd build_android
# build executorch & qnn_executorch_backend
cmake .. \
-DBUCK2=buck2 \
-DCMAKE_INSTALL_PREFIX=$PWD \
-DEXECUTORCH_BUILD_SDK=ON \
-DEXECUTORCH_BUILD_QNN=ON \
-DQNN_SDK_ROOT=$QNN_SDK_ROOT \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
Expand Down Expand Up @@ -220,6 +224,7 @@ 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}/build_android/lib/libqnn_executorch_backend.so ${DEVICE_DIR}
adb shell "cd ${DEVICE_DIR} \
&& export LD_LIBRARY_PATH=${DEVICE_DIR} \
&& export ADSP_LIBRARY_PATH=${DEVICE_DIR} \
Expand Down
4 changes: 3 additions & 1 deletion examples/qualcomm/executor_runner/qnn_executor_runner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,10 @@ int main(int argc, char** argv) {
// be used by a single thread at at time, but it can be reused.
//
torch::executor::ETDumpGen etdump_gen = torch::executor::ETDumpGen();
// TODO: So far we have issues with etdump_gen during load_method. Enable it
// after the issues are fixed.
Result<Method> method =
program->load_method(method_name, &memory_manager, &etdump_gen);
program->load_method(method_name, &memory_manager, nullptr);
ET_CHECK_MSG(
method.ok(),
"Loading of method %s failed with status 0x%" PRIx32,
Expand Down

0 comments on commit 09f8afe

Please sign in to comment.