mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-25 22:26:24 +00:00
### Description
Upgrade python from 3.9 to 3.10 in ROCm and MigraphX docker files and CI
pipelines. Upgrade ROCm version to 6.2.3 in most places except ROCm CI,
see comment below.
Some improvements/upgrades on ROCm/Migraphx docker or pipeline:
* rocm 6.0/6.1.3 => 6.2.3
* python 3.9 => 3.10
* Ubuntu 20.04 => 22.04
* Also upgrade ml_dtypes, numpy and scipy packages.
* Fix message "ROCm version from ..." with correct file path in
CMakeList.txt
* Exclude some NHWC tests since ROCm EP lacks support for NHWC
convolution.
#### ROCm CI Pipeline:
ROCm 6.1.3 is kept in the pipeline for now.
- Failed after upgrading to ROCm 6.2.3: `HIPBLAS_STATUS_INVALID_VALUE ;
GPU=0 ; hostname=76123b390aed ;
file=/onnxruntime_src/onnxruntime/core/providers/rocm/rocm_execution_provider.cc
; line=170 ; expr=hipblasSetStream(hipblas_handle_, stream);` . It need
further investigation.
- cupy issues:
(1) It currently supports numpy < 1.27, might not work with numpy 2.x.
So we locked numpy==1.26.4 for now.
(2) cupy support of ROCm 6.2 is still in progress:
https://github.com/cupy/cupy/issues/8606.
Note that miniconda issues: its libstdc++.so.6 and libgcc_s.so.1 might
have conflict with the system ones. So we created links to use the
system ones.
#### MigraphX CI pipeline
MigraphX CI does not use cupy, and we are able to use ROCm 6.2.3 and
numpy 2.x in the pipeline.
#### Other attempts
Other things that I've tried which might help in the future:
Attempt to use a single docker file for both ROCm and Migraphx:
https://github.com/microsoft/onnxruntime/pull/22478
Upgrade to ubuntu 24.04 and python 3.12, and use venv like
[this](27903e7ff1/tools/ci_build/github/linux/docker/rocm-ci-pipeline-env.Dockerfile).
### Motivation and Context
In 1.20 release, ROCm nuget packaging pipeline will use 6.2:
https://github.com/microsoft/onnxruntime/pull/22461.
This upgrades rocm to 6.2.3 in CI pipelines to be consistent.
191 lines
5.6 KiB
YAML
191 lines
5.6 KiB
YAML
##### start trigger Don't edit it manually, Please do edit set-trigger-rules.py ####
|
|
### please do rerun 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 ####
|
|
|
|
name: 'linux_ci_$(Date:yyyyMMdd)_$(Rev:r)'
|
|
|
|
# gid of video and render group on gcramdrr1-mi100-085 and -86
|
|
variables:
|
|
- name: video
|
|
value: 44
|
|
- name: render
|
|
value: 109
|
|
- name: RocmVersion
|
|
value: 6.2.3
|
|
|
|
jobs:
|
|
- job: Linux_Build
|
|
variables:
|
|
skipComponentGovernanceDetection: true
|
|
CCACHE_DIR: $(Pipeline.Workspace)/ccache
|
|
TODAY: $[format('{0:dd}{0:MM}{0:yyyy}', pipeline.startTime)]
|
|
workspace:
|
|
clean: all
|
|
pool: onnxruntime-Ubuntu2204-AMD-CPU
|
|
timeoutInMinutes: 240
|
|
|
|
steps:
|
|
- task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
|
|
displayName: 'Clean Agent Directories'
|
|
condition: always()
|
|
|
|
- checkout: self
|
|
clean: true
|
|
submodules: recursive
|
|
|
|
|
|
- template: templates/get-docker-image-steps.yml
|
|
parameters:
|
|
Dockerfile: tools/ci_build/github/linux/docker/migraphx-ci-pipeline-env.Dockerfile
|
|
Context: tools/ci_build/github/linux/docker
|
|
DockerBuildArgs: "--build-arg ROCM_VERSION=$(RocmVersion)"
|
|
Repository: onnxruntimetrainingmigraphx-cibuild-rocm$(RocmVersion)
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"$(TODAY)" | "$(Build.SourceBranch)" | "$(Build.SourceVersion)"'
|
|
path: $(CCACHE_DIR)
|
|
cacheHitVar: CACHE_RESTORED
|
|
restoreKeys: |
|
|
"$(TODAY)" | "$(Build.SourceBranch)"
|
|
"$(TODAY)" |
|
|
displayName: Cache Task
|
|
|
|
- script: mkdir -p $(CCACHE_DIR)
|
|
condition: ne(variables.CACHE_RESTORED, 'true')
|
|
displayName: Create Cache Dir
|
|
|
|
- task: CmdLine@2
|
|
inputs:
|
|
script: |
|
|
docker run --rm \
|
|
--security-opt seccomp=unconfined \
|
|
--shm-size=1024m \
|
|
--user $UID:$(id -g $USER) \
|
|
--volume $(Build.SourcesDirectory):/onnxruntime_src \
|
|
--volume $(Build.BinariesDirectory):/build \
|
|
--volume $(CCACHE_DIR):/cache \
|
|
-e CCACHE_DIR=/cache \
|
|
--workdir /onnxruntime_src \
|
|
onnxruntimetrainingmigraphx-cibuild-rocm$(RocmVersion) \
|
|
/bin/bash -c "
|
|
set -ex; \
|
|
env; \
|
|
ccache -s; \
|
|
python tools/ci_build/build.py \
|
|
--config Release \
|
|
--enable_training \
|
|
--cmake_extra_defines \
|
|
CMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ \
|
|
onnxruntime_BUILD_KERNEL_EXPLORER=OFF \
|
|
onnxruntime_USE_COMPOSABLE_KERNEL=OFF \
|
|
--mpi_home /opt/ompi \
|
|
--use_migraphx \
|
|
--rocm_version=$(RocmVersion) \
|
|
--rocm_home /opt/rocm \
|
|
--nccl_home /opt/rocm \
|
|
--enable_nccl \
|
|
--update \
|
|
--build_dir /build \
|
|
--build \
|
|
--parallel \
|
|
--build_wheel \
|
|
--skip_submodule_sync \
|
|
--use_cache \
|
|
--skip_tests --cmake_path /usr/bin/cmake --ctest_path /usr/bin/ctest; \
|
|
ccache -sv; \
|
|
ccache -z"
|
|
workingDirectory: $(Build.SourcesDirectory)
|
|
displayName: 'Build onnxruntime'
|
|
|
|
- task: CmdLine@2
|
|
inputs:
|
|
script: |
|
|
cd $(Build.BinariesDirectory)/Release
|
|
find -executable -type f > $(Build.BinariesDirectory)/Release/perms.txt
|
|
displayName: 'Find Executable Files'
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
displayName: 'Publish Pipeline Artifact'
|
|
inputs:
|
|
artifactName: 'drop-linux'
|
|
targetPath: '$(Build.BinariesDirectory)/Release'
|
|
|
|
- template: templates/explicitly-defined-final-tasks.yml
|
|
|
|
- job: Linux_Test
|
|
workspace:
|
|
clean: all
|
|
pool: AMD-GPU
|
|
dependsOn:
|
|
- Linux_Build
|
|
timeoutInMinutes: 120
|
|
|
|
steps:
|
|
- task: DownloadPipelineArtifact@2
|
|
displayName: 'Download Pipeline Artifact'
|
|
inputs:
|
|
buildType: 'current'
|
|
artifactName: 'drop-linux'
|
|
targetPath: '$(Build.BinariesDirectory)/Release'
|
|
|
|
- checkout: self
|
|
clean: true
|
|
submodules: recursive
|
|
|
|
- template: templates/get-docker-image-steps.yml
|
|
parameters:
|
|
Dockerfile: tools/ci_build/github/linux/docker/migraphx-ci-pipeline-env.Dockerfile
|
|
Context: tools/ci_build/github/linux/docker
|
|
DockerBuildArgs: "--build-arg ROCM_VERSION=$(RocmVersion)"
|
|
Repository: onnxruntimetrainingmigraphx-cibuild-rocm$(RocmVersion)
|
|
|
|
- task: CmdLine@2
|
|
inputs:
|
|
script: |
|
|
docker run --rm \
|
|
--security-opt seccomp=unconfined \
|
|
--shm-size=1024m \
|
|
--device=/dev/kfd \
|
|
--device=/dev/dri/renderD$DRIVER_RENDER \
|
|
--group-add $(video) \
|
|
--group-add $(render) \
|
|
--user $UID:$(id -g $USER) \
|
|
--volume $(Build.SourcesDirectory):/onnxruntime_src \
|
|
--volume $(Build.BinariesDirectory):/build \
|
|
--workdir /build/Release \
|
|
onnxruntimetrainingmigraphx-cibuild-rocm$(RocmVersion) \
|
|
/bin/bash -c "
|
|
set -ex; \
|
|
cd /build/Release && xargs -a /build/Release/perms.txt chmod a+x; \
|
|
bash /onnxruntime_src/tools/ci_build/github/pai/pai_test_launcher.sh"
|
|
workingDirectory: $(Build.SourcesDirectory)
|
|
displayName: 'Run onnxruntime unit tests'
|
|
|
|
- template: templates/clean-agent-build-directory-step.yml
|