onnxruntime/tools/ci_build/github/azure-pipelines/linux-qnn-ci-pipeline.yml
Adrian Lizarraga 02b1ff5fa2
[QNN EP] Support multithreaded inference of a single session (#18981)
### Description
- Add mutex to protect QNN API calls for executing a graph and
extracting the corresponding profile data.
- Ensures QNN EP's execute function does not store unnecessary state
(i.e., input and output buffer pointers do not need to be stored as
class members.)

### Motivation and Context
Allow calling `session.Run()` from multiple threads when using QNN EP.
2024-01-04 13:32:48 -08:00

114 lines
3 KiB
YAML

##### start trigger Don't edit it manually, Please do edit set-trigger-rules.py ####
trigger:
branches:
include:
- main
- rel-*
paths:
exclude:
- docs/**
- README.md
- CONTRIBUTING.md
- BUILD.md
- 'js/web'
- 'onnxruntime/core/providers/js'
pr:
branches:
include:
- main
- rel-*
paths:
exclude:
- docs/**
- README.md
- CONTRIBUTING.md
- BUILD.md
- 'js/web'
- 'onnxruntime/core/providers/js'
#### end trigger ####
parameters:
- name: QnnSdk
displayName: QNN SDK version
type: string
default: qnn-v2.17.0.231124
jobs:
- job: Build_QNN_EP
pool: onnxruntime-qnn-ubuntu-2004-cpu
timeoutInMinutes: 60
workspace:
clean: all
variables:
- name: QNN_SDK_ROOT
value: /data/qnnsdk/${{parameters.QnnSdk}}
steps:
- script: |
ls /data/qnnsdk
ls -R /data/qnn_test_data
displayName: Check QNN test data
- task: UsePythonVersion@0
displayName: Use Python $(pythonVersion)
inputs:
versionSpec: $(pythonVersion)
- script: sudo apt-get update -y && sudo apt-get install -y coreutils ninja-build
displayName: Install coreutils and ninja
- script: |
python3 tools/ci_build/build.py \
--build_dir build \
--config Release \
--parallel \
--use_qnn \
--qnn_home $(QNN_SDK_ROOT) \
--cmake_generator=Ninja \
--skip_tests
displayName: Build QNN EP
- script: |
python3 tools/ci_build/build.py \
--build_dir build \
--config Release \
--test \
--qnn_home $(QNN_SDK_ROOT) \
--cmake_generator=Ninja \
--skip_submodule_sync \
--ctest_path ""
displayName: Run unit tests
- task: CmdLine@2
displayName: Run ONNX tests
inputs:
script: |
./build/Release/onnx_test_runner -e qnn \
-v -j 1 -i "backend_path|$(QNN_SDK_ROOT)/lib/x86_64-linux-clang/libQnnCpu.so" \
cmake/external/onnx/onnx/backend/test/data/node
- task: CmdLine@2
displayName: Run float32 model tests
inputs:
script: |
./build/Release/onnx_test_runner -e qnn \
-v -j 1 -i "backend_path|$(QNN_SDK_ROOT)/lib/x86_64-linux-clang/libQnnCpu.so" \
/data/float32_models
- task: CmdLine@2
displayName: Run QDQ model tests
inputs:
script: |
./build/Release/onnx_test_runner -e qnn \
-v -j 1 -i "backend_path|$(QNN_SDK_ROOT)/lib/x86_64-linux-clang/libQnnHtp.so" \
/data/qdq_models
- task: CmdLine@2
displayName: Run QDQ model tests with context cache enabled
inputs:
script: |
./build/Release/onnx_test_runner -e qnn \
-v -f -j 1 -i "backend_path|$(QNN_SDK_ROOT)/lib/x86_64-linux-clang/libQnnHtp.so" \
/data/qdq_models/mobilenetv2-1.0_add_transpose_quant