From fd45fdd9dc1aa1ee6a9fd68ed222e58077d9f5f5 Mon Sep 17 00:00:00 2001 From: Tiago Koji Castro Shibata Date: Mon, 30 Dec 2019 14:34:58 -0800 Subject: [PATCH] ARM CI (#2759) * Set ARM agent pool * Set CMake generator to VS 2019 in ARM * Use system-wide CMake instead of custom version Our custom version is too old for VS 2019 * Use DML and build shared lib in ARM CI * Restore nuget packages in ARM CI * Disable DML * Refactor ARM debug/release builds * Use system packaged Python version * Remove hardcoded Python path * Downgrade Python to 3.7 for build * Remove explicit CMake path --- .../win-arm-crosscompile-ci-pipeline.yml | 47 +++++++++---------- .../win-arm64-crosscompile-ci-pipeline.yml | 47 +++++++++---------- 2 files changed, 42 insertions(+), 52 deletions(-) diff --git a/tools/ci_build/github/azure-pipelines/win-arm-crosscompile-ci-pipeline.yml b/tools/ci_build/github/azure-pipelines/win-arm-crosscompile-ci-pipeline.yml index 306b1b3857..b5c1b7a92b 100644 --- a/tools/ci_build/github/azure-pipelines/win-arm-crosscompile-ci-pipeline.yml +++ b/tools/ci_build/github/azure-pipelines/win-arm-crosscompile-ci-pipeline.yml @@ -1,46 +1,41 @@ jobs: - job: Windows_ARM_CrossCompile_CI_Dev timeoutInMinutes: 120 + pool: Win-CPU-2019 variables: buildDirectory: '$(Build.BinariesDirectory)' + ortPackageId: 'Microsoft.ML.OnnxRuntime' + strategy: + maxParallel: 2 + matrix: + debug: + BuildConfig: 'Debug' + release: + BuildConfig: 'Release' steps: - template: templates/set-test-data-variables-step.yml - - task: UniversalPackages@0 - displayName: 'Download python' + - task: UsePythonVersion@0 inputs: - command: download - vstsFeed: '$(System.TeamProject)' - vstsFeedPackage: 'miniconda3_win64' - vstsPackageVersion: '4.5.11' - downloadDirectory: '$(Build.BinariesDirectory)\python' - - task: CmdLine@1 - displayName: 'Run python installer' - inputs: - filename: '$(Build.BinariesDirectory)\python\installer.exe' - arguments: '/S /NoRegistry=1 /AddToPath=0 /RegisterPython=0 /D=$(Build.BinariesDirectory)\packages\python' - timeoutInMinutes: 10 + versionSpec: '3.7' - task: BatchScript@1 displayName: 'setup env' inputs: filename: '$(Build.SourcesDirectory)\tools\ci_build\github\windows\setup_env.bat' modifyEnvironment: true workingFolder: '$(Build.BinariesDirectory)' - - task: CmdLine@1 - displayName: 'Download cmake' + - task: DotNetCoreCLI@2 + displayName: 'Restore nuget packages' inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\github\windows\download_cmake.py --build_dir $(Build.BinariesDirectory)' + command: restore + projects: '$(Build.SourcesDirectory)\csharp\OnnxRuntime.CSharp.sln' + configuration: '$(BuildConfig)' + arguments: '--configuration $(BuildConfig) -p:Platform="Any CPU" -p:OrtPackageId=$(ortPackageId)' + workingDirectory: '$(Build.SourcesDirectory)\csharp' - task: CmdLine@1 - displayName: 'Generate cmake config and build Debug' + displayName: 'Generate cmake config and build' inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config Debug --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --arm --use_winml' - workingDirectory: "$(Build.BinariesDirectory)" - - task: CmdLine@1 - displayName: 'Generate cmake config and build Release' - inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config Release --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --arm --use_winml' + filename: python.exe + arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config $(BuildConfig) --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_generator "Visual Studio 16 2019" --arm --build_shared_lib --use_winml' workingDirectory: "$(Build.BinariesDirectory)" - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 displayName: 'Component Detection' diff --git a/tools/ci_build/github/azure-pipelines/win-arm64-crosscompile-ci-pipeline.yml b/tools/ci_build/github/azure-pipelines/win-arm64-crosscompile-ci-pipeline.yml index 6e8b825147..ec003eb4b2 100644 --- a/tools/ci_build/github/azure-pipelines/win-arm64-crosscompile-ci-pipeline.yml +++ b/tools/ci_build/github/azure-pipelines/win-arm64-crosscompile-ci-pipeline.yml @@ -1,46 +1,41 @@ jobs: - job: Windows_ARM_CrossCompile_CI_Dev timeoutInMinutes: 120 + pool: Win-CPU-2019 variables: buildDirectory: '$(Build.BinariesDirectory)' + ortPackageId: 'Microsoft.ML.OnnxRuntime' + strategy: + maxParallel: 2 + matrix: + debug: + BuildConfig: 'Debug' + release: + BuildConfig: 'Release' steps: - template: templates/set-test-data-variables-step.yml - - task: UniversalPackages@0 - displayName: 'Download python' + - task: UsePythonVersion@0 inputs: - command: download - vstsFeed: '$(System.TeamProject)' - vstsFeedPackage: 'miniconda3_win64' - vstsPackageVersion: '4.5.11' - downloadDirectory: '$(Build.BinariesDirectory)\python' - - task: CmdLine@1 - displayName: 'Run python installer' - inputs: - filename: '$(Build.BinariesDirectory)\python\installer.exe' - arguments: '/S /NoRegistry=1 /AddToPath=0 /RegisterPython=0 /D=$(Build.BinariesDirectory)\packages\python' - timeoutInMinutes: 10 + versionSpec: '3.7' - task: BatchScript@1 displayName: 'setup env' inputs: filename: '$(Build.SourcesDirectory)\tools\ci_build\github\windows\setup_env.bat' modifyEnvironment: true workingFolder: '$(Build.BinariesDirectory)' - - task: CmdLine@1 - displayName: 'Download cmake' + - task: DotNetCoreCLI@2 + displayName: 'Restore nuget packages' inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\github\windows\download_cmake.py --build_dir $(Build.BinariesDirectory)' + command: restore + projects: '$(Build.SourcesDirectory)\csharp\OnnxRuntime.CSharp.sln' + configuration: '$(BuildConfig)' + arguments: '--configuration $(BuildConfig) -p:Platform="Any CPU" -p:OrtPackageId=$(ortPackageId)' + workingDirectory: '$(Build.SourcesDirectory)\csharp' - task: CmdLine@1 - displayName: 'Generate cmake config and build Debug' + displayName: 'Generate cmake config and build' inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config Debug --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --arm64 --use_winml' - workingDirectory: "$(Build.BinariesDirectory)" - - task: CmdLine@1 - displayName: 'Generate cmake config and build Release' - inputs: - filename: '$(Build.BinariesDirectory)\packages\python\python.exe' - arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config Release --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_path $(Build.BinariesDirectory)\cmake\bin\cmake.exe --arm64 --use_winml' + filename: python.exe + arguments: '$(Build.SourcesDirectory)\tools\ci_build\build.py --config $(BuildConfig) --build_dir $(Build.BinariesDirectory) --skip_submodule_sync --cmake_generator "Visual Studio 16 2019" --arm64 --build_shared_lib --use_winml' workingDirectory: "$(Build.BinariesDirectory)" - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 displayName: 'Component Detection'