mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-06 04:28:32 +00:00
### Description 1. The protoc package on nuget.org contains binaries for Windows_x86/Windows_x64/Linux_x86/Linux_x64/MacOS_x64, which can cover most use cases. Though it doesn't have binaries for AMR64, they are only needed when we cross-compile for Intel CPUs on ARM CPUs. It is rare. When you have such a need, you always can build protoc from source by yourself and pass it to build.py as "--path_to_protoc_exe". Or if you have security concerns that you don't want to use prebuilt binaries from outside, you can do the same thing. 2. Remove GoogleTestAdapter related thing. That part of code is out of maintain. ### Motivation and Context As a follow-up of PR #15190.
113 lines
4.2 KiB
YAML
113 lines
4.2 KiB
YAML
parameters:
|
|
|
|
- name: QnnSdk
|
|
displayName: QNN SDK version
|
|
type: string
|
|
default: qnn-v2.8.0.230223123141_52150_win
|
|
values:
|
|
- qnn-v2.6.0.221227161714_42395_win
|
|
- qnn-v2.8.0.230223123141_52150_win
|
|
|
|
jobs:
|
|
- job: 'build'
|
|
pool: 'Onnxruntime-QNNEP-Windows-2022-ARM64-CPU'
|
|
variables:
|
|
MsbuildArguments: '-detailedsummary -maxcpucount -consoleloggerparameters:PerformanceSummary'
|
|
OnnxRuntimeBuildDirectory: '$(Build.BinariesDirectory)'
|
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
|
buildArch: arm64
|
|
setVcvars: true
|
|
BuildConfig: 'RelWithDebInfo'
|
|
ALLOW_RELEASED_ONNX_OPSET_ONLY: '1'
|
|
QNN_SDK_ROOT: 'C:\data\qnnsdk\${{parameters.QnnSdk}}'
|
|
timeoutInMinutes: 240
|
|
workspace:
|
|
clean: all
|
|
steps:
|
|
|
|
- script: |
|
|
MKDIR $(Agent.ToolsDirectory)\Python\3.11.0\arm64
|
|
XCOPY /s /y /h /e /c /q "C:\Python\Python311\*.*" $(Agent.ToolsDirectory)\Python\3.11.0\arm64\
|
|
COPY NUL $(Agent.ToolsDirectory)\Python\3.11.0\arm64.complete
|
|
DIR $(Agent.ToolsDirectory)\Python
|
|
DIR $(Agent.ToolsDirectory)\Python\3.11.0
|
|
DIR $(Agent.ToolsDirectory)\Python\3.11.0\arm64
|
|
displayName: Copy python 3.11.0 version to agent tools directory
|
|
|
|
- script: |
|
|
DIR C:\data\qnnsdk
|
|
displayName: Check available QNN SDKs
|
|
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '3.x'
|
|
addToPath: true
|
|
architecture: $(buildArch)
|
|
|
|
- task: NuGetToolInstaller@1
|
|
inputs:
|
|
versionSpec: 6.4.x
|
|
|
|
- task: PythonScript@0
|
|
displayName: 'Generate cmake config'
|
|
inputs:
|
|
scriptPath: '$(Build.SourcesDirectory)\tools\ci_build\build.py'
|
|
arguments: '--arm64 --config $(BuildConfig) --build_dir $(Build.BinariesDirectory) --update --cmake_generator "Visual Studio 16 2019" --use_qnn --qnn_home $(QNN_SDK_ROOT) --parallel'
|
|
workingDirectory: '$(Build.BinariesDirectory)'
|
|
|
|
- task: VSBuild@1
|
|
displayName: 'Build'
|
|
inputs:
|
|
solution: '$(Build.BinariesDirectory)\$(BuildConfig)\onnxruntime.sln'
|
|
platform: 'arm64'
|
|
configuration: $(BuildConfig)
|
|
msbuildArgs: $(MsbuildArguments)
|
|
msbuildArchitecture: $(buildArch)
|
|
maximumCpuCount: true
|
|
logProjectEvents: false
|
|
workingFolder: '$(Build.BinariesDirectory)\$(BuildConfig)'
|
|
createLogFile: true
|
|
|
|
- powershell: |
|
|
python $(Build.SourcesDirectory)\tools\ci_build\build.py --arm64 --config $(BuildConfig) --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --test --cmake_generator "Visual Studio 16 2019" --enable_onnx_tests
|
|
workingDirectory: '$(Build.BinariesDirectory)\$(BuildConfig)\$(BuildConfig)'
|
|
displayName: 'Run unit tests'
|
|
enabled: false
|
|
|
|
- script: |
|
|
.\$(BuildConfig)\onnx_test_runner -j 1 -c 1 -v -e qnn -i "backend_path|$(QNN_SDK_ROOT)\target\aarch64-windows-msvc\lib\QnnCpu.dll" $(Build.SourcesDirectory)\cmake\external\onnx\onnx\backend\test\data\node
|
|
workingDirectory: '$(Build.BinariesDirectory)\$(BuildConfig)'
|
|
displayName: 'Run ONNX Tests'
|
|
|
|
- script: |
|
|
.\$(BuildConfig)\onnx_test_runner -j 1 -c 1 -v -e qnn -i "backend_path|$(QNN_SDK_ROOT)\target\aarch64-windows-msvc\lib\QnnCpu.dll" C:\data\float32_models
|
|
workingDirectory: '$(Build.BinariesDirectory)\$(BuildConfig)'
|
|
displayName: 'Run float32 model tests'
|
|
|
|
- script: |
|
|
.\$(BuildConfig)\onnx_test_runner -j 1 -c 1 -v -e qnn -i "backend_path|$(QNN_SDK_ROOT)\target\aarch64-windows-msvc\lib\QnnHtp.dll" C:\data\qdq_models
|
|
workingDirectory: '$(Build.BinariesDirectory)\$(BuildConfig)'
|
|
displayName: 'Run QDQ model tests'
|
|
enabled: false
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Create Artifact'
|
|
inputs:
|
|
SourceFolder: '$(Build.BinariesDirectory)\$(BuildConfig)\$(BuildConfig)'
|
|
Contents: |
|
|
*.exe
|
|
*.dll
|
|
*.pdb
|
|
!Qnn*.dll
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
|
CleanTargetFolder: true
|
|
OverWrite: true
|
|
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact'
|
|
inputs:
|
|
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
|
|
ArtifactName: 'internal_release'
|
|
publishLocation: 'Container'
|
|
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|