onnxruntime/tools/ci_build/github/azure-pipelines/android-arm64-v8a-QNN-crosscompile-ci-pipeline.yml
Changming Sun ffcfb1ec98
Remove protobuf submodule (#15190)
### Description
Remove protobuf submodule as a follow-up of #13523

"Android CI Pipeline" and "Zip-Nuget-Java-Nodejs Packaging Pipeline"
need to be tested.


### Motivation and Context
It is related to
[AB#11753](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/11753)

Fixed
[AB#14027](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/14027)
2023-03-27 10:35:49 -07:00

105 lines
3.5 KiB
YAML

parameters:
- name: QnnSdk
displayName: QNN SDK version
type: string
default: qnn-v2.8.0.230223123141_52150
values:
- qnn-v2.6.0.221227110525_42395
- qnn-v2.8.0.230223123141_52150
jobs:
- job: Build_QNN_EP
pool: onnxruntime-qnn-ubuntu-2004-cpu
timeoutInMinutes: 30
workspace:
clean: all
variables:
- name: QNN_SDK_ROOT
value: /data/qnnsdk/${{parameters.QnnSdk}}
steps:
- 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: sudo chmod go+rw /dev/kvm
displayName: Update permissions to KVM
- script: |
export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
export ANDROID_HOME=/usr/local/lib/android/sdk
export ANDROID_NDK_HOME=/usr/local/lib/android/sdk/ndk-bundle
export ANDROID_NDK_ROOT=/usr/local/lib/android/sdk/ndk-bundle
displayName: set Android ENVs
- script: |
set -e -x
tools/ci_build/github/linux/docker/inference/x64/python/cpu/scripts/install_protobuf.sh -p $(Build.BinariesDirectory)/installed -d cmake/deps.txt
python3 tools/ci_build/build.py \
--config Release \
--android \
--build_dir build_qnn \
--android_sdk_path $ANDROID_HOME \
--android_ndk_path $ANDROID_NDK_HOME \
--android_abi=arm64-v8a \
--android_api=30 \
--parallel \
--use_qnn \
--qnn_home $(QNN_SDK_ROOT) \
--cmake_generator=Ninja \
--skip_tests --path_to_protoc_exe $(Build.BinariesDirectory)/installed/bin/protoc
displayName: Build QNN EP
- script: |
mkdir -p build_qnn/Release/testdata/QNN/node_tests
cp -r cmake/external/onnx//onnx/backend/test/data/node/test_basic_conv_with_padding build_qnn/Release/testdata/QNN/node_tests
displayName: Initialize test directories
- task: JavaToolInstaller@0
displayName: Use jdk 8
inputs:
versionSpec: '8'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'
- script: |
python3 tools/python/run_android_emulator.py \
--android-sdk-root ${ANDROID_SDK_ROOT} \
--create-avd --system-image "system-images;android-30;google_apis;arm64-v8a" \
--start --emulator-extra-args="-partition-size 4096" \
--emulator-pid-file $(Build.BinariesDirectory)/emulator.pid
displayName: Start Android emulator
enabled: false
continueOnError: true
- script: |
$ANDROID_SDK_ROOT/emulator/emulator -list-avds
displayName: List emulators
- task: CmdLine@2
inputs:
script: |
${ANDROID_SDK_ROOT}/platform-tools/adb shell "mkdir /data/local/tmp/qnn"
${ANDROID_SDK_ROOT}/platform-tools/adb push onnx_test_runner /data/local/tmp/qnn
${ANDROID_SDK_ROOT}/platform-tools/adb push testdata/QNN/node_tests/test_basic_conv_with_padding /data/local/tmp/qnn
${ANDROID_SDK_ROOT}/platform-tools/adb shell "/data/local/tmp/qnn/onnx_test_runner -e qnn /data/local/tmp/qnn/test_basic_conv_with_padding"
workingDirectory: build_qnn/Release
displayName: Run tests
enabled: false
continueOnError: true
- script: |
python3 tools/python/run_android_emulator.py \
--android-sdk-root ${ANDROID_SDK_ROOT} \
--stop \
--emulator-pid-file $(Build.BinariesDirectory)/emulator.pid
displayName: Stop Android emulator
condition: always()
enabled: false
continueOnError: true