Compare commits

..

21 Commits

Author SHA1 Message Date
ammallya
65b8498867 Merge pull request #4513 from ammallya/main
Name change for hip
2025-03-18 12:49:47 -07:00
ammallya
937dcb376b Change naming convention for hip 2025-03-18 12:49:09 -07:00
ammallya
ac944077ba Promote new 2025-03-18 12:48:31 -07:00
ammallya
1688d56edc Merge pull request #4512 from ammallya/main
Reverting rbt and clr
2025-03-18 11:27:49 -07:00
ammallya
042b01a71b Reverting hip_on_rocclr 2025-03-18 11:26:53 -07:00
ammallya
c26ff9528f Revert RBT 2025-03-18 11:25:47 -07:00
ammallya
9baa927218 Merge pull request #4511 from ammallya/main
Revert rocr.sh
2025-03-18 10:37:00 -07:00
ammallya
d7136806da Revert rocr.sh 2025-03-18 10:36:33 -07:00
ammallya
61ada2eae9 Merge pull request #4510 from ammallya/main
Reverting ROCm.mk
2025-03-18 09:51:02 -07:00
ammallya
9b34984b1b Reverting ROCm.mk 2025-03-18 09:50:41 -07:00
ammallya
20a264a715 Merge pull request #4509 from ammallya/main
Promoting Build Scripts
2025-03-18 09:37:21 -07:00
Ameya Keshava Mallya
3750e88066 Promoting Build Scripts 2025-03-18 16:36:14 +00:00
ammallya
beb5f5b48d Merge pull request #4502 from ammallya/main
Updating hipblaslt and hipsparselt build scripts
2025-03-14 14:21:06 -07:00
ammallya
65330eb26d Fixed small typo 2025-03-14 14:20:19 -07:00
ammallya
23b90e4e6b Update hipsparselt build script 2025-03-14 14:19:46 -07:00
ammallya
080c442789 Updating hipblaslt build script 2025-03-14 14:15:56 -07:00
ammallya
5d90797591 Merge pull request #4487 from ammallya/main
Updated to reduce ram usage
2025-03-12 15:11:37 -07:00
ammallya
0417c2196d Updated to reduce ram usage 2025-03-12 15:11:05 -07:00
dependabot[bot]
1f2a94bb3a Build(deps): Bump rocm-docs-core from 1.15.0 to 1.17.0 in /docs/sphinx (#4413)
Bumps [rocm-docs-core](https://github.com/ROCm/rocm-docs-core) from 1.15.0 to 1.17.0.
- [Release notes](https://github.com/ROCm/rocm-docs-core/releases)
- [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ROCm/rocm-docs-core/compare/v1.15.0...v1.17.0)

---
updated-dependencies:
- dependency-name: rocm-docs-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 17:09:15 -07:00
ammallya
9c5c2c9ca1 Merge pull request #4363 from ammallya/main
Added main branch with fixes to run mainline
2025-02-10 15:11:07 -08:00
Ameya Keshava Mallya
190f609ea2 Added main branch with fixes to run mainline 2025-02-10 22:40:33 +00:00
409 changed files with 14636 additions and 72272 deletions

View File

@@ -0,0 +1,42 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
resources:
repositories:
- repository: aomp_repo
type: github
endpoint: ROCm
name: ROCm/aomp
ref: amd-mainline-open
- repository: aomp-extras_repo
type: github
endpoint: ROCm
name: ROCm/aomp-extras
ref: amd-mainline-open
- repository: flang_repo
type: github
endpoint: ROCm
name: ROCm/flang
ref: amd-mainline-open
- repository: llvm-project_repo
type: github
endpoint: ROCm
name: ROCm/llvm-project
ref: amd-mainline-open
pipelines:
- pipeline: rocr-runtime_pipeline
source: \ROCR-Runtime
trigger:
branches:
include:
- amd-master
# this job will only be triggered after successful build sequence of llvm-project and ROCR-Runtime
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_COMPONENT_PATH }}/aomp.yml
parameters:
checkoutRepo: aomp_repo

View File

@@ -8,17 +8,17 @@ resources:
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/aomp name: ROCm/aomp
ref: aomp-dev ref: amd-staging
- repository: aomp-extras_repo - repository: aomp-extras_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/aomp-extras name: ROCm/aomp-extras
ref: aomp-dev ref: amd-staging
- repository: flang_repo - repository: flang_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/flang name: ROCm/flang
ref: aomp-dev ref: amd-staging
- repository: llvm-project_repo - repository: llvm-project_repo
type: github type: github
endpoint: ROCm endpoint: ROCm

View File

@@ -1,33 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml@pipelines_repo
parameters:
- name: pipelinesRepoRef
type: string
default: refs/heads/develop
- name: librariesRepoRef
type: string
default: refs/heads/develop
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
ref: ${{ parameters.pipelinesRepoRef }}
- repository: libraries_repo
type: github
endpoint: ROCm
name: ROCm/rocm-libraries
ref: ${{ parameters.librariesRepoRef }}
trigger: none
pr: none
jobs:
- template: /.azuredevops/ci-builds/mathlibs.yml@pipelines_repo
parameters:
checkoutRepo: libraries_repo
buildDependsOn: false

View File

@@ -1,38 +0,0 @@
# entrypoint for kicking off a unified build of the mathlibs
# this template is designed to be called by another pipeline (llvm, clr, etc.)
# `buildDependsOn` will need to be set when calling this template
# passes a `unifiedBuild` param to downstream pipelines, which will prevent duplicate jobs
# logic needs to be added in individual mathlib pipelines for handling `unifiedBuild`
parameters:
- name: checkoutRepo
type: string
default: monorepo
- name: buildDependsOn
type: object
default: false
- name: downstreamComponentMatrix
type: object
default:
- rocRAND:
name: rocRAND
sparseCheckoutDir: projects/rocrand
- rocPRIM:
name: rocPRIM
sparseCheckoutDir: projects/rocprim
- hipBLAS-common:
name: hipBLAS-common
sparseCheckoutDir: projects/hipblas-common
# - composable_kernel:
# name: composable_kernel
# sparseCheckoutDir: projects/composablekernel
jobs:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ parameters.buildDependsOn }}
triggerDownstreamJobs: true
unifiedBuild: true

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: AMDMIGraphX
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
# - name: sparseCheckoutDir
# type: string
# default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -51,12 +27,12 @@ parameters:
type: object type: object
default: default:
- https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz - https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz
- "onnx>=1.14.1" - onnx>=1.14.1
- "numpy>=1.21.6" - numpy>=1.21.6
- "typing>=3.7.4" - typing>=3.7.4
- "pytest>=6.0.1" - pytest>=6.0.1
- "packaging>=23.0" - packaging>=23.0
- "protobuf>=3.20.2" - protobuf>=3.20.2
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -96,153 +72,124 @@ parameters:
- rocprofiler-register - rocprofiler-register
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: AMDMIGraphX
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_ubuntu2204_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
cmakeVersion: '3.28.6' checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml # half version should be fixed to 5.6.0
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} buildType: specific
# half version should be fixed to 5.6.0 definitionId: ${{ variables.HALF560_PIPELINE_ID }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml buildId: ${{ variables.HALF560_BUILD_ID }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
buildType: specific parameters:
definitionId: ${{ variables.HALF560_PIPELINE_ID }} checkoutRef: ${{ parameters.checkoutRef }}
buildId: ${{ variables.HALF560_BUILD_ID }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} extraBuildFlags: >-
gpuTarget: ${{ job.target }} -DCMAKE_BUILD_TYPE=Release
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
parameters: -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
extraBuildFlags: >- -DBUILD_TESTING=ON
-DCMAKE_BUILD_TYPE=Release -GNinja
-DGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm parameters:
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_TESTING=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: AMDMIGraphX_testing
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} dependsOn: AMDMIGraphX
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), - name: MIGRAPHX_TRACE_BENCHMARKING
eq(${{ parameters.aggregatePipeline }}, False) value: 1
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: MIGRAPHX_TRACE_BENCHMARKING matrix:
value: 1 gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
cmakeVersion: '3.28.6' checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml # half version should be fixed to 5.6.0
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml buildType: specific
# half version should be fixed to 5.6.0 definitionId: ${{ variables.HALF560_PIPELINE_ID }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml buildId: ${{ variables.HALF560_BUILD_ID }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
buildType: specific parameters:
definitionId: ${{ variables.HALF560_PIPELINE_ID }} checkoutRef: ${{ parameters.checkoutRef }}
buildId: ${{ variables.HALF560_BUILD_ID }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - task: CMake@1
checkoutRef: ${{ parameters.checkoutRef }} displayName: MIGraphXTest CMake Flags
dependencyList: ${{ parameters.rocmTestDependencies }} inputs:
gpuTarget: ${{ job.target }} cmakeArgs: >-
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_BUILD_TYPE=Release
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- task: CMake@1 -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
displayName: MIGraphXTest CMake Flags -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
inputs: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
cmakeArgs: >- -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON
-DGPU_TARGETS=${{ job.target }} -DMIGRAPHX_ENABLE_C_API_TEST=ON
-DAMDGPU_TARGETS=${{ job.target }} ..
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm parameters:
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include componentName: AMDMIGraphX
-DBUILD_TESTING=ON testExecutable: make
-DMIGRAPHX_ENABLE_C_API_TEST=ON testParameters: -j$(nproc) check
.. testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
componentName: ${{ parameters.componentName }} pipModules: ${{ parameters.pipModules }}
testExecutable: make environment: test
testParameters: -j$(nproc) check gpuTarget: $(JOB_GPU_TARGET)
testPublishResults: false extraEnvVars:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - MIGRAPHX_TRACE_BENCHMARKING:::1
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
extraEnvVars:
- MIGRAPHX_TRACE_BENCHMARKING:::1

View File

@@ -1,46 +1,20 @@
parameters: parameters:
- name: componentName
type: string
default: hip_clr_combined
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libnuma-dev - libnuma-dev
- libsimde-dev
- mesa-common-dev - mesa-common-dev
- ninja-build
- ocl-icd-libopencl1 - ocl-icd-libopencl1
- ocl-icd-opencl-dev - ocl-icd-opencl-dev
- opencl-headers - opencl-headers
- zlib1g-dev - python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -55,81 +29,118 @@ parameters:
type: object type: object
default: default:
- llvm-project - llvm-project
- ROCR-Runtime
- name: jobMatrix # hip and clr are tightly-coupled
type: object # run this same template for both repos
default: # any changes for clr should just trigger HIP pipeline
buildJobs: # similarly for hipother repo, for Nvidia backend
- { os: ubuntu2204, packageManager: apt, platform: amd }
- { os: ubuntu2204, packageManager: apt, platform: nvidia }
- { os: almalinux8, packageManager: dnf, platform: amd }
- { os: almalinux8, packageManager: dnf, platform: nvidia }
# HIP with AMD backend
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hip_clr_combined_amd
- job: ${{ parameters.componentName }}_${{ job.os }}_${{ job.platform }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
vmImage: 'ubuntu-22.04' steps:
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
container: parameters:
image: rocmexternalcicd.azurecr.io/manylinux228:latest aptPackages: ${{ parameters.aptPackages }}
endpoint: ContainerService3 pipModules: ${{ parameters.pipModules }}
variables: # checkout triggering repo (either HIP or clr)
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all # if this is triggered by HIP repo, matching repo is clr
steps: # if this is triggered by clr repo, matching repo is HIP
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} checkoutRepo: matching_repo
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: hipother_repo
# full checkout of rocm-systems superrepo, we need clr, hip, and hipother - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRepo: ${{ parameters.checkoutRepo }} dependencyList: ${{ parameters.rocmDependenciesAMD }}
# sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} # compile clr
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: clr
aggregatePipeline: ${{ parameters.aggregatePipeline }} cmakeBuildDir: 'clr/build'
os: ${{ job.os }} extraBuildFlags: >-
${{ if eq(job.platform, 'amd') }}: -DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP
dependencyList: ${{ parameters.rocmDependenciesAMD }} -DHIP_PLATFORM=amd
${{ elseif eq(job.platform, 'nvidia') }}: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
dependencyList: ${{ parameters.rocmDependenciesNvidia }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
${{ if parameters.triggerDownstreamJobs }}: -DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCLR_BUILD_HIP=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCLR_BUILD_OCL=ON
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
componentName: clr parameters:
cmakeBuildDir: $(Agent.BuildDirectory)/s/projects/clr/build artifactName: amd
cmakeSourceDir: $(Agent.BuildDirectory)/s/projects/clr - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
os: ${{ job.os }} parameters:
useAmdclang: false artifactName: amd
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin aptPackages: ${{ parameters.aptPackages }}
-DHIP_COMMON_DIR=$(Agent.BuildDirectory)/s/projects/hip pipModules: ${{ parameters.pipModules }}
-DHIPNV_DIR=$(Agent.BuildDirectory)/s/projects/hipother/hipnv environment: amd
-DHIP_PLATFORM=${{ job.platform }}
-DCLR_BUILD_HIP=ON # HIP with Nvidia backend
-DCLR_BUILD_OCL=ON - job: hip_clr_combined_nvidia
-GNinja variables:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - group: common
parameters: - template: /.azuredevops/variables-global.yml
artifactName: ${{ job.platform }} pool: ${{ variables.LOW_BUILD_POOL }}
os: ${{ job.os }} workspace:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml clean: all
parameters: steps:
artifactName: ${{ job.platform }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
# checkout triggering repo (either HIP or clr)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
# if this is triggered by HIP repo, matching repo is clr
# if this is triggered by clr repo, matching repo is HIP
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: matching_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: hipother_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependenciesNvidia }}
- script: 'ls -1R $(Agent.BuildDirectory)/rocm'
displayName: 'Artifact listing'
# compile clr
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: clr
cmakeBuildDir: 'clr/build'
extraBuildFlags: >-
-DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP
-DHIP_PLATFORM=nvidia
-DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin
-DCLR_BUILD_HIP=ON
-DCLR_BUILD_OCL=OFF
-DHIPNV_DIR=$(Build.SourcesDirectory)/hipother/hipnv
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
artifactName: nvidia
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: nvidia

View File

@@ -1,155 +1,119 @@
parameters: parameters:
- name: componentName
type: string
default: HIPIFY
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cuda-toolkit-12-9 - cmake
- libcudnn9-dev-cuda-12
- libnuma-dev
- mesa-common-dev
- ninja-build - ninja-build
- python-is-python3 - libnuma-dev
- python3-dev - python3-dev
- python3-pip - python3-pip
- name: pipModules - python-is-python3
type: object - mesa-common-dev
default: - ccache
- lit - cuda-toolkit
- name: rocmDependencies - cudnn
type: object
default:
- llvm-project
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: HIPIFY
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: UPSTREAM_LLVM_GIT_URL
pool: value: https://github.com/llvm/llvm-project.git
${{ if eq(job.os, 'ubuntu2404') }}: - name: UPSTREAM_LLVM_TAG
name: rocm-ci_medium_build_pool_2404 value: llvmorg-18.1.2
${{ else }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
name: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
${{ if eq(job.os, 'almalinux8') }}: clean: all
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - task: Bash@3
endpoint: ContainerService3 displayName: 'Register CUDA packages'
workspace: inputs:
clean: all targetType: inline
steps: script: |
- task: Bash@3 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
displayName: 'Register CUDA packages' sudo dpkg -i cuda-keyring_1.1-1_all.deb
inputs: sudo rm -f cuda-keyring_1.1-1_all.deb
targetType: inline sudo apt update
${{ if eq(job.os, 'ubuntu2204') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
script: | parameters:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb aptPackages: ${{ parameters.aptPackages }}
sudo dpkg -i cuda-keyring_1.1-1_all.deb - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
sudo rm -f cuda-keyring_1.1-1_all.deb - task: Bash@3
sudo apt update displayName: git clone upstream llvm-project
${{ if eq(job.os, 'almalinux8') }}: inputs:
script: | targetType: inline
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo script: git clone $(UPSTREAM_LLVM_GIT_URL) --depth=1 --branch $(UPSTREAM_LLVM_TAG) --recurse-submodules
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml workingDirectory: $(Pipeline.Workspace)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
packageManager: ${{ job.packageManager }} - script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml mkdir -p $(CCACHE_DIR)
- task: Bash@3 echo "##vso[task.prependpath]/usr/lib/ccache:/usr/local/cuda/bin"
displayName: Add lit to PATH displayName: Update path for cuda and ccache
inputs: - task: Cache@2
targetType: inline displayName: Ccache caching
script: | inputs:
site_packages=$(python3 -m site --user-base)/bin key: HIPIFY | $(Agent.OS) | "$(UPSTREAM_LLVM_TAG)"
sudo ln -sf $site_packages/bin/lit $(Pipeline.Workspace)/llvm-lit path: $(CCACHE_DIR)
echo "##vso[task.prependpath]$site_packages" restoreKeys: HIPIFY | $(Agent.OS)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: componentName: upstream-llvm
checkoutRepo: ${{ parameters.checkoutRepo }} cmakeBuildDir: $(Pipeline.Workspace)/llvm-project/llvm/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml installDir: $(Pipeline.Workspace)/llvm
parameters: extraBuildFlags: >-
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_BUILD_TYPE=Release
dependencyList: ${{ parameters.rocmDependencies }} -DLLVM_ENABLE_PROJECTS=clang
os: ${{ job.os }} -DLLVM_INCLUDE_TESTS=OFF
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
# cutensor is not available from apt or dnf -DCMAKE_C_COMPILER_LAUNCHER=ccache
- task: Bash@3 -GNinja
displayName: 'Download and install cutensor' - task: Bash@3
inputs: displayName: python install lit
targetType: inline inputs:
script: | targetType: inline
wget -q --show-progress https://developer.download.nvidia.com/compute/cutensor/redist/libcutensor/linux-x86_64/libcutensor-linux-x86_64-2.2.0.0-archive.tar.xz script: sudo python3 $(Pipeline.Workspace)/llvm-project/llvm/utils/lit/setup.py install
tar -xvJf libcutensor-linux-x86_64-*.tar.xz - task: Bash@3
mkdir -p $(Pipeline.Workspace)/cutensor displayName: install FileCheck
cp -r libcutensor-linux-x86_64-*/* $(Pipeline.Workspace)/cutensor/ inputs:
- task: Bash@3 targetType: inline
displayName: 'List downloaded CUDA files' script: cp $(Pipeline.Workspace)/llvm-project/llvm/build/bin/FileCheck $(Pipeline.Workspace)/llvm/bin
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
targetType: inline parameters:
script: ls -la1R /usr/local/cuda-12.9 componentName: HIPIFY
# script: cp $(Pipeline.Workspace)/llvm-project/llvm/build/bin/FileCheck $(Pipeline.Workspace)/llvm/bin extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DHIPIFY_CLANG_TESTS=ON
parameters: -DCMAKE_BUILD_TYPE=Release
componentName: ${{ parameters.componentName }} -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/targets/x86_64-linux
os: ${{ job.os }} -DCUDA_DNN_ROOT_DIR=/usr/local/cuda/targets/x86_64-linux
consolidateBuildAndInstall: true -DCMAKE_PREFIX_PATH=$(Pipeline.Workspace)/llvm;/usr/local/cuda/targets/x86_64-linux/lib
extraBuildFlags: >- -DLLVM_EXTERNAL_LIT=$(Pipeline.Workspace)/llvm-project/llvm/build/bin/llvm-lit
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;/usr/local/cuda/targets/x86_64-linux/lib multithreadFlag: -- -j32
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DHIPIFY_CLANG_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.9 componentName: HIPIFY
-DCUDA_DNN_ROOT_DIR=/usr/local/cuda-12.9 testDir: $(Build.SourcesDirectory)/build
-DCUDA_CUB_ROOT_DIR=/usr/local/cuda-12.9/targets/x86_64-linux/include/cub testExecutable: make
-DCUDA_TENSOR_ROOT_DIR=$(Pipeline.Workspace)/cutensor/ testParameters: test-hipify
multithreadFlag: -- -j32 testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml aptPackages: ${{ parameters.aptPackages }}
parameters: environment: combined
os: ${{ job.os }} registerCUDAPackages: true
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml extraCopyDirectories:
# parameters: - llvm-project
# componentName: HIPIFY extraEnvVars:
# testDir: $(Build.SourcesDirectory)/build - UPSTREAM_LLVM_GIT_URL:::https://github.com/llvm/llvm-project.git
# testExecutable: make - UPSTREAM_LLVM_TAG:::llvmorg-18.1.2
# testParameters: -j 32 test-hipify
# testPublishResults: false
# os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: combined
registerCUDAPackages: true
extraCopyDirectories:
- llvm-project

View File

@@ -1,41 +1,16 @@
parameters: parameters:
- name: componentName
type: string
default: MIOpen
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- jq - jq
- libdrm-dev - libdrm-dev
- libmsgpack-dev
- libsqlite3-dev - libsqlite3-dev
- libstdc++-12-dev - libstdc++-12-dev
- ninja-build - ninja-build
@@ -80,211 +55,149 @@ parameters:
- rocRAND - rocRAND
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
- name: downstreamComponentMatrix
type: object
default:
- MIVisionX:
name: MIVisionX
checkoutRepo: mivisionx_repo
sparseCheckoutDir: ''
skipUnifiedBuild: 'false'
buildDependsOn:
- MIOpen_build
- AMDMIGraphX:
name: AMDMIGraphX
checkoutRepo: amdmigraphx_repo
sparseCheckoutDir: ''
skipUnifiedBuild: 'false'
buildDependsOn:
- MIOpen_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: MIOpen
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_ubuntu2204_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: ROCM_PATH gfx942:
value: $(Agent.BuildDirectory)/rocm JOB_GPU_TARGET: gfx942
pool: ${{ variables.MEDIUM_BUILD_POOL }} steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - task: Bash@3
parameters: displayName: Build and install other dependencies
checkoutRef: ${{ parameters.checkoutRef }} inputs:
dependencyList: ${{ parameters.rocmDependencies }} targetType: inline
gpuTarget: ${{ job.target }} workingDirectory: $(Build.SourcesDirectory)
aggregatePipeline: ${{ parameters.aggregatePipeline }} script: |
${{ if parameters.triggerDownstreamJobs }}: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sed -i '/composable_kernel/d' requirements.txt
- task: Bash@3 mkdir -p $(Agent.BuildDirectory)/miopen-deps
displayName: Build and install other dependencies cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps
retryCountOnTaskFailure: 3 sudo rm -rf /opt/rocm
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
targetType: inline parameters:
workingDirectory: $(Agent.BuildDirectory)/s extraBuildFlags: >-
script: | -DMIOPEN_BACKEND=HIP
sed -i '/composable_kernel/d' requirements.txt -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
mkdir -p $(Agent.BuildDirectory)/miopen-deps -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/miopen-deps
export CXX=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
export CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps --generator Ninja -DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DBUILD_TESTING=ON
extraBuildFlags: >- -GNinja
-DMIOPEN_BACKEND=HIP - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/miopen-deps gpuTarget: $(JOB_GPU_TARGET)
-DGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF parameters:
-DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DBUILD_TESTING=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} extraCopyDirectories:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - miopen-deps
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- miopen-deps
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: MIOpen_testing
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} timeoutInMinutes: 180
timeoutInMinutes: 180 dependsOn: MIOpen
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - task: Bash@3
parameters: displayName: Build and install other dependencies
checkoutRef: ${{ parameters.checkoutRef }} inputs:
dependencyList: ${{ parameters.rocmTestDependencies }} targetType: inline
gpuTarget: ${{ job.target }} workingDirectory: $(Build.SourcesDirectory)
${{ if parameters.triggerDownstreamJobs }}: script: |
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 sed -i '/composable_kernel/d' requirements.txt
displayName: Build and install other dependencies mkdir -p $(Agent.BuildDirectory)/miopen-deps
retryCountOnTaskFailure: 3 cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps
inputs: sudo rm -rf /opt/rocm
targetType: inline - task: CMake@1
workingDirectory: $(Agent.BuildDirectory)/s displayName: 'MIOpen Test CMake Flags'
script: | inputs:
sed -i '/composable_kernel/d' requirements.txt cmakeArgs: >-
mkdir -p $(Agent.BuildDirectory)/miopen-deps -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Agent.BuildDirectory)/miopen-deps
export CXX=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm
export CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- task: CMake@1 -DMIOPEN_BACKEND=HIP
displayName: 'MIOpen Test CMake Flags' -DMIOPEN_TEST_FLAGS=" --disable-verification-cache"
inputs: -DCMAKE_BUILD_TYPE=release
cmakeArgs: >- -DBUILD_DEV=OFF
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/s/bin;$(Agent.BuildDirectory)/miopen-deps -DMIOPEN_USE_MLIR=ON
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm -DMIOPEN_GPU_SYNC=OFF
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ ..
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - task: Bash@3
-DMIOPEN_BACKEND=HIP displayName: 'MIOpen Test Build'
-DMIOPEN_TEST_FLAGS=" --disable-verification-cache" inputs:
-DCMAKE_BUILD_TYPE=release targetType: inline
-DBUILD_DEV=OFF script: |
-DMIOPEN_USE_MLIR=ON cmake --build . --target tests -- -j$(nproc)
-DMIOPEN_GPU_SYNC=OFF workingDirectory: $(Build.SourcesDirectory)/build
$(Agent.BuildDirectory)/s - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
displayName: 'MIOpen Test Build' parameters:
inputs: componentName: MIOpen
targetType: inline testParameters: '-VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex test_rnn_seq_api'
workingDirectory: build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
script: | parameters:
cmake --build . --target tests -- -j$(nproc) aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} extraCopyDirectories:
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "test_rnn_seq_api|GPU_Conv2dTuningAsm_FP32|GPU_Conv2dTuningAsmBwdWrw_FP32"' - miopen-deps
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- miopen-deps
# - ${{ if parameters.triggerDownstreamJobs }}:
# - ${{ each component in parameters.downstreamComponentMatrix }}:
# - ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
# - template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
# parameters:
# checkoutRepo: ${{ component.checkoutRepo }}
# # sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
# buildDependsOn: ${{ component.buildDependsOn }}
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
# triggerDownstreamJobs: true
# unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: MIVisionX
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
# - name: sparseCheckoutDir
# type: string
# default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -62,24 +38,21 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- AMDMIGraphX
- clr
- half
- hipBLAS-common
- hipBLASLt
- llvm-project
- MIOpen
- rocBLAS
- rocDecode
- rocm-cmake - rocm-cmake
- llvm-project
- ROCR-Runtime
- clr
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - half
- rocBLAS
- MIOpen
- AMDMIGraphX
- rpp - rpp
- rocDecode
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- aomp
- clr - clr
- half - half
- hipBLAS-common - hipBLAS-common
@@ -92,122 +65,97 @@ parameters:
- roctracer - roctracer
- rpp - rpp
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: MIVisionX
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_ubuntu2204_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: extraBuildFlags: >-
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DROCM_DEP_ROCMCORE=ON
extraBuildFlags: >- -GNinja
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DROCM_DEP_ROCMCORE=ON gpuTarget: $(JOB_GPU_TARGET)
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml pipModules: ${{ parameters.pipModules }}
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: MIVisionX_testing
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} dependsOn: MIVisionX
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
- name: LD_LIBRARY_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm/lib:$(Agent.BuildDirectory)/rocm/include/mivisionx/VX JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} # anything in /opt may be persistent across runs
dependencyList: ${{ parameters.rocmTestDependencies }} # so we need to remove the symlink if it already exists
gpuTarget: ${{ job.target }} - script: |
${{ if parameters.triggerDownstreamJobs }}: sudo rm -f /opt/rocm
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 mkdir mivisionx-tests
displayName: Build MIVisionX tests cd mivisionx-tests
inputs: cmake /opt/rocm/share/mivisionx/test
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral parameters:
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm componentName: MIVisionX
mkdir mivisionx-tests testDir: 'mivisionx-tests'
cd mivisionx-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
cmake $(Agent.BuildDirectory)/rocm/share/mivisionx/test parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml pipModules: ${{ parameters.pipModules }}
parameters: environment: test
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
testDir: 'mivisionx-tests' optSymLink: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
optSymLink: true

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: ROCR-Runtime
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -37,9 +13,8 @@ parameters:
- libdrm-dev - libdrm-dev
- libelf-dev - libelf-dev
- libnuma-dev - libnuma-dev
- libsimde-dev
- ninja-build
- pkg-config - pkg-config
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -48,174 +23,128 @@ parameters:
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- amdsmi
- llvm-project - llvm-project
- rocm_smi_lib
- rocprofiler-register - rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: ROCR_Runtime
- job: ROCR_Runtime_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
vmImage: 'ubuntu-22.04' steps:
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
container: parameters:
image: rocmexternalcicd.azurecr.io/manylinux228:latest aptPackages: ${{ parameters.aptPackages }}
endpoint: ContainerService3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- group: common parameters:
- template: /.azuredevops/variables-global.yml checkoutRepo: ${{ parameters.checkoutRepo }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
clean: all parameters:
steps: checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -DBUILD_SHARED_LIBS=ON
parameters: -DCMAKE_BUILD_TYPE=Release
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} aptPackages: ${{ parameters.aptPackages }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
os: ${{ job.os }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DBUILD_SHARED_LIBS=ON
-DCMAKE_BUILD_TYPE=Release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: ROCR_Runtime_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: ROCR_Runtime
- job: ROCR_Runtime_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ROCR_Runtime_build_${{ job.os }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - task: Bash@3
aptPackages: ${{ parameters.aptPackages }} displayName: Install libhwloc5
packageManager: ${{ job.packageManager }} inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml targetType: 'inline'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml script: |
parameters: wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc5_1.11.12-3_amd64.deb
os: ${{ job.os }} wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc-dev_1.11.12-3_amd64.deb
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml sudo apt install -y --allow-downgrades ./libhwloc5_1.11.12-3_amd64.deb ./libhwloc-dev_1.11.12-3_amd64.deb
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
os: ${{ job.os }} checkoutRef: ${{ parameters.checkoutRef }}
${{ if parameters.triggerDownstreamJobs }}: dependencyList: ${{ parameters.rocmTestDependencies }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters:
parameters: runRocminfo: false
runRocminfo: false - task: Bash@3
- task: Bash@3 displayName: Build kfdtest
displayName: Build kfdtest continueOnError: true
inputs: inputs:
targetType: 'inline' targetType: 'inline'
workingDirectory: $(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest
script: | script: |
if [ -e /opt/rh/gcc-toolset-14/enable ]; then mkdir build && cd build
source /opt/rh/gcc-toolset-14/enable cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ..
fi make
mkdir build && cd build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm .. parameters:
make componentName: kfdtest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testExecutable: BIN_DIR=$(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh
parameters: testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes'
componentName: kfdtest testDir: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/scripts
testExecutable: BIN_DIR=$(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh - task: Bash@3
testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes' displayName: Build rocrtst
testDir: $(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest/scripts continueOnError: true
os: ${{ job.os }} inputs:
- task: Bash@3 targetType: 'inline'
displayName: Build rocrtst workingDirectory: $(Build.SourcesDirectory)/rocrtst/suites/test_common
inputs: script: |
targetType: 'inline' sudo rm -rf $(Agent.BuildDirectory)/external/llvm-project
workingDirectory: $(Agent.BuildDirectory)/s/rocrtst/suites/test_common mkdir -p $(Agent.BuildDirectory)/external/llvm-project/clang/lib
script: | sudo ln -s $(Agent.BuildDirectory)/rocm/llvm/lib/clang/20/include $(Agent.BuildDirectory)/external/llvm-project/clang/lib/Headers
echo $(Agent.BuildDirectory)/s/rocrtst/thirdparty/lib | sudo tee -a /etc/ld.so.conf.d/rocm-ci.conf mkdir build && cd build
sudo cat /etc/ld.so.conf.d/rocm-ci.conf cmake .. \
sudo ldconfig -v -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm \
ldconfig -p -DTARGET_DEVICES=$(JOB_GPU_TARGET) \
if [ -e /opt/rh/gcc-toolset-14/enable ]; then -DROCM_DIR=$(Agent.BuildDirectory)/rocm \
source /opt/rh/gcc-toolset-14/enable -DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin \
fi -DOPENCL_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin
BASE_CLANG_DIR=$(Agent.BuildDirectory)/rocm/llvm/lib/clang -DOPENCL_INC_DIR=$(Agent.BuildDirectory)/rocm/llvm/lib/clang/21/include
export NEWEST_CLANG_VER=$(ls -1 $BASE_CLANG_DIR | sort -V | tail -n 1) make
mkdir build && cd build make rocrtst_kernels
cmake .. \ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm \ parameters:
-DTARGET_DEVICES=${{ job.target }} \ componentName: rocrtst
-DROCM_DIR=$(Agent.BuildDirectory)/rocm \ testExecutable: ./rocrtst64
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin \ testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests:rocrtstFunc.Memory_Max_Mem" --gtest_output=xml:./test_output.xml --gtest_color=yes'
-DOPENCL_INC_DIR=$BASE_CLANG_DIR/$NEWEST_CLANG_VER/include testDir: $(Build.SourcesDirectory)/rocrtst/suites/test_common/build/$(JOB_GPU_TARGET)
make - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
make rocrtst_kernels parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml aptPackages: ${{ parameters.aptPackages }}
parameters: environment: test
componentName: rocrtst gpuTarget: $(JOB_GPU_TARGET)
testExecutable: ./rocrtst64 # docker image will be missing libhwloc5
testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests:rocrtstFunc.Memory_Max_Mem" --gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: $(Agent.BuildDirectory)/s//rocrtst/suites/test_common/build/${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
# docker image will be missing libhwloc5

View File

@@ -5,16 +5,12 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- ninja-build - ninja-build
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -23,57 +19,35 @@ parameters:
- rocminfo - rocminfo
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: ROCdbgapi
- job: ROCdbgapi_build_${{ job.os }} variables:
pool: - group: common
vmImage: 'ubuntu-22.04' - template: /.azuredevops/variables-global.yml
${{ if eq(job.os, 'almalinux8') }}: pool: ${{ variables.LOW_BUILD_POOL }}
container: workspace:
image: rocmexternalcicd.azurecr.io/manylinux228:latest clean: all
endpoint: ContainerService3 steps:
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- group: common parameters:
- template: /.azuredevops/variables-global.yml aptPackages: ${{ parameters.aptPackages }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -GNinja
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

View File

@@ -1,24 +1,15 @@
parameters: parameters:
- name: componentName
type: string
default: ROCgdb
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
# reference: https://github.com/ROCm/ROCgdb/blob/amd-staging/README-ROCM.md # reference: https://github.com/ROCm/ROCgdb/blob/amd-staging/README-ROCM.md
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- bison - bison
- cmake
- dejagnu - dejagnu
- flex - flex
- libbabeltrace-dev - libbabeltrace-dev
@@ -27,9 +18,6 @@ parameters:
- liblzma-dev - liblzma-dev
- libmpfr-dev - libmpfr-dev
- ncurses-dev - ncurses-dev
- pkg-config
- python3-dev
- python3-pip
- texinfo - texinfo
- zlib1g-dev - zlib1g-dev
- name: rocmDependencies - name: rocmDependencies
@@ -42,174 +30,87 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: ROCgdb
- job: ${{ parameters.componentName }}_build_${{ job.os }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
- name: PKG_CONFIG_PATH - name: PKG_CONFIG_PATH
value: $(Agent.BuildDirectory)/rocm/share/pkgconfig value: $(Agent.BuildDirectory)/rocm/share/pkgconfig
pool: pool: $(JOB_TEST_POOL)
${{ if eq(job.os, 'ubuntu2404') }}: workspace:
name: rocm-ci_medium_build_pool_2404 clean: all
${{ else }}: strategy:
name: ${{ variables.MEDIUM_BUILD_POOL }} matrix:
${{ if eq(job.os, 'almalinux8') }}: gfx942:
container: JOB_GPU_TARGET: gfx942
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
endpoint: ContainerService3 steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml configureFlags: >-
parameters: --program-prefix=roc
checkoutRef: ${{ parameters.checkoutRef }} --enable-64-bit-bfd
dependencyList: ${{ parameters.rocmDependencies }} --enable-targets="x86_64-linux-gnu,amdgcn-amd-amdhsa"
os: ${{ job.os }} --disable-ld
aggregatePipeline: ${{ parameters.aggregatePipeline }} --disable-gas
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml --disable-gdbserver
parameters: --disable-sim
os: ${{ job.os }} --enable-tui
configureFlags: >- --disable-gdbtk
--program-prefix=roc --disable-shared
--enable-64-bit-bfd --disable-gprofng
--enable-targets="x86_64-linux-gnu,amdgcn-amd-amdhsa" --with-expat
--disable-ld --with-system-zlib
--disable-gas --without-guile
--disable-gdbserver --with-babeltrace
--disable-sim --with-lzma
--enable-tui --with-python=python3
--disable-gdbtk --with-rocm-dbgapi=$(Agent.BuildDirectory)/rocm
--disable-shared LDFLAGS="-Wl,--enable-new-dtags,-rpath=$(Agent.BuildDirectory)/rocm/lib"
--disable-gprofng makeCallPrefix: LD_RUN_PATH='${ORIGIN}/../lib'
--with-expat - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
--with-system-zlib - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
--without-guile - task: Bash@3
--with-babeltrace displayName: Setup test environment
--with-lzma inputs:
--with-python=python3 targetType: inline
--with-rocm-dbgapi=$(Agent.BuildDirectory)/rocm script: |
LDFLAGS="-Wl,--enable-new-dtags,-rpath=$(Agent.BuildDirectory)/rocm/lib" sudo rm -rf /opt/rocm
makeCallPrefix: LD_RUN_PATH='${ORIGIN}/../lib' sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml echo "##vso[task.prependpath]/opt/rocm/bin"
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
os: ${{ job.os }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml displayName: check-gdb
parameters: continueOnError: true
componentName: ${{ parameters.componentName }} inputs:
os: ${{ job.os }} targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml script: make check-gdb TESTS=gdb.rocm/simple.exp
workingDirectory: $(Build.SourcesDirectory)
- ${{ each job in parameters.jobMatrix.testJobs }}: - task: Bash@3
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} displayName: print gdb log
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }} inputs:
condition: targetType: inline
and(succeeded(), script: find -name gdb.log -exec cat {} \;
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), workingDirectory: $(Build.SourcesDirectory)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
eq(${{ parameters.aggregatePipeline }}, False) parameters:
) aptPackages: ${{ parameters.aptPackages }}
variables: environment: combined
- group: common gpuTarget: $(JOB_GPU_TARGET)
- template: /.azuredevops/variables-global.yml extraEnvVars:
- name: PKG_CONFIG_PATH - PKG_CONFIG_PATH:::/home/user/workspace/rocm/share/pkgconfig
value: $(Agent.BuildDirectory)/rocm/share/pkgconfig
pool: ${{ job.target }}_test_pool
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml
parameters:
os: ${{ job.os }}
configureFlags: >-
--program-prefix=roc
--enable-64-bit-bfd
--enable-targets="x86_64-linux-gnu,amdgcn-amd-amdhsa"
--disable-ld
--disable-gas
--disable-gdbserver
--disable-sim
--enable-tui
--disable-gdbtk
--disable-shared
--disable-gprofng
--with-expat
--with-system-zlib
--without-guile
--with-babeltrace
--with-lzma
--with-python=python3
--with-rocm-dbgapi=$(Agent.BuildDirectory)/rocm
LDFLAGS="-Wl,--enable-new-dtags,-rpath=$(Agent.BuildDirectory)/rocm/lib"
makeCallPrefix: LD_RUN_PATH='${ORIGIN}/../lib'
- task: Bash@3
displayName: Setup test environment
inputs:
targetType: inline
script: |
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
echo "##vso[task.prependpath]/opt/rocm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3
displayName: check-gdb
continueOnError: true
inputs:
targetType: inline
script: |
${{ iif(eq(job.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }}
make check-gdb TESTS=gdb.rocm/simple.exp
workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3
displayName: print gdb log
inputs:
targetType: inline
script: find -name gdb.log -exec cat {} \;
workingDirectory: $(Build.SourcesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: combined
gpuTarget: ${{ job.target }}
extraEnvVars:
- PKG_CONFIG_PATH:::/home/user/workspace/rocm/share/pkgconfig

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -26,8 +21,6 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- amdsmi
- aomp
- clr - clr
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -43,8 +36,6 @@ parameters:
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- amdsmi
- aomp
- clr - clr
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -58,115 +49,99 @@ parameters:
- rocRAND - rocRAND
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
confDir: MI300X
- gfx90a:
target: gfx90a
confDir: MI210
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: ROCmValidationSuite
- job: ROCmValidationSuite_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME
- name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm
value: $(Build.BinariesDirectory)/rocm - name: ROCM_PATH
- name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm - name: HIP_INC_DIR
- name: HIP_INC_DIR value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm pool: ${{ variables.LOW_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/llvm/include -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++
-DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory) -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# aptPackages: ${{ parameters.aptPackages }} parameters:
# gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
# extraEnvVars: gpuTarget: $(JOB_GPU_TARGET)
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm extraEnvVars:
# - ROCM_PATH:::/home/user/workspace/rocm - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
# - HIP_INC_DIR:::/home/user/workspace/rocm - ROCM_PATH:::/home/user/workspace/rocm
- HIP_INC_DIR:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: ROCmValidationSuite_testing
- job: ROCmValidationSuite_test_${{ job.target }} dependsOn: ROCmValidationSuite
dependsOn: ROCmValidationSuite_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: ROCmValidationSuite
componentName: ROCmValidationSuite testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/MI300X/gst_single.conf
testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/${{ job.confDir }}/gst_single.conf testParameters: ''
testParameters: '' testDir: $(Agent.BuildDirectory)
testDir: $(Agent.BuildDirectory) testPublishResults: false
testPublishResults: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,41 +1,17 @@
parameters: parameters:
- name: componentName
type: string
default: Tensile
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- python3-pip
- cmake - cmake
- libboost-filesystem-dev
- libboost-program-options-dev
- libmsgpack-dev - libmsgpack-dev
- libboost-program-options-dev
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -54,168 +30,161 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: Tensile
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: ${{ parameters.buildDependsOn[job.target] }} - template: /.azuredevops/variables-global.yml
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: ROCM_PATH steps:
value: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pool: parameters:
vmImage: ${{ variables.BASE_BUILD_POOL }} aptPackages: ${{ parameters.aptPackages }}
${{ if eq(job.os, 'almalinux8') }}: pipModules: ${{ parameters.pipModules }}
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
endpoint: ContainerService3 parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
pipModules: ${{ parameters.pipModules }} - task: Bash@3
packageManager: ${{ job.packageManager }} displayName: Create wheel file
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml targetType: inline
parameters: script: python3 setup.py bdist_wheel
checkoutRepo: ${{ parameters.checkoutRepo }} workingDirectory: $(Build.SourcesDirectory)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} env:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ROCM_PATH: $(Agent.BuildDirectory)/rocm
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} sourceDir: $(Build.SourcesDirectory)/dist
os: ${{ job.os }} contentsString: '*.whl'
aggregatePipeline: ${{ parameters.aggregatePipeline }} targetDir: $(Build.ArtifactStagingDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml clean: false
parameters: - task: PublishPipelineArtifact@1
os: ${{ job.os }} displayName: 'wheel file Publish'
- task: Bash@3 retryCountOnTaskFailure: 3
displayName: Create wheel file inputs:
inputs: targetPath: $(Build.ArtifactStagingDirectory)
targetType: inline - task: Bash@3
script: python3 setup.py bdist_wheel displayName: Save pipeline artifact file names
workingDirectory: $(Agent.BuildDirectory)/s inputs:
- task: Bash@3 workingDirectory: $(Pipeline.Workspace)
displayName: Rename wheel file with job OS targetType: inline
inputs: script: |
targetType: inline echo "$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_drop_$(JOB_GPU_TARGET).tar.gz" >> pipelineArtifacts.txt
workingDirectory: $(Agent.BuildDirectory)/s whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1)
script: | if [ -n "$whlFile" ]; then
wheelFile=$(find "$(Agent.BuildDirectory)/s/dist" -type f -name "*.whl" | head -n 1) echo $(basename "$whlFile") >> pipelineArtifacts.txt
newWheelFile="$(basename "$wheelFile" .whl)-${{ job.os }}.whl" fi
mv "$wheelFile" "$(dirname "$wheelFile")/$newWheelFile" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
sourceDir: $(Agent.BuildDirectory)/s/dist aptPackages: ${{ parameters.aptPackages }}
contentsString: '*.whl' pipModules: ${{ parameters.pipModules }}
targetDir: $(Build.ArtifactStagingDirectory) gpuTarget: $(JOB_GPU_TARGET)
clean: false
- task: PublishPipelineArtifact@1
displayName: 'wheel file Publish'
retryCountOnTaskFailure: 3
inputs:
targetPath: $(Build.ArtifactStagingDirectory)
- task: Bash@3
displayName: Save pipeline artifact file names
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1)
if [ -n "$whlFile" ]; then
echo $(basename "$whlFile") >> pipelineArtifacts.txt
fi
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: Tensile_testing
- job: Tensile_test_${{ job.os }}_${{ job.target }} timeoutInMinutes: 90
timeoutInMinutes: 180 dependsOn: Tensile
dependsOn: Tensile_build_${{ job.os }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - task: DownloadPipelineArtifact@2
pipModules: ${{ parameters.pipModules }} displayName: 'Download Pipeline Wheel Files'
packageManager: ${{ job.packageManager }} inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml itemPattern: '**/*.whl'
- task: DownloadPipelineArtifact@2 targetPath: $(Agent.BuildDirectory)
displayName: 'Download Pipeline Wheel Files' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
retryCountOnTaskFailure: 3 parameters:
inputs: checkoutRepo: ${{ parameters.checkoutRepo }}
itemPattern: '**/*${{ job.os }}*.whl' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
targetPath: $(Agent.BuildDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRepo: ${{ parameters.checkoutRepo }} dependencyList: ${{ parameters.rocmDependencies }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml displayName: pip install
parameters: inputs:
checkoutRef: ${{ parameters.checkoutRef }} targetType: inline
dependencyList: ${{ parameters.rocmDependencies }} script: find -name *.whl -exec pip install {} \;
os: ${{ job.os }} workingDirectory: $(Agent.BuildDirectory)
gpuTarget: ${{ job.target }} - task: Bash@3
- task: Bash@3 displayName: Setup test environment
displayName: pip install inputs:
inputs: targetType: inline
targetType: inline script: |
script: find -name *.whl -exec pip install {} \; sudo rm -rf /opt/rocm
workingDirectory: $(Agent.BuildDirectory) sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 - task: Bash@3
displayName: Setup test environment displayName: Add Python site-packages binaries to path
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral USER_BASE=$(python3 -m site --user-base)
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm echo "##vso[task.prependpath]$USER_BASE/bin"
USER_BASE=$(python3 -m site --user-base) - task: Bash@3
echo "##vso[task.prependpath]$USER_BASE/bin" displayName: Add ROCm binaries to PATH
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" inputs:
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- task: Bash@3 - task: Bash@3
displayName: tox test displayName: Add ROCm compilers to PATH
inputs: inputs:
targetType: inline targetType: inline
script: tox run -v -e ci -- -m pre_checkin script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
workingDirectory: $(Agent.BuildDirectory)/s - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - task: Bash@3
parameters: displayName: tox test
aptPackages: ${{ parameters.aptPackages }} inputs:
pipModules: ${{ parameters.pipModules }} targetType: inline
environment: test script: tox run -v -e ci -- -m pre_checkin
gpuTarget: ${{ job.target }} workingDirectory: $(Build.SourcesDirectory)
pythonEnvVars: true - task: Bash@3
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin displayName: Remove Python site-packages binaries from path
# docker image will not have python site-packages in path, but the env vars will make it easier inputs:
targetType: inline
script: |
USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$USER_BASE/bin;;' -e 's;^/;;' -e 's;/$;;')"
- task: Bash@3
displayName: Remove ROCm binaries from PATH
inputs:
targetType: inline
script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- task: Bash@3
displayName: Remove ROCm compilers from PATH
inputs:
targetType: inline
script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)
optSymLink: true
pythonEnvVars: true
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
# docker image will not have python site-packages in path, but the env vars will make it easier

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -35,108 +30,94 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: TransferBench
- job: TransferBench_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.LOW_BUILD_POOL }}
pool: workspace:
vmImage: ${{ variables.BASE_BUILD_POOL }} clean: all
workspace: strategy:
clean: all matrix:
steps: gfx942:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_GPU_TARGET: gfx942
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
extraBuildFlags: >- parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# aptPackages: ${{ parameters.aptPackages }} parameters:
# gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: TransferBench_testing
- job: TransferBench_test_${{ job.target }} dependsOn: TransferBench
dependsOn: TransferBench_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: TransferBench All-to-all
componentName: TransferBench All-to-all testDir: '$(Agent.BuildDirectory)'
testDir: '$(Agent.BuildDirectory)' testExecutable: './rocm/bin/TransferBench'
testExecutable: './rocm/bin/TransferBench' testParameters: 'a2a'
testParameters: 'a2a' testPublishResults: false
testPublishResults: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: TransferBench Peer-to-peer
componentName: TransferBench Peer-to-peer testDir: '$(Agent.BuildDirectory)'
testDir: '$(Agent.BuildDirectory)' testExecutable: './rocm/bin/TransferBench'
testExecutable: './rocm/bin/TransferBench' testParameters: 'p2p'
testParameters: 'p2p' testPublishResults: false
testPublishResults: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,138 +1,76 @@
parameters: parameters:
- name: componentName
type: string
default: amdsmi
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libdrm-dev - libdrm-dev
- ninja-build - python3-pip
- pkg-config - pkg-config
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: amdsmi
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
pool: - group: common
${{ if eq(job.os, 'ubuntu2404') }}: - template: /.azuredevops/variables-global.yml
vmImage: 'ubuntu-24.04' pool: ${{ variables.LOW_BUILD_POOL }}
${{ else }}: workspace:
vmImage: 'ubuntu-22.04' clean: all
${{ if eq(job.os, 'almalinux8') }}: steps:
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 aptPackages: ${{ parameters.aptPackages }}
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml extraBuildFlags: >-
parameters: -DBUILD_TESTS=ON
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} aptPackages: ${{ parameters.aptPackages }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DBUILD_TESTS=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: amdsmi_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: amdsmi
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml runRocminfo: false
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: amdsmi
parameters: testDir: '$(Agent.BuildDirectory)'
runRocminfo: false testExecutable: './rocm/share/amd_smi/tests/amdsmitst'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)' aptPackages: ${{ parameters.aptPackages }}
testExecutable: 'sudo ./rocm/share/amd_smi/tests/amdsmitst' environment: test
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -28,8 +23,7 @@ jobs:
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
pool: pool: ${{ variables.LOW_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -44,7 +38,6 @@ jobs:
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: aomp-extras componentName: aomp-extras
@@ -58,6 +51,6 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}

View File

@@ -1,280 +1,523 @@
parameters: parameters:
- name: componentName
type: string
default: aomp
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
# reference: # reference:
# https://github.com/ROCm/aomp/blob/aomp-dev/docs/SOURCEINSTALL_PREREQUISITE.md # https://github.com/ROCm/aomp/blob/aomp-dev/docs/SOURCEINSTALL_PREREQUISITE.md
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- bison
- ccache
- cmake - cmake
- flex - python3-pip
- gawk
- git
- mesa-common-dev
- ninja-build - ninja-build
- libbabeltrace-dev - pkg-config
- libbison-dev - libpci-dev
- libnuma-dev
- libffi-dev
- git
- libopenmpi-dev
- gawk
- mesa-common-dev
- libtool
- libdrm-amdgpu1 - libdrm-amdgpu1
- libdrm-dev - libdrm-dev
- libdw-dev - libdw-dev
- libffi-dev - libgtest-dev
- libgmp-dev - libsystemd-dev
- liblzma-dev
- libmpfr-dev
- libncurses5-dev
- libnuma-dev
- libopenmpi-dev
- libpci-dev
- libssl-dev - libssl-dev
- libstdc++-12-dev - libstdc++-12-dev
- libsystemd-dev - ccache
- libtool - libgmp-dev
- libmpfr-dev
- texinfo
- libbison-dev
- bison
- flex
- libbabeltrace-dev
- libncurses5-dev
- liblzma-dev
- python3-setuptools
- python3-dev
- libudev-dev - libudev-dev
- parallel - parallel
- pkg-config # Referencing comment snippet below but excluding rocprofiler and roctracer.
- python3-dev # This is to remove need for separate build per gpu target.
- python3-pip # With our selected build flags, compilation and installation work fine without these two.
- python3-setuptools #
- texinfo # snippet from https://github.com/ROCm/aomp/blob/aomp-dev/bin/build_aomp.sh#L131-L134
#
# For ROCM build (AOMP_STANDALONE_BUILD=0) the components roct, rocr,
# libdevice, project, comgr, rocminfo, hipamd, rocdbgapi, rocgdb,
# roctracer, rocprofiler, rocm_smi_lib, and amdsmi should be found
# in ROCM in /opt/rocm. The ROCM build only needs these components:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- llvm-project - amdsmi
- ROCR-Runtime
- name: rocmTestDependencies
type: object
default:
- clr - clr
- llvm-project - llvm-project
- ROCdbgapi
- ROCgdb
- rocm-cmake
- rocm-core - rocm-core
- rocminfo - rocminfo
- ROCR-Runtime - rocm_smi_lib
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime
- name: jobMatrix - roctracer
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: aomp
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: workspace:
${{ if eq(job.os, 'ubuntu2404') }}: clean: all
name: rocm-ci_medium_build_pool_2404 steps:
${{ else }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
name: ${{ variables.MEDIUM_BUILD_POOL }} parameters:
${{ if eq(job.os, 'almalinux8') }}: aptPackages: ${{ parameters.aptPackages }}
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest # checkout the repos tied to openmp-extras, plus llvm-project
endpoint: ContainerService3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
workspace: parameters:
clean: all checkoutRepo: ${{ parameters.checkoutRepo }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: aomp-extras_repo
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: flang_repo
# checkout the repos tied to openmp-extras, plus llvm-project - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: llvm-project_repo
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRepo: aomp-extras_repo dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml # Because clang is not being rebuilt and to separate downloaded ROCm
parameters: # dependencies from the new artifacts, we use temporary symbolic links
checkoutRepo: flang_repo # for the compilation and installation to go through.
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - script: |
parameters: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
checkoutRepo: llvm-project_repo mkdir -p $(Build.BinariesDirectory)/lib/llvm/bin
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/clang $(Build.BinariesDirectory)/lib/llvm/bin/clang
parameters: ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/clang++ $(Build.BinariesDirectory)/lib/llvm/bin/clang++
dependencyList: ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/llvm-config $(Build.BinariesDirectory)/lib/llvm/bin/llvm-config
- gtest ln -s $(Agent.BuildDirectory)/rocm/llvm $(Build.BinariesDirectory)/llvm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ls -1R $(Build.BinariesDirectory)
parameters: displayName: Extra build environment setup
checkoutRef: ${{ parameters.checkoutRef }} # We follow the sequence described in the aomp repo instructions
dependencyList: ${{ parameters.rocmDependencies }} # https://github.com/ROCm/aomp/blob/aomp-dev/docs/SOURCEINSTALL.md
os: ${{ job.os }} # But instead of calling build_aomp.sh directly, we have to split up the calls to build each component
aggregatePipeline: ${{ parameters.aggregatePipeline }} # in order for the omp.h header file to be both be published as an artifact,
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # and be found when building subsequent components.
parameters: # Environment variables specified per bash script were determined from looking through the
os: ${{ job.os }} # individual scripts and iteratively testing compilation.
useAmdclang: false # Splitting up the build_aomp.sh call is also easier for debugging within Azure, as the former
componentName: extras # method leads to a giant build log compared to separate logs per script call.
cmakeBuildDir: '$(Build.SourcesDirectory)/aomp-extras/build' #
cmakeSourceDir: '$(Build.SourcesDirectory)/aomp-extras' # Components compiled and the order for non-standalone build found at
installDir: '$(Build.BinariesDirectory)/llvm' # https://github.com/ROCm/aomp/blob/aomp-dev/bin/build_aomp.sh#L135-L142
extraBuildFlags: >- - task: Bash@3
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm displayName: Build Prereq
-DCMAKE_BUILD_TYPE=Release inputs:
-DAOMP_STANDALONE_BUILD=0 filePath: $(Build.SourcesDirectory)/aomp/bin/build_prereq.sh
-DAOMP_VERSION_STRING=9.99.99 env:
-GNinja AOMP_REPOS: $(Build.SourcesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - task: Bash@3
parameters: displayName: Build extras
os: ${{ job.os }} inputs:
componentName: openmp filePath: $(Build.SourcesDirectory)/aomp/bin/build_extras.sh
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm-project/openmp/build' env:
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm-project/openmp' AOMP_REPOS: $(Build.SourcesDirectory)
installDir: '$(Build.BinariesDirectory)/llvm' AOMP_PROJECT_REPO_NAME: llvm-project
extraBuildFlags: >- AOMP_STANDALONE_BUILD: 0
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Build.BinariesDirectory)" AOMP_USE_NINJA: 1
-DCMAKE_BUILD_TYPE=Release INSTALL_PREFIX: $(Build.BinariesDirectory)
-DOPENMP_TEST_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
-DOPENMP_TEST_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang AOMP: $(Build.BinariesDirectory)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang INSTALL_EXTRAS: $(Build.BinariesDirectory)
-DOPENMP_ENABLE_LIBOMPTARGET=1 - task: Bash@3
-DLIBOMP_COPY_EXPORTS=OFF displayName: Install extras
-DLIBOMP_OMPD_SUPPORT=ON inputs:
-DCMAKE_SKIP_INSTALL_RPATH=TRUE filePath: $(Build.SourcesDirectory)/aomp/bin/build_extras.sh
-DLLVM_MAIN_INCLUDE_DIR=$(Build.SourcesDirectory)/llvm-project/llvm/include arguments: install
-DLIBOMP_FORTRAN_MODULES_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang env:
-DLIBOMP_MODULES_INSTALL_PATH=$(Build.BinariesDirectory)/llvm/include/flang/ AOMP_REPOS: $(Build.SourcesDirectory)
multithreadFlag: -- -j32 AOMP_PROJECT_REPO_NAME: llvm-project
- task: Bash@3 AOMP_STANDALONE_BUILD: 0
displayName: 'ROCm symbolic link' AOMP_USE_NINJA: 1
inputs: INSTALL_PREFIX: $(Build.BinariesDirectory)
targetType: inline CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm AOMP: $(Build.BinariesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
parameters: INSTALL_EXTRAS: $(Build.BinariesDirectory)
os: ${{ job.os }} - task: Bash@3
componentName: offload displayName: Build openmp
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm-project/offload/build' inputs:
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm-project/offload' filePath: $(Build.SourcesDirectory)/aomp/bin/build_openmp.sh
installDir: '$(Build.BinariesDirectory)/llvm' env:
extraBuildFlags: >- AOMP_REPOS: $(Build.SourcesDirectory)
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Build.BinariesDirectory)" AOMP_PROJECT_REPO_NAME: llvm-project
-DCMAKE_BUILD_TYPE=Release AOMP_STANDALONE_BUILD: 0
-DOPENMP_TEST_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ AOMP_BUILD_SANITIZER: 0
-DOPENMP_TEST_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang AOMP_BUILD_DEBUG: 0
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ AOMP_LEGACY_OPENMP: 1
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang AOMP_USE_NINJA: 1
-DCMAKE_SKIP_INSTALL_RPATH=TRUE ALTAOMP: $(Agent.BuildDirectory)/rocm/llvm
-DLLVM_MAIN_INCLUDE_DIR=$(Build.SourcesDirectory)/llvm-project/llvm/include INSTALL_PREFIX: $(Build.BinariesDirectory)
-DLIBOMPTARGET_LLVM_INCLUDE_DIRS=$(Build.SourcesDirectory)/llvm-project/llvm/include LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
-DCMAKE_EXE_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/llvm/lib" AOMP: $(Build.BinariesDirectory)
-DCMAKE_SHARED_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/llvm/lib" AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
-GNinja INSTALL_OPENMP: $(Build.BinariesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - task: Bash@3
parameters: displayName: Install openmp
componentName: ${{ parameters.componentName }} inputs:
os: ${{ job.os }} filePath: $(Build.SourcesDirectory)/aomp/bin/build_openmp.sh
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml arguments: install
parameters: env:
componentName: ${{ parameters.componentName }} AOMP_REPOS: $(Build.SourcesDirectory)
os: ${{ job.os }} AOMP_PROJECT_REPO_NAME: llvm-project
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml AOMP_STANDALONE_BUILD: 0
- ${{ if eq(job.os, 'ubuntu2204') }}: AOMP_BUILD_SANITIZER: 0
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml AOMP_BUILD_DEBUG: 0
parameters: AOMP_LEGACY_OPENMP: 1
aptPackages: ${{ parameters.aptPackages }} AOMP_USE_NINJA: 1
ALTAOMP: $(Agent.BuildDirectory)/rocm/llvm
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_OPENMP: $(Build.BinariesDirectory)
- script: ln -s $(Build.BinariesDirectory)/lib/llvm/include/omp.h $(Build.SourcesDirectory)/llvm-project/llvm/include/omp.h
displayName: Link omp header
- task: Bash@3
displayName: Build offload
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_offload.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_LEGACY_OPENMP: 1
AOMP_USE_NINJA: 1
ALTAOMP: $(Agent.BuildDirectory)/rocm/llvm
INSTALL_PREFIX: $(Build.BinariesDirectory)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_OPENMP: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install offload
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_offload.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_LEGACY_OPENMP: 1
AOMP_USE_NINJA: 1
ALTAOMP: $(Agent.BuildDirectory)/rocm/llvm
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_OPENMP: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build llvm-classic
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_llvm-classic.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install llvm-classic
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_llvm-classic.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build flang-classic
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang-classic.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install flang-classic
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang-classic.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build pgmath
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_pgmath.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install pgmath
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_pgmath.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build flang
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install flang
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build flang_runtime
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang_runtime.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install flang_runtime
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang_runtime.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_BUILD_SANITIZER: 0
AOMP_BUILD_DEBUG: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
# Clean up build environment before publish artifact
- script: |
rm $(Build.BinariesDirectory)/lib/llvm/bin/clang
rm $(Build.BinariesDirectory)/lib/llvm/bin/clang++
rm $(Build.BinariesDirectory)/lib/llvm/bin/llvm-config
rm $(Build.BinariesDirectory)/lib/llvm/bin/flang
rm $(Build.BinariesDirectory)/llvm
displayName: Remove temporary symbolic links
# aomp scripts changed where files get installed in scripts, copy to expected location
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters:
sourceDir: $(Build.BinariesDirectory)/lib/llvm
targetDir: $(Build.ArtifactStagingDirectory)
# Remove temporary directory used to deal with expected paths of scripts
- script: |
rm -rf $(Build.BinariesDirectory)/lib/llvm
displayName: Remove temporary directories
# Copy the files to artifact staging temporarily to clean up binaries directory
# and then copy files back to llvm subdirectory in the cleaned up binaries directory
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters:
sourceDir: $(Build.BinariesDirectory)
targetDir: $(Build.ArtifactStagingDirectory)
clean: false
- script: |
ln -s $(Build.ArtifactStagingDirectory)/bin/flang-classic $(Build.ArtifactStagingDirectory)/bin/flang
displayName: Recreate flang symlink
- task: DeleteFiles@1
displayName: 'Cleanup Binaries Directory'
inputs:
SourceFolder: '$(Build.BinariesDirectory)'
Contents: '/**/*'
RemoveDotFiles: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters:
sourceDir: $(Build.ArtifactStagingDirectory)
targetDir: $(Build.BinariesDirectory)/llvm
- task: DeleteFiles@1
displayName: 'Cleanup Staging Directory'
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)
Contents: '/**/*'
RemoveDotFiles: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
optSymLink: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: aomp_testing
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: aomp
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - task: Bash@3
parameters: displayName: ROCm symbolic link
checkoutRef: ${{ parameters.checkoutRef }} inputs:
dependencyList: ${{ parameters.rocmTestDependencies }} targetType: inline
os: ${{ job.os }} script: |
- task: Bash@3 sudo rm -rf /opt/rocm
displayName: ROCm symbolic link sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
targetType: inline parameters:
script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRepo: aomp-extras_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml # these copy steps are from the aomp prototype script for test prep
parameters: - task: CopyFiles@2
checkoutRepo: aomp-extras_repo displayName: 'Copy AOMP contents'
# these copy steps are from the aomp prototype script for test prep inputs:
- task: CopyFiles@2 CleanTargetFolder: false
displayName: 'Copy AOMP contents' SourceFolder: $(Build.SourcesDirectory)/aomp
inputs: Contents: |
CleanTargetFolder: false **
SourceFolder: $(Build.SourcesDirectory)/aomp !**/.git/**
Contents: | !**/.github/**
** !**/.gitignore
!**/.git/** TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests
!**/.github/** retryCount: 3
!**/.gitignore - task: CopyFiles@2
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests displayName: 'Copy FileCheck'
retryCount: 3 inputs:
- task: CopyFiles@2 CleanTargetFolder: false
displayName: 'Copy FileCheck' SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin
inputs: Contents: FileCheck
CleanTargetFolder: false TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin
SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin retryCount: 3
Contents: FileCheck - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin - task: Bash@3
retryCount: 3 displayName: Test AOMP
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml continueOnError: true
- task: Bash@3 inputs:
displayName: Test AOMP targetType: inline
continueOnError: true script: ./run_rocm_test.sh
inputs: workingDirectory: $(Build.SourcesDirectory)/aomp/bin
targetType: inline env:
script: ./run_rocm_test.sh AOMP: $(Agent.BuildDirectory)/rocm/llvm
workingDirectory: $(Build.SourcesDirectory)/aomp/bin AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test
env: AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test
AOMP: $(Agent.BuildDirectory)/rocm/llvm SKIP_TEST_PACKAGE: 1
AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test MAINLINE_BUILD: 1
AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test SUITE_LIST: smoke
SKIP_TEST_PACKAGE: 1 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
MAINLINE_BUILD: 1 parameters:
SUITE_LIST: smoke aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} optSymLink: true
environment: test
gpuTarget: ${{ job.target }}
optSymLink: true

View File

@@ -1,174 +0,0 @@
parameters:
- name: componentName
type: string
default: aqlprofile
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- python3-pip
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- ROCR-Runtime
- name: rocmTestDependencies
type: object
default:
- clr
- llvm-project
- ROCR-Runtime
- rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }}
${{ if parameters.buildDependsOn }}:
dependsOn:
- ${{ each build in parameters.buildDependsOn }}:
- ${{ build }}_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ variables.MEDIUM_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- gtest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
consolidateBuildAndInstall: true
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/aqlprofile/cmake_modules
-DAQLPROFILE_BUILD_TESTS=ON
-DGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}:
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }}
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')),
eq(${{ parameters.aggregatePipeline }}, False)
)
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ job.target }}_test_pool
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
preTargetFilter: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: $(Agent.BuildDirectory)/rocm/share/hsa-amd-aqlprofile/
testExecutable: ./run_tests.sh
testParameters: ''
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -32,135 +27,122 @@ parameters:
type: object type: object
default: default:
- clr - clr
- composable_kernel
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: composable_kernel
- job: composable_kernel_build_${{ job.target }} timeoutInMinutes: 240
timeoutInMinutes: 240 variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: DAY_STRING
- name: DAY_STRING value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
value: $[format('{0:ddMMyyyy}', pipeline.startTime)] pool: ${{ variables.ULTRA_BUILD_POOL }}
pool: ${{ variables.ULTRA_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRef: ${{ parameters.checkoutRef }}
- script: | dependencyList: ${{ parameters.rocmDependencies }}
mkdir -p $(CCACHE_DIR) gpuTarget: $(JOB_GPU_TARGET)
echo "##vso[task.prependpath]/usr/lib/ccache" - script: |
displayName: Update path for ccache mkdir -p $(CCACHE_DIR)
- task: Cache@2 echo "##vso[task.prependpath]/usr/lib/ccache"
displayName: Ccache caching displayName: Update path for ccache
inputs: - task: Cache@2
key: composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ displayName: Ccache caching
path: $(CCACHE_DIR) inputs:
restoreKeys: | key: composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) path: $(CCACHE_DIR)
composable_kernel | $(Agent.OS) | ${{ job.target }} restoreKeys: |
composable_kernel | $(Agent.OS) composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET)
parameters: composable_kernel | $(Agent.OS)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ parameters:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang extraBuildFlags: >-
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs" -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCK_BUILD_JIT_LIB=ON -DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs"
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release -DCK_BUILD_JIT_LIB=ON
-DGPU_TARGETS=${{ job.target }} -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-GNinja -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
# if this artifact name is changed, please also update $ARTIFACT_URL inside miopen-get-ck-build.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: composable_kernel_testing
- job: composable_kernel_test_${{ job.target }} timeoutInMinutes: 90
timeoutInMinutes: 180 dependsOn: composable_kernel
dependsOn: composable_kernel_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: TEST_LOG_FILE
eq(${{ parameters.aggregatePipeline }}, False) value: $(Pipeline.Workspace)/ckTestLog.log
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: TEST_LOG_FILE matrix:
value: $(Pipeline.Workspace)/ckTestLog.log gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3
- task: Bash@3 displayName: Iterate through test scripts
displayName: Iterate through test scripts inputs:
inputs: targetType: inline
targetType: inline script: |
script: | for file in ./test_*; do
for file in ./test_*; do ./$file | tee -a $(TEST_LOG_FILE)
./$file | tee -a $(TEST_LOG_FILE) done
done workingDirectory: $(Agent.BuildDirectory)/rocm/bin
workingDirectory: $(Agent.BuildDirectory)/rocm/bin - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,44 +1,34 @@
parameters: parameters:
- name: jobMatrix - name: checkoutRepo
type: object type: string
default: default: 'self'
copyJobs: - name: checkoutRef
- { os: ubuntu2204, backend: amd } type: string
- { os: almalinux8, backend: amd } default: ''
- { os: ubuntu2204, backend: nvidia }
- { os: almalinux8, backend: nvidia }
# hip and clr are tightly-coupled # hip and clr are tightly-coupled
# run this same template for both repos # run this same template for both repos
# any changes for clr should just trigger HIP pipeline # any changes for clr should just trigger HIP pipeline
jobs: jobs:
- ${{ each job in parameters.jobMatrix.copyJobs }}: - job: hip_clr_combined
- job: hip_clr_combined_${{ job.os }}_${{ job.backend }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool:
pool: vmImage: ${{ variables.BASE_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }} workspace:
workspace: clean: all
clean: all steps:
steps: # checkout nothing, just copy artifacts from triggering HIP job
# checkout nothing, just copy artifacts from triggering HIP job # and then publish for this clr job or for this hipother job to maintain latest
# and then publish for this clr job or for this hipother job to maintain latest - checkout: none
- checkout: none - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml parameters:
parameters: componentName: HIP
componentName: HIP pipelineId: $(HIP_PIPELINE_ID)
pipelineId: $(HIP_PIPELINE_ID) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
fileFilter: ${{ job.os }}*${{ job.backend }} parameters:
- task: Bash@3 sourceDir: $(Agent.BuildDirectory)/rocm
displayName: Copy HIP artifacts - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
script: cp -a $(Agent.BuildDirectory)/rocm/* $(Build.BinariesDirectory)/
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
inputs:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -30,8 +25,7 @@ jobs:
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
pool: pool: ${{ variables.LOW_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -46,7 +40,6 @@ jobs:
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -66,7 +59,7 @@ jobs:
./bin/test ./bin/test
workingDirectory: $(Build.SourcesDirectory)/test workingDirectory: $(Build.SourcesDirectory)/test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
# environment: combined environment: combined

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hip-tests
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -61,132 +37,111 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
# HIP with AMD backend # HIP with AMD backend
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hip_tests
- job: hip_tests_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.target }} value: $(Agent.BuildDirectory)/rocm
variables: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Agent.BuildDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} # compile hip-tests
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: hip-tests
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} cmakeSourceDir: '../catch'
# compile hip-tests customBuildTarget: build_tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml extraBuildFlags: >-
parameters: -DHIP_PLATFORM=amd
componentName: ${{ parameters.componentName }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
cmakeSourceDir: '../catch' -DROCM_PATH=$(Agent.BuildDirectory)/rocm
customBuildTarget: build_tests -DHIP_PATH=$(Agent.BuildDirectory)/rocm
extraBuildFlags: >- -DOFFLOAD_ARCH_STR="--offload-arch=$(JOB_GPU_TARGET)"
-DHIP_PLATFORM=amd -GNinja
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DHIP_PATH=$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
-DOFFLOAD_ARCH_STR="--offload-arch=${{ job.target }}" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: extraEnvVars:
componentName: ${{ parameters.componentName }} - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hip_tests_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 240
- job: hip_tests_test_${{ job.target }} dependsOn: hip_tests
timeoutInMinutes: 240 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: hip_tests_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - task: Bash@3
dependencyList: ${{ parameters.rocmTestDependencies }} displayName: Symlink rocm_agent_enumerator
gpuTarget: ${{ job.target }} inputs:
${{ if parameters.triggerDownstreamJobs }}: targetType: inline
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} script: |
- task: Bash@3 sudo rm -rf /opt/rocm
displayName: Symlink rocm_agent_enumerator sudo mkdir -p /opt/rocm/bin
inputs: sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral parameters:
sudo mkdir -p /opt/rocm/bin componentName: hip_tests
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator testDir: $(Agent.BuildDirectory)/rocm/share/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml displayName: Clean up symlink
parameters: condition: always()
componentName: ${{ parameters.componentName }} inputs:
testDir: $(Agent.BuildDirectory)/rocm/share/hip targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml script: sudo rm -rf /opt/rocm
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
environment: test aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} environment: test
optSymLink: true gpuTarget: $(JOB_GPU_TARGET)
optSymLink: true

View File

@@ -1,135 +1,60 @@
parameters: parameters:
- name: componentName
type: string
default: hipBLAS-common
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- ninja-build - ninja-build
- git
- wget - wget
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocm-cmake - rocm-cmake
- rocminfo - llvm-project
- ROCR-Runtime - ROCR-Runtime
- clr
- name: jobMatrix - rocminfo
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
- name: downstreamComponentMatrix
type: object
default:
- hipBLASLt:
name: hipBLASLt
sparseCheckoutDir: projects/hipblaslt
skipUnifiedBuild: 'false'
buildDependsOn:
- hipBLAS_common_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipBLAS_common
- job: hipBLAS_common_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - name: ROCM_PATH
- ${{ each build in parameters.buildDependsOn }}: value: $(Agent.BuildDirectory)/rocm
- ${{ build }}_${{ job.os }} - template: /.azuredevops/variables-global.yml
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: ROCM_PATH steps:
value: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pool: parameters:
vmImage: ${{ variables.BASE_BUILD_POOL }} aptPackages: ${{ parameters.aptPackages }}
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 checkoutRepo: ${{ parameters.checkoutRepo }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
clean: all parameters:
steps: checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
parameters: -GNinja
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} aptPackages: ${{ parameters.aptPackages }}
os: ${{ job.os }} extraEnvVars:
aggregatePipeline: ${{ parameters.aggregatePipeline }} - ROCM_PATH:::/home/user/workspace/rocm
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# extraEnvVars:
# - ROCM_PATH:::/home/user/workspace/rocm
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hipBLAS
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -75,158 +51,98 @@ parameters:
- rocSOLVER - rocSOLVER
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
# MIOpen depends on both rocRAND and hipBLAS
# for a unified build, hipBLAS will be the one to call MIOpen
- name: downstreamComponentMatrix
type: object
default:
- MIOpen:
name: MIOpen
sparseCheckoutDir: projects/miopen
skipUnifiedBuild: 'false'
buildDependsOn:
- hipBLAS_build
unifiedBuild:
downstreamAggregateNames: hipBLAS+rocRAND
buildDependsOn:
- hipBLAS_build
- rocRAND_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipBLAS
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_ubuntu2204_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} extraBuildFlags: >-
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
parameters: -DHIP_PLATFORM=amd
extraBuildFlags: >- -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DBUILD_CLIENTS_BENCHMARKS=OFF
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_SAMPLES=OFF
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCPACK_SET_DESTDIR=OFF
-DHIP_PLATFORM=amd -GNinja
-DBUILD_CLIENTS_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DBUILD_CLIENTS_BENCHMARKS=OFF parameters:
-DBUILD_CLIENTS_SAMPLES=OFF gpuTarget: $(JOB_GPU_TARGET)
-DCPACK_SET_DESTDIR=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml pipModules: ${{ parameters.pipModules }}
parameters: installAOCL: true
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
installAOCL: true
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipBLAS_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipBLAS
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
preTargetFilter: ${{ parameters.componentName }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} componentName: hipBLAS
${{ if parameters.triggerDownstreamJobs }}: testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} aptPackages: ${{ parameters.aptPackages }}
testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test pipModules: ${{ parameters.pipModules }}
testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' environment: test
testDir: '$(Agent.BuildDirectory)/rocm/bin' gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}
${{ if parameters.unifiedBuild }}:
buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
${{ else }}:
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}

View File

@@ -1,61 +1,28 @@
parameters: parameters:
- name: componentName
type: string
default: hipBLASLt
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- ccache
- gfortran
- git - git
- libboost-filesystem-dev
- libboost-program-options-dev
- libdrm-dev - libdrm-dev
- liblapack-dev
- libmsgpack-dev - libmsgpack-dev
- libnuma-dev - libnuma-dev
- libopenblas-dev
- ninja-build - ninja-build
- python3-pip - python3-pip
- python3-venv - python3-venv
- gfortran
- libblas-dev
- ccache
- name: pipModules - name: pipModules
type: object type: object
default: default:
- joblib - joblib
- "packaging>=22.0" - packaging>=22.0
- pyyaml
- msgpack
- simplejson
- ujson
- orjson
- yappi
- --upgrade - --upgrade
- name: rocmDependencies - name: rocmDependencies
type: object type: object
@@ -65,7 +32,6 @@ parameters:
- hipBLAS-common - hipBLAS-common
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocm-cmake
- rocm_smi_lib - rocm_smi_lib
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
@@ -77,236 +43,157 @@ parameters:
- clr - clr
- hipBLAS-common - hipBLAS-common
- llvm-project - llvm-project
- rocm-cmake
- rocminfo - rocminfo
- rocm_smi_lib - rocm_smi_lib
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { pool: rocm-ci_ultra_build_pool, os: ubuntu2204, packageManager: apt, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx90a }
- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx1100 }
#- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { pool: rocm-ci_ultra_build_pool, os: almalinux8, packageManager: dnf, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx90a }
- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx1201 }
- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx1100 }
#- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocBLAS:
name: rocBLAS
sparseCheckoutDir: projects/rocblas
skipUnifiedBuild: 'false'
buildDependsOn:
- hipBLASLt_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipBLASLt
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} timeoutInMinutes: 300
timeoutInMinutes: 300 variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }} value: $(Build.BinariesDirectory)/rocm
variables: - name: TENSILE_ROCM_ASSEMBLER_PATH
- group: common value: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: /.azuredevops/variables-global.yml - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: HIP_ROCCLR_HOME value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Build.BinariesDirectory)/rocm - name: ROCM_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - name: DAY_STRING
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler pool: ${{ variables.ULTRA_BUILD_POOL }}
- name: ROCM_PATH workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
- name: DAY_STRING strategy:
value: $[format('{0:ddMMyyyy}', pipeline.startTime)] matrix:
pool: ${{ job.pool }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all pipModules: ${{ parameters.pipModules }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} displayName: ROCm symbolic link
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml # Build and install gtest, lapack, hipBLAS-common
parameters: # $(Pipeline.Workspace)/deps is a temporary folder for the build process
dependencyList: # $(Pipeline.Workspace)/s/deps is part of the hipBLASLt repo
- gtest - script: mkdir $(Pipeline.Workspace)/deps
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml displayName: Create temp folder for external dependencies
parameters: # hipBLASLt already has a CMake script for external deps, so we can just run that
checkoutRef: ${{ parameters.checkoutRef }} # https://github.com/ROCm/hipBLASLt/blob/develop/deps/CMakeLists.txt
dependencyList: ${{ parameters.rocmDependencies }} - script: cmake $(Pipeline.Workspace)/s/deps
os: ${{ job.os }} displayName: Configure hipBLASLt external dependencies
gpuTarget: ${{ job.target }} workingDirectory: $(Pipeline.Workspace)/deps
aggregatePipeline: ${{ parameters.aggregatePipeline }} - script: make
${{ if parameters.triggerDownstreamJobs }}: displayName: Build hipBLASLt external dependencies
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} workingDirectory: $(Pipeline.Workspace)/deps
- task: Bash@3 - script: sudo make install
displayName: Add ROCm binaries to PATH displayName: Install hipBLASLt external dependencies
inputs: workingDirectory: $(Pipeline.Workspace)/deps
targetType: inline - script: |
script: | mkdir -p $(CCACHE_DIR)
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" echo "##vso[task.prependpath]/usr/lib/ccache"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" displayName: Update path for ccache
- task: Bash@3 - task: Cache@2
displayName: Build and install LAPACK displayName: Ccache caching
inputs: inputs:
targetType: inline key: hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
script: | path: $(CCACHE_DIR)
mkdir -p $(Agent.BuildDirectory)/temp-deps restoreKeys: |
cd $(Agent.BuildDirectory)/temp-deps hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
# position-independent LAPACK is required for almalinux8 builds hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET)
cmake -DBUILD_GTEST=OFF -DBUILD_LAPACK=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON $(Agent.BuildDirectory)/sparse/projects/hipblaslt/deps hipBLASLt | $(Agent.OS)
make -j - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sudo make install parameters:
- script: | extraBuildFlags: >-
mkdir -p $(CCACHE_DIR) -DCMAKE_BUILD_TYPE=Release
echo "##vso[task.prependpath]/usr/lib/ccache" -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
displayName: Update path for ccache -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- task: Cache@2 -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
displayName: Ccache caching -DCMAKE_C_COMPILER_LAUNCHER=ccache
inputs: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
key: hipBLASLt | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DTensile_LOGIC=
path: $(CCACHE_DIR) -DTensile_CPU_THREADS=
restoreKeys: | -DTensile_LIBRARY_FORMAT=msgpack
hipBLASLt | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
hipBLASLt | ${{ job.os }} | ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
hipBLASLt | ${{ job.os }} -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt/build parameters:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/llvm/include - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ parameters:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache pipModules: ${{ parameters.pipModules }}
-DCMAKE_C_COMPILER_LAUNCHER=ccache gpuTarget: $(JOB_GPU_TARGET)
-DAMDGPU_TARGETS=${{ job.target }} extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
-DGPU_TARGETS=${{ job.target }} installLatestCMake: true
-DBUILD_CLIENTS_TESTS=ON extraEnvVars:
-DHIPBLASLT_ENABLE_ROCROLLER=ON - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DHIPBLASLT_ENABLE_FETCH=ON - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/amdclang
-DHIPBLASLT_ENABLE_BLIS=OFF - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
-GNinja - ROCM_PATH:::/home/user/workspace/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraCopyDirectories:
parameters: - deps
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
installLatestCMake: true
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/amdclang
- TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
- ROCM_PATH:::/home/user/workspace/rocm
extraCopyDirectories:
- deps
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipBLASLt_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipBLASLt
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
timeoutInMinutes: 300 variables:
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} - group: common
condition: - template: /.azuredevops/variables-global.yml
and(succeeded(), pool: $(JOB_TEST_POOL)
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), workspace:
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), clean: all
eq(${{ parameters.aggregatePipeline }}, False) strategy:
) matrix:
variables: gfx942:
- group: common JOB_GPU_TARGET: gfx942
- template: /.azuredevops/variables-global.yml JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
- name: ROCM_PATH steps:
value: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pool: ${{ job.target }}_test_pool parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all pipModules: ${{ parameters.pipModules }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- checkout: none - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
preTargetFilter: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
parameters: componentName: hipBLASLt
os: ${{ job.os }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml testExecutable: './hipblaslt-test'
parameters: testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} pipModules: ${{ parameters.pipModules }}
${{ if parameters.triggerDownstreamJobs }}: environment: test
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipblaslt-test'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,40 +1,17 @@
parameters: parameters:
- name: componentName
type: string
default: hipCUB
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- ninja-build - ninja-build
- libgtest-dev
- git
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
@@ -51,143 +28,90 @@ parameters:
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipCUB
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.os }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
dependencyList: -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- gtest -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DBUILD_TEST=ON
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} -GNinja
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
gpuTarget: ${{ job.target }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
consolidateBuildAndInstall: true aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor"
-DBUILD_BENCHMARK=ON
-DBUILD_TEST=ON
-DAMDGPU_TARGETS=${{ job.target }}
-GNinja
extraCxxFlags: -Wno-deprecated-declarations
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipCUB_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipCUB
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: hipCUB
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hipFFT
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -64,124 +40,97 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocRAND - rocRAND
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipFFT
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_ubuntu2204_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Build.BinariesDirectory)/rocm matrix:
pool: gfx942:
vmImage: ${{ variables.BASE_BUILD_POOL }} JOB_GPU_TARGET: gfx942
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} extraBuildFlags: >-
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_BUILD_TYPE=Release
extraBuildFlags: >- -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DUSE_HIP_CLANG=ON
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DHIP_COMPILER=clang
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DBUILD_CLIENTS_BENCHMARKS=OFF
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_SAMPLES=OFF
-DAMDGPU_TARGETS=${{ job.target }} -GNinja
-DUSE_HIP_CLANG=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DHIP_COMPILER=clang parameters:
-DBUILD_CLIENTS_TESTS=ON gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_CLIENTS_BENCHMARKS=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DBUILD_CLIENTS_SAMPLES=OFF parameters:
-GNinja gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipFFT_testing
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} dependsOn: hipFFT
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- checkout: none parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: hipFFT
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testExecutable: './hipfft-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: '--test_prob 0.002 --gtest_output=xml:./test_output.xml --gtest_color=yes'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin' aptPackages: ${{ parameters.aptPackages }}
testExecutable: './hipfft-test' environment: test
testParameters: '--test_prob 0.002 --gtest_output=xml:./test_output.xml --gtest_color=yes' gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,50 +1,26 @@
parameters: parameters:
- name: componentName
type: string
default: hipRAND
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- ninja-build - ninja-build
- googletest
- git
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project - llvm-project
- rocm-cmake - ROCR-Runtime
- clr
- rocminfo - rocminfo
- rocRAND - rocRAND
- ROCR-Runtime
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -52,168 +28,96 @@ parameters:
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- rocRAND
- ROCR-Runtime - ROCR-Runtime
- rocRAND
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocFFT:
name: rocFFT
sparseCheckoutDir: projects/rocfft
skipUnifiedBuild: 'false'
buildDependsOn:
- hipRAND_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipRAND
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Build.BinariesDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
dependencyList: -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- gtest -DBUILD_TEST=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_BUILD_TYPE=Release
dependencyList: ${{ parameters.rocmDependencies }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: gpuTarget: $(JOB_GPU_TARGET)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
consolidateBuildAndInstall: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
extraBuildFlags: >- parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_TEST=ON extraEnvVars:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor"
-DCMAKE_BUILD_TYPE=Release
-DAMDGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipRAND_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipRAND
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: hipRAND
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hipSOLVER
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -69,130 +45,102 @@ parameters:
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipSOLVER
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_ubuntu2204_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} # build external gtest and lapack
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: external
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} cmakeBuildDir: 'deps/build'
# build external gtest and lapack installDir: '$(Pipeline.Workspace)/deps-install'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml extraBuildFlags: >-
parameters: -DBUILD_BOOST=OFF
componentName: external -DBUILD_GTEST=OFF
cmakeBuildDir: '$(Agent.BuildDirectory)/s/deps/build' -GNinja
cmakeSourceDir: '$(Agent.BuildDirectory)/s/deps' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
installDir: '$(Pipeline.Workspace)/deps-install' parameters:
extraBuildFlags: >- extraBuildFlags: >-
-DBUILD_BOOST=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
-DBUILD_GTEST=OFF -DCMAKE_BUILD_TYPE=Release
-GNinja -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
parameters: -DBUILD_CLIENTS_TESTS=ON
extraBuildFlags: >- -DUSE_CUDA=OFF
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install -GNinja
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ parameters:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_CLIENTS_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DUSE_CUDA=OFF parameters:
-GNinja gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
gpuTarget: ${{ job.target }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: extraCopyDirectories:
componentName: ${{ parameters.componentName }} - deps-install
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
# extraCopyDirectories:
# - deps-install
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipSOLVER_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipSOLVER
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
preTargetFilter: ${{ parameters.componentName }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} componentName: hipSOLVER
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testExecutable: './hipsolver-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} aptPackages: ${{ parameters.aptPackages }}
testDir: '$(Agent.BuildDirectory)/rocm/bin' environment: test
testExecutable: './hipsolver-test' gpuTarget: $(JOB_GPU_TARGET)
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,43 +1,21 @@
parameters: parameters:
- name: componentName
type: string
default: hipSPARSE
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- gfortran
- git
- libboost-program-options-dev
- libfftw3-dev
- ninja-build - ninja-build
- libboost-program-options-dev
- googletest
- libfftw3-dev
- git
- gfortran
- libgtest-dev
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
@@ -62,163 +40,101 @@ parameters:
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
#- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- hipSPARSELt:
name: hipSPARSELt
sparseCheckoutDir: projects/hipsparselt
skipUnifiedBuild: 'false'
buildDependsOn:
- hipSPARSE_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipSPARSE
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: gfx942:
vmImage: ${{ variables.BASE_BUILD_POOL }} JOB_GPU_TARGET: gfx942
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRef: ${{ parameters.checkoutRef }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
dependencyList: parameters:
- gtest extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
parameters: -DCMAKE_BUILD_TYPE=Release
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
dependencyList: ${{ parameters.rocmDependencies }} -DBUILD_CLIENTS_TESTS=ON
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_SAMPLES=OFF
os: ${{ job.os }} -GNinja
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} artifactName: hipSPARSE
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
os: ${{ job.os }} parameters:
extraBuildFlags: >- artifactName: hipSPARSE
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ publish: false
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DBUILD_CLIENTS_TESTS=ON sourceDir: $(Build.SourcesDirectory)/build/clients
-DBUILD_CLIENTS_SAMPLES=OFF contentsString: matrices/**
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: artifactName: testMatrices
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
componentName: ${{ parameters.componentName }} environment: test
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }}
publish: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters:
sourceDir: $(Agent.BuildDirectory)/s/build/clients
contentsString: matrices/**
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
artifactName: testMatrices
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# environment: test
# gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipSPARSE_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipSPARSE
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: hipSPARSE
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
gpuTarget: ${{ job.target }} testExecutable: './hipsparse-test'
os: ${{ job.os }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipsparse-test'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hipSPARSELt
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -40,12 +16,10 @@ parameters:
- gfortran - gfortran
- libgfortran5 - libgfortran5
- libopenblas-dev - libopenblas-dev
- liblapack-dev
- name: pipModules - name: pipModules
type: object type: object
default: default:
- joblib - joblib
- msgpack
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -54,8 +28,6 @@ parameters:
- hipSPARSE - hipSPARSE
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm-cmake
- rocm_smi_lib
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
@@ -68,197 +40,138 @@ parameters:
- llvm-project - llvm-project
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
- rocm-cmake
- rocBLAS - rocBLAS
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipSPARSELt
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: - name: TENSILE_ROCM_ASSEMBLER_PATH
- group: common value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang
- template: /.azuredevops/variables-global.yml - name: CMAKE_CXX_COMPILER
- name: HIP_ROCCLR_HOME value: $(Agent.BuildDirectory)/rocm/llvm/bin/hipcc
value: $(Build.BinariesDirectory)/rocm - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang - name: PATH
- name: CMAKE_CXX_COMPILER value: $(Agent.BuildDirectory)/rocm/llvm/bin:$(Agent.BuildDirectory)/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
value: $(Agent.BuildDirectory)/rocm/llvm/bin/hipcc pool: ${{ variables.MEDIUM_BUILD_POOL }}
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH workspace:
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler clean: all
- name: PATH strategy:
value: $(Agent.BuildDirectory)/rocm/llvm/bin:$(Agent.BuildDirectory)/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
# ignore sparse checkout for monorepo case, we want access to hipblaslt directory checkoutRef: ${{ parameters.checkoutRef }}
# sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # Build and install gtest and lapack
checkoutRef: ${{ parameters.checkoutRef }} # $(Pipeline.Workspace)/deps is a temporary folder for the build process
dependencyList: ${{ parameters.rocmDependencies }} # $(Pipeline.Workspace)/s/deps is part of the hipSPARSELt repo
gpuTarget: ${{ job.target }} - script: mkdir $(Pipeline.Workspace)/deps
os: ${{ job.os }} displayName: Create temp folder for external dependencies
aggregatePipeline: ${{ parameters.aggregatePipeline }} # hipSPARSELt already has a CMake script for external deps, so we can just run that
${{ if parameters.triggerDownstreamJobs }}: # https://github.com/ROCm/hipSPARSELt/blob/develop/deps/CMakeLists.txt
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - script: cmake $(Pipeline.Workspace)/s/deps
# NOTE: content between `---` is for transition support between old/new build systems displayName: Configure hipSPARSELt external dependencies
# and should be removed once transition is complete. workingDirectory: $(Pipeline.Workspace)/deps
# ----------------------------- - script: make
# Build and install gtest and lapack displayName: Build hipSPARSELt external dependencies
# $(Pipeline.Workspace)/deps is a temporary folder for the build process workingDirectory: $(Pipeline.Workspace)/deps
# $(Pipeline.Workspace)/s/deps is part of the hipSPARSELt repo - script: sudo make install
- script: mkdir -p $(Pipeline.Workspace)/deps displayName: Install hipSPARSELt external dependencies
displayName: Create temp folder for external dependencies workingDirectory: $(Pipeline.Workspace)/deps
# hipSPARSELt already has a CMake script for external deps, so we can just run that - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
# https://github.com/ROCm/hipSPARSELt/blob/develop/deps/CMakeLists.txt parameters:
- ${{ if ne(parameters.sparseCheckoutDir, '') }}: extraBuildFlags: >-
script: cmake $(Pipeline.Workspace)/s/projects/hipsparselt/deps -DCMAKE_BUILD_TYPE=Release
${{ else }}: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
script: cmake $(Pipeline.Workspace)/s/deps -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
displayName: Configure hipSPARSELt external dependencies -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
workingDirectory: $(Pipeline.Workspace)/deps -DTensile_LOGIC=
- script: make -DTensile_CPU_THREADS=
displayName: Build hipSPARSELt external dependencies -DTensile_LIBRARY_FORMAT=msgpack
workingDirectory: $(Pipeline.Workspace)/deps -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
- script: sudo make install -DROCM_PATH=$(Agent.BuildDirectory)/rocm
displayName: Install hipSPARSELt external dependencies -DBUILD_CLIENTS_TESTS=ON
workingDirectory: $(Pipeline.Workspace)/deps -GNinja
# ----------------------------- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# NOTE: the following options are old build only parameters:
# and can be removed after full transition to new build gpuTarget: $(JOB_GPU_TARGET)
# -DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# -DCMAKE_Fortran_COMPILER=f95 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# -DTensile_LOGIC= parameters:
# -DTensile_CPU_THREADS= aptPackages: ${{ parameters.aptPackages }}
# -DTensile_LIBRARY_FORMAT=msgpack pipModules: ${{ parameters.pipModules }}
# -DROCM_PATH=$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
# -DBUILD_CLIENTS_TESTS=ON extraCopyDirectories:
# -DBUILD_USE_LOCAL_TENSILE=OFF - deps
extraBuildFlags: >- extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
-DCMAKE_BUILD_TYPE=Release extraEnvVars:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" - CMAKE_CXX_COMPILER:::/home/user/workspace/rocm/llvm/bin/hipcc
-DGPU_TARGETS=${{ job.target }} - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
-DAMDGPU_TARGETS=${{ job.target }} installLatestCMake: true
-DCMAKE_Fortran_COMPILER=f95
-DTensile_LOGIC=
-DTensile_CPU_THREADS=
-DTensile_LIBRARY_FORMAT=msgpack
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DBUILD_CLIENTS_TESTS=ON
-DBUILD_USE_LOCAL_TENSILE=OFF
-DHIPSPARSELT_ENABLE_FETCH=ON
-GNinja
${{ if ne(parameters.sparseCheckoutDir, '') }}:
cmakeSourceDir: $(Build.SourcesDirectory)/projects/hipsparselt
cmakeBuildDir: $(Build.SourcesDirectory)/projects/hipsparselt
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- deps
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
- CMAKE_CXX_COMPILER:::/home/user/workspace/rocm/llvm/bin/hipcc
- TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
installLatestCMake: true
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipSPARSELt_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: hipSPARSELt
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
timeoutInMinutes: 120 variables:
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} - group: common
condition: - template: /.azuredevops/variables-global.yml
and(succeeded(), pool: $(JOB_TEST_POOL)
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), workspace:
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), clean: all
eq(${{ parameters.aggregatePipeline }}, False) strategy:
) matrix:
variables: gfx942:
- group: common JOB_GPU_TARGET: gfx942
- template: /.azuredevops/variables-global.yml JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- checkout: none - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
preTargetFilter: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: componentName: hipSPARSELt
checkoutRef: ${{ parameters.checkoutRef }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
dependencyList: ${{ parameters.rocmTestDependencies }} testExecutable: './hipsparselt-test'
gpuTarget: ${{ job.target }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipsparselt-test'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: hipTensor
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -54,113 +30,90 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipTensor
- job: ${{ parameters.componentName }}_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
${{ if parameters.triggerDownstreamJobs }}: gpuTarget: $(JOB_GPU_TARGET)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: extraBuildFlags: >-
extraBuildFlags: >- -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_BUILD_TYPE=Release
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DHIPTENSOR_BUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DHIPTENSOR_BUILD_TESTS=ON multithreadFlag: -- -j32
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
componentName: ${{ parameters.componentName }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: hipTensor_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 90
- job: ${{ parameters.componentName }}_test_${{ job.target }} dependsOn: hipTensor
timeoutInMinutes: 90 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} componentName: hipTensor
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: '-E ".*-extended" -VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor' aptPackages: ${{ parameters.aptPackages }}
testParameters: '-E ".*-extended" --extra-verbose --output-on-failure --force-new-ctest-process --output-junit test_output.xml' environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -44,123 +39,110 @@ parameters:
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipfort
- job: hipfort_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DCMAKE_BUILD_TYPE=Release extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory) -DCMAKE_BUILD_TYPE=Release
-DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
-DCMAKE_Fortran_FLAGS="-Mfree -fPIC" -DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory)
-DCMAKE_Fortran_FLAGS_DEBUG="" -DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang
-DHIPFORT_COMPILER_FLAGS="-cpp" -DCMAKE_Fortran_FLAGS="-Mfree -fPIC"
-DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar -DCMAKE_Fortran_FLAGS_DEBUG=""
-DHIPFORT_RANLIB=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ranlib -DHIPFORT_COMPILER_FLAGS="-cpp"
-DAMDGPU_TARGETS=${{ job.target }} -DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar
-DBUILD_TESTING=ON -DHIPFORT_RANLIB=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ranlib
-GNinja -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DBUILD_TESTING=ON
parameters: -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
gpuTarget: ${{ job.target }} parameters:
installLatestCMake: true aptPackages: ${{ parameters.aptPackages }}
gpuTarget: $(JOB_GPU_TARGET)
installLatestCMake: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipfort_testing
- job: hipfort_test_${{ job.target }} dependsOn: hipfort
dependsOn: hipfort_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - task: Bash@3
- task: Bash@3 displayName: 'ROCm symbolic link'
displayName: 'ROCm symbolic link' inputs:
inputs: targetType: inline
targetType: inline script: |
script: | sudo rm -rf /opt/rocm
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm workingDirectory: $(Build.SourcesDirectory)
workingDirectory: $(Build.SourcesDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3
- task: Bash@3 displayName: 'Test hipfort'
displayName: 'Test hipfort' inputs:
inputs: targetType: inline
targetType: inline script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all
script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all workingDirectory: $(Build.SourcesDirectory)/test
workingDirectory: $(Build.SourcesDirectory)/test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} optSymLink: true
optSymLink: true

View File

@@ -5,196 +5,145 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- python3-pip
- libnuma-dev - libnuma-dev
- ninja-build - ninja-build
- pkg-config
- python-is-python3 - python-is-python3
- python3-pip
- zlib1g-dev - zlib1g-dev
- pkg-config
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- rocm-cmake - rocm-cmake
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
# - { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: llvm_project
- job: llvm_project_${{ job.os }} variables:
pool: - group: common
${{ if eq(job.os, 'ubuntu2404') }}: - template: /.azuredevops/variables-global.yml
name: 'rocm-ci_high_build_pool_2404' #temporarily using 'high' pool while 'ultra' is down - name: HIP_DEVICE_LIB_PATH
${{ else }}: value: '$(Build.BinariesDirectory)/amdgcn/bitcode'
name: 'rocm-ci_ultra_build_pool' - name: HIP_PATH
${{ if eq(job.os, 'almalinux8') }}: value: '$(Agent.BuildDirectory)/rocm'
container: pool: ${{ variables.MEDIUM_BUILD_POOL }}
image: rocmexternalcicd.azurecr.io/manylinux228:latest workspace:
endpoint: ContainerService3 clean: all
variables: steps:
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: /.azuredevops/variables-global.yml parameters:
- name: HIP_DEVICE_LIB_PATH aptPackages: ${{ parameters.aptPackages }}
value: '$(Build.BinariesDirectory)/amdgcn/bitcode' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- name: HIP_PATH - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
value: '$(Agent.BuildDirectory)/rocm' parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
aptPackages: ${{ parameters.aptPackages }} skipLlvmSymlink: true
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml componentName: rocm-llvm
parameters: extraBuildFlags: >-
checkoutRepo: ${{ parameters.checkoutRepo }} -DCMAKE_PREFIX_PATH="$(Build.BinariesDirectory)/llvm;$(Build.BinariesDirectory)"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;mlir
checkoutRef: ${{ parameters.checkoutRef }} -DLLVM_ENABLE_RUNTIMES=compiler-rt;libunwind;libcxx;libcxxabi
dependencyList: ${{ parameters.rocmDependencies }} -DCLANG_ENABLE_AMDCLANG=ON
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DLLVM_TARGETS_TO_BUILD=AMDGPU;X86
os: ${{ job.os }} -DLIBCXX_ENABLE_SHARED=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DLIBCXX_ENABLE_STATIC=ON
parameters: -DLIBCXX_INSTALL_LIBRARY=OFF
componentName: rocm-llvm -DLIBCXX_INSTALL_HEADERS=OFF
os: ${{ job.os }} -DLIBCXXABI_ENABLE_SHARED=OFF
useAmdclang: false -DLIBCXXABI_ENABLE_STATIC=ON
extraBuildFlags: >- -DLIBCXXABI_INSTALL_STATIC_LIBRARY=OFF
-DCMAKE_PREFIX_PATH="$(Build.BinariesDirectory)/llvm;$(Build.BinariesDirectory)" -DLLVM_BUILD_DOCS=OFF
-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_SPHINX=OFF
-DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;mlir;flang -DLLVM_ENABLE_ASSERTIONS=OFF
-DLLVM_ENABLE_RUNTIMES=compiler-rt;libunwind;libcxx;libcxxabi -DLLVM_ENABLE_Z3_SOLVER=OFF
-DCLANG_ENABLE_AMDCLANG=ON -DLLVM_ENABLE_ZLIB=ON
-DLLVM_TARGETS_TO_BUILD=AMDGPU;X86 -DCLANG_DEFAULT_LINKER=lld
-DLIBCXX_ENABLE_SHARED=OFF -DCLANG_DEFAULT_RTLIB=compiler-rt
-DLIBCXX_ENABLE_STATIC=ON -DCLANG_DEFAULT_UNWINDLIB=libgcc
-DLIBCXX_INSTALL_LIBRARY=OFF -DSANITIZER_AMDGPU=OFF
-DLIBCXX_INSTALL_HEADERS=OFF -DPACKAGE_VENDOR=AMD
-DLIBCXXABI_ENABLE_SHARED=OFF -DCLANG_LINK_FLANG_LEGACY=ON
-DLIBCXXABI_ENABLE_STATIC=ON -DCMAKE_CXX_STANDARD=17
-DLIBCXXABI_INSTALL_STATIC_LIBRARY=OFF -DROCM_LLVM_BACKWARD_COMPAT_LINK=$(Build.BinariesDirectory)/llvm
-DLLVM_BUILD_DOCS=OFF -DROCM_LLVM_BACKWARD_COMPAT_LINK_TARGET=./lib/llvm
-DLLVM_ENABLE_SPHINX=OFF -GNinja
-DLLVM_ENABLE_ASSERTIONS=OFF cmakeBuildDir: 'llvm/build'
-DLLVM_ENABLE_Z3_SOLVER=OFF installDir: '$(Build.BinariesDirectory)/llvm'
-DLLVM_ENABLE_ZLIB=ON # use llvm-lit to run unit tests for llvm, clang, and lld
-DCLANG_DEFAULT_LINKER=lld - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCLANG_DEFAULT_RTLIB=compiler-rt parameters:
-DCLANG_DEFAULT_UNWINDLIB=libgcc componentName: check-llvm
-DSANITIZER_AMDGPU=OFF testDir: 'llvm/build'
-DPACKAGE_VENDOR=AMD testExecutable: './bin/llvm-lit'
-DCLANG_LINK_FLANG_LEGACY=ON testParameters: '-q --xunit-xml-output=llvm_test_output.xml ./test'
-DCMAKE_CXX_STANDARD=17 testOutputFile: llvm_test_output.xml
-DROCM_LLVM_BACKWARD_COMPAT_LINK=$(Build.BinariesDirectory)/llvm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DROCM_LLVM_BACKWARD_COMPAT_LINK_TARGET=./lib/llvm parameters:
-GNinja componentName: check-clang
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm/build' testDir: 'llvm/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm' testExecutable: './bin/llvm-lit'
installDir: '$(Build.BinariesDirectory)/llvm' testParameters: '-q --xunit-xml-output=clang_test_output.xml ./tools/clang/test'
# use llvm-lit to run unit tests for llvm, clang, and lld testOutputFile: clang_test_output.xml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
displayName: 'Copy llvm-lit to install directory' parameters:
inputs: componentName: check-lld
targetType: inline testDir: 'llvm/build'
script: | testExecutable: './bin/llvm-lit'
cp $(Build.SourcesDirectory)/llvm/build/bin/llvm-lit $(Build.BinariesDirectory)/llvm/bin/ testParameters: '-q --xunit-xml-output=lld_test_output.xml ./tools/lld/test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testOutputFile: lld_test_output.xml
parameters: - task: CopyFiles@2
componentName: check-llvm displayName: Copy FileCheck for Publishing
testDir: 'llvm/build' inputs:
testExecutable: './bin/llvm-lit' CleanTargetFolder: false
testParameters: '-q --xunit-xml-output=llvm_test_output.xml --filter-out="live-debug-values-spill-tracking" ./test' SourceFolder: llvm/build/bin
testOutputFile: llvm_test_output.xml Contents: FileCheck
os: ${{ job.os }} TargetFolder: $(Build.BinariesDirectory)/llvm/bin
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml retryCount: 3
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
componentName: check-clang parameters:
testDir: 'llvm/build' componentName: device-libs
testExecutable: './bin/llvm-lit' extraBuildFlags: >-
testParameters: '-q --xunit-xml-output=clang_test_output.xml ./tools/clang/test' -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build"
testOutputFile: clang_test_output.xml -DCMAKE_BUILD_TYPE=Release
os: ${{ job.os }} cmakeBuildDir: 'amd/device-libs/build'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: check-lld componentName: comgr
testDir: 'llvm/build' extraBuildFlags: >-
testExecutable: './bin/llvm-lit' -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build;$(Build.SourcesDirectory)/amd/device-libs/build"
testParameters: '-q --xunit-xml-output=lld_test_output.xml ./tools/lld/test' -DCOMGR_DISABLE_SPIRV=1
testOutputFile: lld_test_output.xml -DCMAKE_BUILD_TYPE=Release
os: ${{ job.os }} cmakeBuildDir: 'amd/comgr/build'
- task: CopyFiles@2 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
displayName: Copy FileCheck for Publishing parameters:
inputs: componentName: comgr
CleanTargetFolder: false testParameters: '--output-on-failure --force-new-ctest-process --output-junit comgr_test_output.xml'
SourceFolder: llvm/build/bin testDir: 'amd/comgr/build'
Contents: FileCheck testOutputFile: comgr_test_output.xml
TargetFolder: $(Build.BinariesDirectory)/llvm/bin - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
retryCount: 3 parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml componentName: hipcc
parameters: extraBuildFlags: >-
componentName: device-libs -DCMAKE_BUILD_TYPE=Release
os: ${{ job.os }} -DHIPCC_BACKWARD_COMPATIBILITY=OFF
useAmdclang: false cmakeBuildDir: 'amd/hipcc/build'
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/device-libs/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/device-libs' parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml aptPackages: ${{ parameters.aptPackages }}
parameters: environment: combined
componentName: comgr extraEnvVars:
os: ${{ job.os }} - HIP_DEVICE_LIB_PATH:::/home/user/workspace/bin/amdgcn/bitcode
useAmdclang: false - HIP_PATH:::/home/user/workspace/rocm
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build;$(Build.SourcesDirectory)/amd/device-libs/build"
-DCOMGR_DISABLE_SPIRV=1
-DCMAKE_BUILD_TYPE=Release
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/comgr/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/comgr'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: comgr
testParameters: '--output-on-failure --force-new-ctest-process --output-junit comgr_test_output.xml'
testDir: 'amd/comgr/build'
testOutputFile: comgr_test_output.xml
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: hipcc
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DHIPCC_BACKWARD_COMPATIBILITY=OFF
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/hipcc/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/hipcc'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: combined
extraEnvVars:
- HIP_DEVICE_LIB_PATH:::/home/user/workspace/bin/amdgcn/bitcode
- HIP_PATH:::/home/user/workspace/rocm

View File

@@ -0,0 +1,140 @@
# largely referenced from: https://github.com/ROCm/omnitrace/blob/main/.github/workflows/ubuntu-jammy.yml
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: aptPackages
type: object
default:
- autoconf
- autotools-dev
- bison
- build-essential
- bzip2
- clang
- cmake
- environment-modules
- g++-12
- libdrm-dev
- libfabric-dev
- libiberty-dev
- libpapi-dev
- libpfm4-dev
- libtool
- libopenmpi-dev
- m4
- openmpi-bin
- software-properties-common
- python3-pip
- texinfo
- zlib1g-dev
- name: pipModules
type: object
default:
- numpy
- perfetto
- dataclasses
- name: rocmDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rccl
- rocm-core
- rocm_smi_lib
- rocminfo
- ROCR-Runtime
- rocprofiler
- rocprofiler-register
- roctracer
jobs:
- job: omnitrace
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ variables.MEDIUM_BUILD_POOL }}
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: $(JOB_GPU_TARGET)
- task: Bash@3
displayName: ROCm symbolic link
inputs:
targetType: inline
script: |
sudo rm -rf /opt/rocm
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3
displayName: Add ROCm binaries to PATH
inputs:
targetType: inline
script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- task: Bash@3
displayName: Add ROCm compilers to PATH
inputs:
targetType: inline
script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DOMNITRACE_BUILD_TESTING=ON
-DOMNITRACE_BUILD_DYNINST=ON
-DOMNITRACE_BUILD_LIBUNWIND=ON
-DDYNINST_BUILD_TBB=ON
-DDYNINST_BUILD_ELFUTILS=ON
-DDYNINST_BUILD_LIBIBERTY=ON
-DDYNINST_BUILD_BOOST=ON
-DOMNITRACE_USE_PAPI=ON
-DOMNITRACE_USE_MPI=ON
-DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
multithreadFlag: -- -j32
- task: Bash@3
displayName: Set up omnitrace env
inputs:
targetType: inline
script: source share/omnitrace/setup-env.sh
workingDirectory: build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: omnitrace
- task: Bash@3
displayName: Remove ROCm binaries from PATH
condition: always()
inputs:
targetType: inline
script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- task: Bash@3
displayName: Remove ROCm compilers from PATH
condition: always()
inputs:
targetType: inline
script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,308 +0,0 @@
parameters:
- name: componentName
type: string
default: origami
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- wget
- python3
- python3-dev
- python3-pip
- python3-venv
- libgtest-dev
- libboost-filesystem-dev
- libboost-program-options-dev
- name: pipModules
type: object
default:
- nanobind>=2.0.0
- pytest
- pytest-cov
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- rocprofiler-register
- name: rocmTestDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
# - { os: ubuntu2204, packageManager: apt, target: gfx1100 }
# - { os: ubuntu2204, packageManager: apt, target: gfx1151 }
# - { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- name: downstreamComponentMatrix
type: object
default:
- hipBLASLt:
name: hipBLASLt
sparseCheckoutDir: projects/hipblaslt
skipUnifiedBuild: 'false'
buildDependsOn:
- origami_build
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: origami_build_${{ job.os }}
${{ if parameters.buildDependsOn }}:
dependsOn:
- ${{ each build in parameters.buildDependsOn }}:
- ${{ build }}_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- gtest
- ${{ if ne(job.os, 'almalinux8') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- catch2
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DORIGAMI_BUILD_SHARED_LIBS=ON
-DORIGAMI_ENABLE_PYTHON=ON
-DORIGAMI_BUILD_TESTING=ON
-DORIGAMI_ENABLE_FETCH=ON
-GNinja
- ${{ if ne(job.os, 'almalinux8') }}:
- task: PublishPipelineArtifact@1
displayName: 'Publish Build Directory Artifact'
inputs:
targetPath: '$(Agent.BuildDirectory)/s/build'
artifact: '${{ parameters.componentName }}_${{ job.os }}_build_dir'
publishLocation: 'pipeline'
- task: PublishPipelineArtifact@1
displayName: 'Publish Python Source Artifact'
inputs:
targetPath: '$(Agent.BuildDirectory)/s/python'
artifact: '${{ parameters.componentName }}_${{ job.os }}_python_src'
publishLocation: 'pipeline'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(parameters.unifiedBuild, False) }}:
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: origami_test_${{ job.os }}_${{ job.target }}
timeoutInMinutes: 120
dependsOn: origami_build_${{ job.os }}
condition:
and(succeeded(),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')),
eq(${{ parameters.aggregatePipeline }}, False)
)
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ job.target }}_test_pool
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- gtest
- ${{ if ne(job.os, 'almalinux8') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- catch2
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
preTargetFilter: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- task: CMake@1
displayName: 'Origami Test CMake Configuration'
inputs:
cmakeArgs: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DORIGAMI_BUILD_SHARED_LIBS=ON
-DORIGAMI_ENABLE_PYTHON=ON
-DORIGAMI_BUILD_TESTING=ON
-GNinja
$(Agent.BuildDirectory)/s
- task: Bash@3
displayName: 'Build Origami Tests and Python Bindings'
inputs:
targetType: inline
workingDirectory: build
script: |
cmake --build . --target origami-tests origami_python -- -j$(nproc)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
# Run tests using CTest (discovers and runs both C++ and Python tests)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: 'build'
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml'
# Test pip install workflow
# - task: Bash@3
# displayName: 'Test Pip Install'
# inputs:
# targetType: inline
# script: |
# set -e
# echo "==================================================================="
# echo "Testing pip install workflow (pip install -e .)"
# echo "==================================================================="
# # Set environment variables for pip install CMake build
# export ROCM_PATH=$(Agent.BuildDirectory)/rocm
# export CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm:$(Agent.BuildDirectory)/vendor
# export CMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
# echo "ROCM_PATH: $ROCM_PATH"
# echo "CMAKE_PREFIX_PATH: $CMAKE_PREFIX_PATH"
# echo "CMAKE_CXX_COMPILER: $CMAKE_CXX_COMPILER"
# echo ""
# # Install from source directory
# cd "$(Agent.BuildDirectory)/s/python"
# pip install -e .
# # Verify import works
# echo ""
# echo "Verifying origami can be imported..."
# python3 -c "import origami; print('✓ Successfully imported origami')"
# # Run pytest on installed package
# echo ""
# echo "Running pytest tests..."
# python3 -m pytest tests/ -v -m "not slow" --tb=short
# echo ""
# echo "==================================================================="
# echo "Pip install test completed successfully"
# echo "==================================================================="
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,45 +1,16 @@
parameters: parameters:
- name: componentName
type: string
default: rccl
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
- name: systemsRepo
type: string
default: systems_repo
- name: systemsSparseCheckoutDir
type: string
default: 'projects/rocprofiler-sdk'
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git - git
- googletest
- libboost-program-options-dev - libboost-program-options-dev
- libdrm-dev - libdrm-dev
- libfftw3-dev - libfftw3-dev
@@ -78,165 +49,101 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocprofiler-sdk:
name: rocprofiler-sdk
sparseCheckoutDir: ''
skipUnifiedBuild: 'false'
buildDependsOn:
- rccl_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rccl
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
timeoutInMinutes: 120 pool: ${{ variables.MEDIUM_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: HIP_ROCCLR_HOME matrix:
value: $(Build.BinariesDirectory)/rocm gfx942:
pool: ${{ variables.MEDIUM_BUILD_POOL }} JOB_GPU_TARGET: gfx942
${{ if eq(job.os, 'almalinux8') }}: steps:
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 aptPackages: ${{ parameters.aptPackages }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} submoduleBehaviour: recursive
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - script: chmod +x $(Agent.BuildDirectory)/rocm/bin/hipify-perl
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
submoduleBehaviour: recursive parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
dependencyList: -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
- gtest -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -DBUILD_TESTS=ON
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
os: ${{ job.os }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc parameters:
-DCMAKE_BUILD_TYPE=Release aptPackages: ${{ parameters.aptPackages }}
-DROCM_PATH=$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_TESTS=ON extraEnvVars:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake;$(Agent.BuildDirectory)/rocm/libexec/hipify - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DGPU_TARGETS=${{ job.target }} installLatestCMake: true
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
installLatestCMake: true
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rccl_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 120
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: rccl
timeoutInMinutes: 120 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
os: ${{ job.os }} componentName: rccl
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
${{ if parameters.triggerDownstreamJobs }}: testExecutable: './rccl-UnitTests'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
componentName: ${{ parameters.componentName }} environment: test
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rccl-UnitTests'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.systemsRepo }}
sparseCheckoutDir: ${{ parameters.systemsSparseCheckoutDir }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}
${{ if parameters.unifiedBuild }}:
buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
${{ else }}:
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: rdc
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -52,7 +28,6 @@ parameters:
- clr - clr
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
- hipRAND
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm-cmake - rocm-cmake
@@ -63,7 +38,6 @@ parameters:
- rocprofiler - rocprofiler
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk - rocprofiler-sdk
- rocRAND
- ROCR-Runtime - ROCR-Runtime
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
@@ -79,157 +53,123 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rdc
- job: ${{ parameters.componentName }}_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
cmakeVersion: '3.25.0' checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRepo: ${{ parameters.checkoutRepo }} dependencyList: ${{ parameters.rocmDependencies }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml # Build grpc
parameters: - task: Bash@3
checkoutRef: ${{ parameters.checkoutRef }} displayName: 'git clone grpc'
dependencyList: ${{ parameters.rocmDependencies }} inputs:
gpuTarget: ${{ job.target }} targetType: inline
aggregatePipeline: ${{ parameters.aggregatePipeline }} script: git clone -b v1.61.0 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules
${{ if parameters.triggerDownstreamJobs }}: workingDirectory: $(Build.SourcesDirectory)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
# Build grpc parameters:
- task: Bash@3 cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build
displayName: 'git clone grpc' installDir: $(Build.SourcesDirectory)/bin
inputs: extraBuildFlags: >-
targetType: inline -DgRPC_INSTALL=ON
script: git clone -b v1.67.1 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules -DgRPC_BUILD_TESTS=OFF
workingDirectory: $(Build.SourcesDirectory) -DBUILD_SHARED_LIBS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_INSTALL_LIBDIR=lib
parameters: -DCMAKE_BUILD_TYPE=Release
componentName: ${{ parameters.componentName }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build -GNinja
cmakeSourceDir: $(Build.SourcesDirectory)/grpc - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
installDir: $(Build.SourcesDirectory)/bin parameters:
extraBuildFlags: >- extraBuildFlags: >-
-DgRPC_INSTALL=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DgRPC_BUILD_TESTS=OFF -DGRPC_ROOT="$(Build.SourcesDirectory)/bin"
-DBUILD_SHARED_LIBS=ON -DBUILD_RVS=ON
-DCMAKE_INSTALL_LIBDIR=lib -DBUILD_PROFILER=ON
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON
-DAMDGPU_TARGETS=${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
extraBuildFlags: >- parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
-DGRPC_ROOT="$(Build.SourcesDirectory)/bin" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DBUILD_RVS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DBUILD_PROFILER=ON parameters:
-DBUILD_TESTS=ON aptPackages: ${{ parameters.aptPackages }}
-DAMDGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rdc_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rdc
- job: ${{ parameters.componentName }}_test_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
- name: ROCM_PATH JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
value: $(Agent.BuildDirectory)/rocm steps:
- name: ROCM_DIR - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
value: $(Agent.BuildDirectory)/rocm parameters:
pool: ${{ job.target }}_test_pool aptPackages: ${{ parameters.aptPackages }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
steps: parameters:
- checkout: none gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml displayName: Setup test environment
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml inputs:
parameters: targetType: inline
checkoutRef: ${{ parameters.checkoutRef }} script: |
dependencyList: ${{ parameters.rocmTestDependencies }} sudo rm -rf /opt/rocm
gpuTarget: ${{ job.target }} sudo rm -rf /usr/sbin/rdcd
${{ if parameters.triggerDownstreamJobs }}: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rdcd /usr/sbin/rdcd
- task: Bash@3 echo $(Agent.BuildDirectory)/rocm/lib/rdc/grpc/lib | sudo tee /etc/ld.so.conf.d/grpc.conf
displayName: Setup test environment sudo ldconfig -v
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
targetType: inline - task: Bash@3
script: | displayName: Test rdc
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rdcd /usr/sbin/rdcd inputs:
echo $(Agent.BuildDirectory)/rocm/lib/rdc/grpc/lib | sudo tee /etc/ld.so.conf.d/grpc.conf targetType: inline
sudo ldconfig -v script: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml $(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst
- task: Bash@3 --batch_mode
displayName: Test rdc --start_rdcd
inputs: --unauth_comm
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
script: >- parameters:
$(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst aptPackages: ${{ parameters.aptPackages }}
--batch_mode environment: test
--start_rdcd gpuTarget: $(JOB_GPU_TARGET)
--unauth_comm extraPaths: /home/user/workspace/rocm/bin
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
extraPaths: /home/user/workspace/rocm/bin

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -66,202 +61,188 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rpp - rpp
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocAL
- job: rocAL_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.LOW_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- task: Bash@3 gfx942:
displayName: 'Register libjpeg-turbo packages' JOB_GPU_TARGET: gfx942
inputs: steps:
targetType: inline - task: Bash@3
script: | displayName: 'Register libjpeg-turbo packages'
sudo mkdir --parents --mode=0755 /etc/apt/keyrings inputs:
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null targetType: inline
echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list script: |
sudo apt update sudo mkdir --parents --mode=0755 /etc/apt/keyrings
apt-cache show libjpeg-turbo-official | grep Version wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list
parameters: sudo apt update
aptPackages: ${{ parameters.aptPackages }} apt-cache show libjpeg-turbo-official | grep Version
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
displayName: 'Clone PyBind11' parameters:
inputs: checkoutRepo: ${{ parameters.checkoutRepo }}
targetType: inline - task: Bash@3
script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11 displayName: 'Clone PyBind11'
workingDirectory: '$(Build.SourcesDirectory)' inputs:
- task: Bash@3 targetType: inline
displayName: 'Clone RapidJSON' script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11
inputs: workingDirectory: '$(Build.SourcesDirectory)'
targetType: inline - task: Bash@3
script: git clone --depth 1 https://github.com/Tencent/rapidjson.git displayName: 'Clone RapidJSON'
workingDirectory: '$(Build.SourcesDirectory)' inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml targetType: inline
parameters: script: git clone --depth 1 https://github.com/Tencent/rapidjson.git
componentName: PyBind11 workingDirectory: '$(Build.SourcesDirectory)'
cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmakeSourceDir: '$(Build.SourcesDirectory)/pybind11' parameters:
customInstallPath: false componentName: PyBind11
installEnabled: false cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build'
extraBuildFlags: >- customInstallPath: false
-DDOWNLOAD_CATCH=ON installEnabled: false
-DDOWNLOAD_EIGEN=ON extraBuildFlags: >-
-GNinja -DDOWNLOAD_CATCH=ON
- task: Bash@3 -DDOWNLOAD_EIGEN=ON
displayName: 'Install PyBind11' -GNinja
inputs: - task: Bash@3
targetType: inline displayName: 'Install PyBind11'
script: sudo cmake --build . --target install inputs:
workingDirectory: '$(Build.SourcesDirectory)/pybind11/build' targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml script: sudo cmake --build . --target install
parameters: workingDirectory: '$(Build.SourcesDirectory)/pybind11/build'
componentName: RapidJSON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build' parameters:
cmakeSourceDir: '$(Build.SourcesDirectory)/rapidjson' componentName: RapidJSON
customInstallPath: false cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build'
installEnabled: false customInstallPath: false
extraBuildFlags: >- installEnabled: false
-GNinja extraBuildFlags: >-
- task: Bash@3 -GNinja
displayName: 'Install RapidJSON' - task: Bash@3
inputs: displayName: 'Install RapidJSON'
targetType: inline inputs:
script: sudo cmake --build . --target install targetType: inline
workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build' script: sudo cmake --build . --target install
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo
-DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH -DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-DGPU_TARGETS=${{ job.target }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
# registerJPEGPackages: true registerJPEGPackages: true
# gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
# extraCopyDirectories: extraCopyDirectories:
# - /opt/libjpeg-turbo - /opt/libjpeg-turbo
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocAL_testing
- job: rocAL_test_${{ job.target }} dependsOn: rocAL
dependsOn: rocAL_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: ROCM_PATH
eq(${{ parameters.aggregatePipeline }}, False) value: $(Agent.BuildDirectory)/rocm
) - name: CMAKE_INCLUDE_PATH
variables: value: $(Agent.BuildDirectory)/rocm/include/rocal
- group: common pool:
- template: /.azuredevops/variables-global.yml name: $(JOB_TEST_POOL)
- name: ROCM_PATH demands: firstRenderDeviceAccess
value: $(Agent.BuildDirectory)/rocm workspace:
- name: CMAKE_INCLUDE_PATH clean: all
value: $(Agent.BuildDirectory)/rocm/include/rocal strategy:
pool: matrix:
name: ${{ job.target }}_test_pool gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
steps: steps:
- task: Bash@3 - task: Bash@3
displayName: 'Register libjpeg-turbo packages' displayName: 'Register libjpeg-turbo packages'
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
sudo mkdir --parents --mode=0755 /etc/apt/keyrings sudo mkdir --parents --mode=0755 /etc/apt/keyrings
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list
sudo apt update sudo apt update
apt-cache show libjpeg-turbo-official | grep Version apt-cache show libjpeg-turbo-official | grep Version
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }} dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- task: Bash@3 - task: Bash@3
displayName: Link libjpeg-turbo displayName: Link libjpeg-turbo
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf
sudo ldconfig -v sudo ldconfig -v
- task: Bash@3 - task: Bash@3
displayName: Build rocAL tests displayName: Build rocAL tests
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
mkdir rocAL-tests mkdir rocAL-tests
cd rocAL-tests cd rocAL-tests
cmake $(Agent.BuildDirectory)/rocm/share/rocal/test cmake $(Agent.BuildDirectory)/rocm/share/rocal/test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
componentName: rocAL componentName: rocAL
testDir: rocAL-tests testDir: rocAL-tests
- task: Bash@3 - task: Bash@3
displayName: Clean up libjpeg-turbo displayName: Clean up libjpeg-turbo
condition: always() condition: always()
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf
sudo ldconfig -v sudo ldconfig -v
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
registerJPEGPackages: true registerJPEGPackages: true
environment: test environment: test
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
extraCopyDirectories: extraCopyDirectories:
- /opt/libjpeg-turbo - /opt/libjpeg-turbo
# docker image will be missing the ldconfig to libjpeg-turbo # docker image will be missing the ldconfig to libjpeg-turbo

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -51,109 +46,96 @@ parameters:
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocALUTION
- job: rocALUTION_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME
- name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm
value: $(Build.BinariesDirectory)/rocm pool: ${{ variables.LOW_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ parameters:
-DCMAKE_BUILD_TYPE=Release extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/ -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DCMAKE_BUILD_TYPE=Release
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DBUILD_CLIENTS_BENCHMARKS=OFF -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DBUILD_CLIENTS_SAMPLES=OFF -DBUILD_CLIENTS_TESTS=ON
-GNinja -DBUILD_CLIENTS_BENCHMARKS=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DBUILD_CLIENTS_SAMPLES=OFF
parameters: -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
# parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# gpuTarget: ${{ job.target }} parameters:
# extraEnvVars: aptPackages: ${{ parameters.aptPackages }}
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm gpuTarget: $(JOB_GPU_TARGET)
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocALUTION_testing
- job: rocALUTION_test_${{ job.target }} dependsOn: rocALUTION
dependsOn: rocALUTION_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: rocALUTION
componentName: rocALUTION testDir: '$(Agent.BuildDirectory)/rocm/bin'
testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rocalution-test'
testExecutable: './rocalution-test' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,47 +1,25 @@
parameters: parameters:
- name: componentName
type: string
default: rocBLAS
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- gfortran
- libdrm-dev
- libmsgpack-dev
- libopenblas-dev
- ninja-build - ninja-build
- python3-pip
- python3-venv - python3-venv
- git
- libmsgpack-dev
- gfortran
- libopenblas-dev
- googletest
- libgtest-dev
- wget - wget
- python3-pip
- libdrm-dev
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -50,17 +28,18 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- aomp
- clr
- hipBLAS-common
- hipBLASLt
- llvm-project
- rocm-cmake - rocm-cmake
- rocm-core - llvm-project
- rocm_smi_lib - ROCR-Runtime
- clr
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - rocm_smi_lib
- rocm-core
- aomp
- aomp-extras
- hipBLAS-common
- hipBLASLt
- roctracer - roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
@@ -70,218 +49,124 @@ parameters:
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
- llvm-project - llvm-project
- rocm-cmake
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- rocm_smi_lib - rocm_smi_lib
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
#- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
#- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocSPARSE:
name: rocSPARSE
sparseCheckoutDir: projects/rocsparse
skipUnifiedBuild: 'false'
buildDependsOn:
- rocBLAS_build
# rocSOLVER depends on both rocBLAS and rocPRIM
# for a unified build, rocBLAS will be the one to call rocSOLVER
# - rocSOLVER:
# name: rocSOLVER
# sparseCheckoutDir: projects/rocsolver
# skipUnifiedBuild: 'false'
# buildDependsOn:
# - rocBLAS_build
# unifiedBuild:
# downstreamAggregateNames: rocBLAS+rocPRIM
# buildDependsOn:
# - rocBLAS_build
# - rocPRIM_build
# temporary rocblas->hipblas downstream path while the SOLVERs are disabled
- hipBLAS:
name: hipBLAS
sparseCheckoutDir: projects/hipblas
skipUnifiedBuild: 'false'
buildDependsOn:
- rocBLAS_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocBLAS
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: - name: TENSILE_ROCM_ASSEMBLER_PATH
- group: common value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang
- template: /.azuredevops/variables-global.yml - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: HIP_ROCCLR_HOME value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Build.BinariesDirectory)/rocm - name: ROCM_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang pool: ${{ variables.MEDIUM_BUILD_POOL }}
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH workspace:
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler clean: all
- name: ROCM_PATH strategy:
value: $(Agent.BuildDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all pipModules: ${{ parameters.pipModules }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} checkoutRepo: ${{ parameters.checkoutRepo }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml extraBuildFlags: >-
parameters: -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake
os: ${{ job.os }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++
dependencyList: -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang
- gtest -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DTensile_CODE_OBJECT_VERSION=default
parameters: -DTensile_LOGIC=asm_full
checkoutRef: ${{ parameters.checkoutRef }} -DTensile_SEPARATE_ARCHITECTURES=ON
dependencyList: ${{ parameters.rocmDependencies }} -DTensile_LAZY_LIBRARY_LOADING=ON
os: ${{ job.os }} -DTensile_LIBRARY_FORMAT=msgpack
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DBUILD_CLIENTS_BENCHMARKS=OFF
${{ if parameters.triggerDownstreamJobs }}: -DBUILD_CLIENTS_SAMPLES=OFF
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
os: ${{ job.os }} parameters:
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/projects/rocblas gpuTarget: $(JOB_GPU_TARGET)
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/projects/rocblas/build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
extraBuildFlags: >- parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang parameters:
-DGPU_TARGETS=${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
-DBUILD_CLIENTS_TESTS=ON pipModules: ${{ parameters.pipModules }}
-GNinja installAOCL: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: extraEnvVars:
componentName: ${{ parameters.componentName }} - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
os: ${{ job.os }} - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
gpuTarget: ${{ job.target }} - ROCM_PATH:::/home/user/workspace/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
installAOCL: true
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
- TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
- ROCM_PATH:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocBLAS_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocBLAS
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
timeoutInMinutes: 120 variables:
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} - group: common
condition: - template: /.azuredevops/variables-global.yml
and(succeeded(), pool: $(JOB_TEST_POOL)
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), workspace:
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), clean: all
eq(${{ parameters.aggregatePipeline }}, False) strategy:
) matrix:
variables: gfx942:
- group: common JOB_GPU_TARGET: gfx942
- template: /.azuredevops/variables-global.yml JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- checkout: none pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml componentName: rocBLAS
parameters: testDir: '$(Agent.BuildDirectory)/rocm/bin'
checkoutRef: ${{ parameters.checkoutRef }} testExecutable: './rocblas-test'
dependencyList: ${{ parameters.rocmTestDependencies }} testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
gpuTarget: ${{ job.target }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocblas-test'
testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}
${{ if parameters.unifiedBuild }}:
buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
${{ else }}:
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}

View File

@@ -1,62 +1,36 @@
parameters: parameters:
- name: componentName
type: string
default: rocDecode
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
- name: rocPyDecodeRepo
type: string
default: rocpydecode_repo
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- python3-pip
- cmake - cmake
- ninja-build
- pkg-config
- ffmpeg - ffmpeg
- libavcodec-dev - libavcodec-dev
- libavformat-dev - libavformat-dev
- libavutil-dev - libavutil-dev
- libdrm-dev
- libstdc++-12-dev - libstdc++-12-dev
- libva-amdgpu-dev - libva-amdgpu-dev
- mesa-amdgpu-va-drivers - mesa-amdgpu-va-drivers
- ninja-build - libdrm-dev
- pkg-config
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocm-cmake - rocm-cmake
- rocm-core - llvm-project
- rocminfo
- rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- clr
- rocminfo
- rocm-core
- rocprofiler-register
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -66,153 +40,89 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocPyDecode:
name: rocPyDecode
sparseCheckoutDir: ''
skipUnifiedBuild: 'false'
buildDependsOn:
- rocDecode_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocDecode
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
variables: clean: all
- group: common steps:
- template: /.azuredevops/variables-global.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- name: ROCM_PATH parameters:
value: $(Agent.BuildDirectory)/rocm aptPackages: ${{ parameters.aptPackages }}
pool: registerROCmPackages: true
vmImage: ${{ variables.BASE_BUILD_POOL }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
container: parameters:
image: rocmexternalcicd.azurecr.io/manylinux228:latest checkoutRepo: ${{ parameters.checkoutRepo }}
endpoint: ContainerService3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
workspace: parameters:
clean: all checkoutRef: ${{ parameters.checkoutRef }}
steps: dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} extraBuildFlags: >-
packageManager: ${{ job.packageManager }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
registerROCmPackages: true -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} aptPackages: ${{ parameters.aptPackages }}
dependencyList: ${{ parameters.rocmDependencies }} registerROCmPackages: true
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
consolidateBuildAndInstall: true
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocDecode_testing
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: rocDecode
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool:
eq(${{ parameters.aggregatePipeline }}, False) name: $(JOB_TEST_POOL)
) demands: firstRenderDeviceAccess
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: ROCM_PATH matrix:
value: $(Agent.BuildDirectory)/rocm gfx942:
pool: JOB_GPU_TARGET: gfx942
name: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: registerROCmPackages: true
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # anything in /opt may be persistent across runs
os: ${{ job.os }} # so we need to remove the symlink if it already exists
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - script: |
parameters: sudo rm -rf /opt/rocm
checkoutRef: ${{ parameters.checkoutRef }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
dependencyList: ${{ parameters.rocmTestDependencies }} mkdir rocDecode-tests
gpuTarget: ${{ job.target }} cd rocDecode-tests
os: ${{ job.os }} cmake /opt/rocm/share/rocdecode/test
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
displayName: Build rocDecode tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
inputs: parameters:
targetType: inline componentName: rocDecode
script: | testDir: 'rocDecode-tests'
${{ iif(eq(job.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }} - script: sudo rm /opt/rocm
mkdir rocDecode-tests condition: always()
cd rocDecode-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
cmake $(Agent.BuildDirectory)/rocm/share/rocdecode/test parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml registerROCmPackages: true
parameters: environment: test
componentName: rocDecode gpuTarget: $(JOB_GPU_TARGET)
testDir: 'rocDecode-tests'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.rocPyDecodeRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: rocFFT
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -65,145 +41,98 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocRAND - rocRAND
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
- name: downstreamComponentMatrix
type: object
default:
- hipFFT:
name: hipFFT
sparseCheckoutDir: projects/hipfft
skipUnifiedBuild: 'false'
buildDependsOn:
- rocFFT_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocFFT
- job: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_ubuntu2204_${{ job.target }} # todo: un-hardcode OS value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Build.BinariesDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} extraBuildFlags: >-
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_BUILD_TYPE=Release
extraBuildFlags: >- -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DUSE_HIP_CLANG=ON
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DHIP_COMPILER=clang
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_BENCHMARKS=OFF
-DAMDGPU_TARGETS=${{ job.target }} -DBUILD_CLIENTS_SAMPLES=OFF
-DUSE_HIP_CLANG=ON -GNinja
-DHIP_COMPILER=clang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DBUILD_CLIENTS_BENCHMARKS=OFF gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_CLIENTS_SAMPLES=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml aptPackages: ${{ parameters.aptPackages }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} extraEnvVars:
gpuTarget: ${{ job.target }} - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocFFT_testing
- job: ${{ parameters.componentName }}_test_ubuntu2204_${{ job.target }} dependsOn: rocFFT
dependsOn: ${{ parameters.componentName }}_build_ubuntu2204_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- checkout: none parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: rocFFT
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testExecutable: './rocfft-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: '--test_prob 0.004 --gtest_output=xml:./test_output.xml --gtest_color=yes'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin' aptPackages: ${{ parameters.aptPackages }}
testExecutable: './rocfft-test' environment: test
testParameters: '--test_prob 0.004 --gtest_output=xml:./test_output.xml --gtest_color=yes' gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,18 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: rocJPEG
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -43,141 +35,97 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocJPEG
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.LOW_BUILD_POOL }}
- name: ROCM_PATH workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
pool: strategy:
${{ if eq(job.os, 'ubuntu2404') }}: matrix:
name: rocm-ci_medium_build_pool_2404 gfx942:
${{ else }}: JOB_GPU_TARGET: gfx942
name: ${{ variables.MEDIUM_BUILD_POOL }} steps:
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
container: parameters:
image: rocmexternalcicd.azurecr.io/manylinux228:latest aptPackages: ${{ parameters.aptPackages }}
endpoint: ContainerService3 registerROCmPackages: true
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} checkoutRef: ${{ parameters.checkoutRef }}
registerROCmPackages: true dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_BUILD_TYPE=Release
dependencyList: ${{ parameters.rocmDependencies }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
consolidateBuildAndInstall: true aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" registerROCmPackages: true
-DCMAKE_BUILD_TYPE=Release
-DGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocJPEG_testing
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: rocJPEG
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool:
eq(${{ parameters.aggregatePipeline }}, False) name: $(JOB_TEST_POOL)
) demands: firstRenderDeviceAccess
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: ROCM_PATH matrix:
value: $(Agent.BuildDirectory)/rocm gfx942:
pool: JOB_GPU_TARGET: gfx942
name: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: registerROCmPackages: true
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml # anything in /opt may be persistent across runs
parameters: # so we need to remove the symlink if it already exists
os: ${{ job.os }} - script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml sudo rm -rf /opt/rocm
parameters: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
checkoutRef: ${{ parameters.checkoutRef }} mkdir rocJPEG-tests
dependencyList: ${{ parameters.rocmTestDependencies }} cd rocJPEG-tests
gpuTarget: ${{ job.target }} cmake $(Agent.BuildDirectory)/rocm/share/rocjpeg/test
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
displayName: Build rocJPEG tests parameters:
inputs: componentName: rocJPEG
targetType: inline testDir: 'rocJPEG-tests'
script: | - script: sudo rm /opt/rocm
${{ iif(eq(job.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }} condition: always()
mkdir rocJPEG-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
cd rocJPEG-tests parameters:
cmake $(Agent.BuildDirectory)/rocm/share/rocjpeg/test aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: registerROCmPackages: true
componentName: rocJPEG optSymLink: true
testDir: 'rocJPEG-tests'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
registerROCmPackages: true

View File

@@ -5,50 +5,31 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- ninja-build
- git - git
- python3-pip
- libdrm-dev - libdrm-dev
- libstdc++-12-dev - libstdc++-12-dev
- ninja-build
- python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
- hip-python --extra-index-url https://test.pypi.org/simple
- ml_dtypes
- numpy
- tomli - tomli
- scipy
- pybind11
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project - llvm-project
- rocm-cmake - rocm-cmake
- clr
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocMLIR_build - job: rocMLIR
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -68,7 +49,6 @@ jobs:
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -76,7 +56,6 @@ jobs:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DBUILD_FAT_LIBROCKCOMPILER=1 -DBUILD_FAT_LIBROCKCOMPILER=1
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
@@ -87,69 +66,64 @@ jobs:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
- ${{ each job in parameters.jobMatrix.testJobs }}: # compiling and running test on the test system together
# compiling and running test on the test system together - job: rocMLIR_testing
- job: rocMLIR_test_${{ job.target }} dependsOn: rocMLIR
dependsOn: rocMLIR_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - task: Bash@3
- task: Bash@3 displayName: ROCm symbolic link
displayName: Symlink rocm_agent_enumerator inputs:
inputs: targetType: inline
targetType: inline script: |
script: | sudo rm -rf /opt/rocm
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
sudo mkdir -p /opt/rocm/bin - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml installEnabled: false
parameters: extraBuildFlags: >-
installEnabled: false -DCMAKE_BUILD_TYPE=Release
extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++
-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib -DROCM_TEST_CHIPSET=$(JOB_GPU_TARGET)
-DCMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/lib -GNinja
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DROCM_TEST_CHIPSET=${{ job.target }} parameters:
-GNinja componentName: rocMLIR
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: $(Build.SourcesDirectory)/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testExecutable: ninja
parameters: testParameters: check-rocmlir
componentName: rocMLIR - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testDir: $(Build.SourcesDirectory)/build parameters:
testExecutable: ninja aptPackages: ${{ parameters.aptPackages }}
testParameters: check-rocmlir pipModules: ${{ parameters.pipModules }}
testPublishResults: false environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,49 +1,26 @@
parameters: parameters:
- name: componentName
type: string
default: rocPRIM
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- ninja-build - ninja-build
- libgtest-dev
- git
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocm-cmake - rocm-cmake
- rocminfo - llvm-project
- ROCR-Runtime - ROCR-Runtime
- clr
- rocminfo
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -53,179 +30,87 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942, shard: 1, shardCount: 3 }
- { os: ubuntu2204, packageManager: apt, target: gfx942, shard: 2, shardCount: 3 }
- { os: ubuntu2204, packageManager: apt, target: gfx942, shard: 3, shardCount: 3 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a, shard: 1, shardCount: 3 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a, shard: 2, shardCount: 3 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a, shard: 3, shardCount: 3 }
- name: downstreamComponentMatrix
type: object
default:
- rocThrust:
name: rocThrust
sparseCheckoutDir: projects/rocthrust
skipUnifiedBuild: 'false'
buildDependsOn:
- rocPRIM_build
- hipCUB:
name: hipCUB
sparseCheckoutDir: projects/hipcub
skipUnifiedBuild: 'false'
buildDependsOn:
- rocPRIM_build
# rocSOLVER depends on both rocBLAS and rocPRIM
# for a unified build, rocBLAS will be the one to call rocSOLVER
# - rocSOLVER:
# name: rocSOLVER
# sparseCheckoutDir: projects/rocsolver
# skipUnifiedBuild: 'true'
# buildDependsOn:
# - rocPRIM_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocPRIM
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.os }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml extraBuildFlags: >-
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
dependencyList: -DBUILD_BENCHMARK=ON
- gtest -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DBUILD_TEST=ON
checkoutRef: ${{ parameters.checkoutRef }} -GNinja
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
gpuTarget: ${{ job.target }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
consolidateBuildAndInstall: true aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor"
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DAMDGPU_TARGETS=${{ job.target }}
-DBUILD_BENCHMARK=ON
-DBUILD_TEST=ON
-GNinja
extraCxxFlags: -Wno-deprecated-declarations
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocPRIM_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocPRIM
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }}_shard_${{ job.shard }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: rocPRIM
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim'
extraTestParameters: '-I ${{ job.shard }},,${{ job.shardCount }}'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -5,27 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -43,222 +22,219 @@ parameters:
- name: pipModules - name: pipModules
type: object type: object
default: default:
- hip-python --extra-index-url https://test.pypi.org/simple
- numpy - numpy
- pybind11 - pybind11
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocDecode
- rocJPEG
- rocm-cmake - rocm-cmake
- rocm-core - llvm-project
- rocminfo
- ROCR-Runtime - ROCR-Runtime
- clr
- rocminfo
- rocm-core
- rocprofiler-register - rocprofiler-register
- rocDecode
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocPyDecode
- job: rocPyDecode_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: ROCM_PATH gfx942:
value: $(Agent.BuildDirectory)/rocm JOB_GPU_TARGET: gfx942
pool: steps:
vmImage: ${{ variables.BASE_BUILD_POOL }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all aptPackages: ${{ parameters.aptPackages }}
steps: pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - task: Bash@3
parameters: displayName: 'pip install hip-python'
aptPackages: ${{ parameters.aptPackages }} inputs:
pipModules: ${{ parameters.pipModules }} targetType: inline
packageManager: ${{ job.packageManager }} script: pip install -i https://test.pypi.org/simple hip-python
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - task: Bash@3
aggregatePipeline: ${{ parameters.aggregatePipeline }} displayName: 'ROCm symbolic link'
${{ if parameters.triggerDownstreamJobs }}: inputs:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} targetType: inline
- task: Bash@3 script: |
displayName: 'Save Python Package Paths' sudo rm -rf /opt/rocm
inputs: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
targetType: inline - task: Bash@3
script: | displayName: 'Save Python Package Paths'
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" inputs:
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" targetType: inline
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)"
parameters: echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
installEnabled: false echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')"
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) parameters:
-DCMAKE_BUILD_TYPE=Release extraBuildFlags: >-
-DGPU_TARGETS=${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory) -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH)
-GNinja -DCMAKE_BUILD_TYPE=Release
- task: Bash@3 -DGPU_TARGETS=$(JOB_GPU_TARGET)
displayName: 'rocPyDecode install' -DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory)
inputs: -GNinja
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
script: | parameters:
sudo cmake --build . --target install gpuTarget: $(JOB_GPU_TARGET)
sudo chown -R $(whoami):$(id -gn) $(Build.BinariesDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
workingDirectory: $(Build.SourcesDirectory)/build parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: publish: false
gpuTarget: ${{ job.target }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml displayName: Create wheel file
parameters: inputs:
gpuTarget: ${{ job.target }} targetType: inline
publish: false script: |
- task: Bash@3 export ROCM_PATH=$(Agent.BuildDirectory)/rocm
displayName: Create wheel file export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip
inputs: python3 setup.py bdist_wheel
targetType: inline workingDirectory: $(Build.SourcesDirectory)
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip parameters:
sudo python3 setup.py bdist_wheel sourceDir: $(Build.SourcesDirectory)/dist
sudo chown -R $(whoami):$(id -gn) $(find . -name "*.whl") contentsString: '*.whl'
workingDirectory: $(Build.SourcesDirectory) targetDir: $(Build.ArtifactStagingDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml clean: false
parameters: - task: PublishPipelineArtifact@1
sourceDir: $(Build.SourcesDirectory)/dist displayName: 'wheel file Publish'
contentsString: '*.whl' retryCountOnTaskFailure: 3
targetDir: $(Build.ArtifactStagingDirectory) inputs:
clean: false targetPath: $(Build.ArtifactStagingDirectory)
- task: PublishPipelineArtifact@1 - task: Bash@3
displayName: 'wheel file Publish' displayName: Save pipeline artifact file names
retryCountOnTaskFailure: 3 inputs:
inputs: workingDirectory: $(Pipeline.Workspace)
targetPath: $(Build.ArtifactStagingDirectory) targetType: inline
- task: Bash@3 script: |
displayName: Save pipeline artifact file names whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1)
inputs: if [ -n "$whlFile" ]; then
workingDirectory: $(Pipeline.Workspace) echo $(basename "$whlFile") >> pipelineArtifacts.txt
targetType: inline fi
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
if [ -n "$whlFile" ]; then parameters:
echo $(basename "$whlFile") >> pipelineArtifacts.txt aptPackages: ${{ parameters.aptPackages }}
fi pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml optSymLink: true
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocPyDecode_testing
- job: rocPyDecode_test_${{ job.target }} dependsOn: rocPyDecode
dependsOn: rocPyDecode_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool:
eq(${{ parameters.aggregatePipeline }}, False) name: $(JOB_TEST_POOL)
) demands: firstRenderDeviceAccess
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: ROCM_PATH matrix:
value: $(Agent.BuildDirectory)/rocm gfx942:
pool: JOB_GPU_TARGET: gfx942
name: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - task: Bash@3
steps: displayName: Ensure pybind11-dev is not installed
- task: Bash@3 inputs:
displayName: Ensure pybind11-dev is not installed targetType: inline
inputs: script: |
targetType: inline if dpkg -l | grep -q pybind11-dev; then
script: | echo "Removing pybind11-dev..."
if dpkg -l | grep -q pybind11-dev; then sudo apt remove -y pybind11-dev
echo "Removing pybind11-dev..." else
sudo apt remove -y pybind11-dev echo "pybind11-dev is not installed."
else fi
echo "pybind11-dev is not installed." - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
fi parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
aptPackages: ${{ parameters.aptPackages }} - task: Bash@3
pipModules: ${{ parameters.pipModules }} displayName: 'pip install hip-python'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml inputs:
- task: DownloadPipelineArtifact@2 targetType: inline
displayName: 'Download Pipeline Wheel Files' script: pip install -i https://test.pypi.org/simple hip-python
retryCountOnTaskFailure: 3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
inputs: - task: DownloadPipelineArtifact@2
itemPattern: '**/*.whl' displayName: 'Download Pipeline Wheel Files'
targetPath: $(Agent.BuildDirectory) inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml itemPattern: '**/*.whl'
parameters: targetPath: $(Agent.BuildDirectory)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
setupHIPLibrarySymlinks: true dependencyList: ${{ parameters.rocmDependencies }}
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: pip install setupHIPLibrarySymlinks: true
inputs: - task: Bash@3
targetType: inline displayName: pip install
script: | inputs:
pip uninstall -y rocPyDecode targetType: inline
find -name *.whl -exec pip install {} \; script: |
workingDirectory: $(Agent.BuildDirectory) pip uninstall -y rocPyDecode
- task: Bash@3 find -name *.whl -exec pip install {} \;
displayName: Setup search paths workingDirectory: $(Agent.BuildDirectory)
inputs: - task: Bash@3
targetType: inline displayName: Setup search paths
script: | inputs:
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" targetType: inline
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" script: |
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" sudo rm -rf /opt/rocm
- task: CMake@1 sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
displayName: 'rocPyDecode Test CMake Flags' echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)"
inputs: echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
workingDirectory: $(Agent.BuildDirectory)/rocm/share/rocpydecode/tests echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')"
cmakeArgs: >- - task: CMake@1
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) displayName: 'rocPyDecode Test CMake Flags'
-DCMAKE_BUILD_TYPE=Release inputs:
-DGPU_TARGETS=${{ job.target }} cmakeArgs: >-
. -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DGPU_TARGETS=$(JOB_GPU_TARGET)
componentName: rocPyDecode ..
testDir: $(Agent.BuildDirectory)/rocm/share/rocpydecode/tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} componentName: rocPyDecode
pipModules: ${{ parameters.pipModules }} testDir: $(Build.SourcesDirectory)/build
environment: test # sudo required for pip install but screws up permissions for next pipeline run
gpuTarget: ${{ job.target }} - task: Bash@3
pythonEnvVars: true displayName: Clean up test environment
# note that this docker won't have hip-python installed via pip condition: always()
inputs:
targetType: inline
script: |
pip uninstall -y rocPyDecode
pip uninstall -y hip-python
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)
pythonEnvVars: true
# note that this docker won't have hip-python installed via pip

View File

@@ -1,49 +1,27 @@
parameters: parameters:
- name: componentName
type: string
default: rocRAND
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git - git
- googletest
- libgtest-dev
- ninja-build - ninja-build
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocm-cmake - rocm-cmake
- rocminfo - llvm-project
- ROCR-Runtime - ROCR-Runtime
- clr
- rocminfo
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -53,171 +31,90 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- hipRAND:
name: hipRAND
sparseCheckoutDir: projects/hiprand
skipUnifiedBuild: 'false'
buildDependsOn:
- rocRAND_build
- MIOpen:
name: MIOpen
sparseCheckoutDir: projects/miopen
skipUnifiedBuild: 'true'
buildDependsOn:
- rocRAND_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocRAND
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Build.BinariesDirectory)/rocm matrix:
pool: gfx942:
${{ if eq(job.os, 'ubuntu2404') }}: JOB_GPU_TARGET: gfx942
vmImage: 'ubuntu-24.04' steps:
${{ else }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
name: ${{ variables.MEDIUM_BUILD_POOL }} parameters:
${{ if eq(job.os, 'almalinux8') }}: aptPackages: ${{ parameters.aptPackages }}
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
endpoint: ContainerService3 parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml extraBuildFlags: >-
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
checkoutRepo: ${{ parameters.checkoutRepo }} -DBUILD_TEST=ON
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -GNinja
dependencyList: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- gtest parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml extraEnvVars:
parameters: - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
os: ${{ job.os }}
consolidateBuildAndInstall: true
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DAMDGPU_TARGETS=${{ job.target }}
-DBUILD_TEST=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
# extraEnvVars:
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocRAND_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocRAND
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: rocRAND
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,54 +1,34 @@
parameters: parameters:
- name: componentName
type: string
default: rocSOLVER
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- gfortran
- git
- libfmt-dev
- libsuitesparse-dev
- ninja-build - ninja-build
- libsuitesparse-dev
- gfortran
- libfmt-dev
- git
- googletest
- libgtest-dev
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr - clr
- hipSPARSE
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm-cmake - rocm-cmake
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- ROCR-Runtime - ROCR-Runtime
- rocSPARSE
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -66,203 +46,111 @@ parameters:
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
#- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
#- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- hipBLAS:
name: hipBLAS
sparseCheckoutDir: projects/hipblas
skipUnifiedBuild: 'false'
buildDependsOn:
- rocSOLVER_build
# hipSOLVER depends on both rocSOLVER and rocSPARSE
# for a unified build, rocSOLVER will be the one to call hipSOLVER
# - hipSOLVER:
# name: hipSOLVER
# sparseCheckoutDir: projects/hipsolver
# skipUnifiedBuild: 'false'
# buildDependsOn:
# - rocSOLVER_build
# unifiedBuild:
# downstreamAggregateNames: rocSOLVER+rocSPARSE
# buildDependsOn:
# - rocSOLVER_build
# - rocSPARSE_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocSOLVER
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.os }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} - task: Bash@3
packageManager: ${{ job.packageManager }} displayName: 'Clone lapack'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml targetType: inline
parameters: script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack
checkoutRepo: ${{ parameters.checkoutRepo }} workingDirectory: '$(Build.SourcesDirectory)'
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- task: Bash@3 parameters:
displayName: 'Clone lapack' checkoutRef: ${{ parameters.checkoutRef }}
inputs: dependencyList: ${{ parameters.rocmDependencies }}
targetType: inline gpuTarget: $(JOB_GPU_TARGET)
script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
workingDirectory: '$(Build.SourcesDirectory)' parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml componentName: lapack
parameters: extraBuildFlags: >-
dependencyList: -DCMAKE_BUILD_TYPE=Release
- gtest -DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DBUILD_TESTING=OFF
parameters: -DCBLAS=ON
checkoutRef: ${{ parameters.checkoutRef }} -DLAPACKE=OFF
dependencyList: ${{ parameters.rocmDependencies }} -GNinja
os: ${{ job.os }} cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build'
gpuTarget: ${{ job.target }} installDir: '$(Pipeline.Workspace)/deps-install'
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
componentName: lapack -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
os: ${{ job.os }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
extraBuildFlags: >- -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_BENCHMARKS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_CLIENTS_SAMPLES=OFF
-DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls -GNinja
-DBUILD_TESTING=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCBLAS=ON parameters:
-DLAPACKE=OFF gpuTarget: $(JOB_GPU_TARGET)
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build' parameters:
cmakeSourceDir: '$(Build.SourcesDirectory)/lapack' gpuTarget: $(JOB_GPU_TARGET)
installDir: '$(Pipeline.Workspace)/deps-install' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install;$(Agent.BuildDirectory)/vendor extraCopyDirectories:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - deps-install
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DAMDGPU_TARGETS=${{ job.target }}
-DBUILD_CLIENTS_TESTS=ON
-DBUILD_CLIENTS_BENCHMARKS=OFF
-DBUILD_CLIENTS_SAMPLES=OFF
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- deps-install
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocSOLVER_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocSOLVER
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
preTargetFilter: ${{ parameters.componentName }} parameters:
os: ${{ job.os }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: componentName: rocSOLVER
checkoutRef: ${{ parameters.checkoutRef }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
dependencyList: ${{ parameters.rocmTestDependencies }} testExecutable: './rocsolver-test'
os: ${{ job.os }} testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocsolver-test'
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}
${{ if parameters.unifiedBuild }}:
buildDependsOn: ${{ component.unifiedBuild.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ component.unifiedBuild.downstreamAggregateNames }}
${{ else }}:
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}

View File

@@ -1,57 +1,34 @@
parameters: parameters:
- name: componentName
type: string
default: rocSPARSE
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake
- gfortran
- git
- libboost-program-options-dev
- libdrm-dev
- libfftw3-dev
- ninja-build
- python3-pip - python3-pip
- cmake
- ninja-build
- libboost-program-options-dev
- googletest
- libfftw3-dev
- git
- gfortran
- libgtest-dev
- libdrm-dev
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocBLAS
- rocm-cmake - rocm-cmake
- llvm-project
- ROCR-Runtime
- clr
- rocBLAS
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime
- roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -65,179 +42,110 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
#- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- hipSPARSE:
name: hipSPARSE
sparseCheckoutDir: projects/hipsparse
skipUnifiedBuild: 'false'
buildDependsOn:
- rocSPARSE_build
# hipSOLVER depends on both rocSOLVER and rocSPARSE
# for a unified build, rocSOLVER will be the one to call hipSOLVER
# - hipSOLVER:
# name: hipSOLVER
# sparseCheckoutDir: projects/hipsolver
# skipUnifiedBuild: 'true'
# buildDependsOn:
# - rocSPARSE_build
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocSPARSE
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
- name: HIP_ROCCLR_HOME strategy:
value: $(Build.BinariesDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
dependencyList: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- gtest parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -DCMAKE_BUILD_TYPE=Release
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: -DBUILD_CLIENTS_SAMPLES=OFF
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DBUILD_CLIENTS_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DBUILD_CLIENTS_BENCHMARKS=OFF
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake
os: ${{ job.os }} -GNinja
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++ artifactName: rocSPARSE
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang gpuTarget: $(JOB_GPU_TARGET)
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DAMDGPU_TARGETS=${{ job.target }} artifactName: rocSPARSE
-DBUILD_CLIENTS_SAMPLES=OFF gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_CLIENTS_TESTS=ON publish: false
-DBUILD_CLIENTS_BENCHMARKS=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake parameters:
-GNinja sourceDir: $(Build.SourcesDirectory)/build/clients
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml contentsString: matrices/**
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
componentName: ${{ parameters.componentName }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} artifactName: testMatrices
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
publish: false extraEnvVars:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
parameters:
sourceDir: $(Agent.BuildDirectory)/s/build/clients
contentsString: matrices/**
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
artifactName: testMatrices
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocSPARSE_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 90
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: rocSPARSE
timeoutInMinutes: 120 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: rocSPARSE
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
gpuTarget: ${{ job.target }} testExecutable: './rocsparse-test'
os: ${{ job.os }} testParameters: '--gtest_filter="*quick*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocsparse-test'
testParameters: '--gtest_filter="*quick*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -1,49 +1,26 @@
parameters: parameters:
- name: componentName
type: string
default: rocThrust
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- git
- ninja-build - ninja-build
- libboost-program-options-dev - libboost-program-options-dev
- googletest
- libfftw3-dev - libfftw3-dev
- git
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr - clr
- hipRAND
- llvm-project - llvm-project
- rocm-cmake
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- ROCR-Runtime - ROCR-Runtime
@@ -54,142 +31,91 @@ parameters:
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- hipRAND
- name: jobMatrix - rocprofiler-register
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocThrust
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.os }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml extraBuildFlags: >-
parameters: -GNinja
dependencyList: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- gtest -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} -DBUILD_TEST=ON
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
gpuTarget: ${{ job.target }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
consolidateBuildAndInstall: true aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-GNinja
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor"
-DAMDGPU_TARGETS=${{ job.target }}
-DBUILD_TEST=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocThrust_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocThrust
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- checkout: none aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
preTargetFilter: ${{ parameters.componentName }} checkoutRef: ${{ parameters.checkoutRef }}
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: rocThrust
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: aptPackages: ${{ parameters.aptPackages }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust'
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "scan.hip"'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,34 +1,10 @@
parameters: parameters:
- name: componentName
type: string
default: rocWMMA
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -69,115 +45,92 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocWMMA
- job: ${{ parameters.componentName }}_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
extraBuildFlags: >- -DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DROCWMMA_BUILD_TESTS=ON
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DROCWMMA_BUILD_SAMPLES=OFF
-DCMAKE_BUILD_TYPE=Release -DGPU_TARGETS=$(JOB_GPU_TARGET)
-DROCWMMA_BUILD_TESTS=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
-DROCWMMA_BUILD_SAMPLES=OFF -DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION)
-DGPU_TARGETS=${{ job.target }} -GNinja
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON # gfx1030 not supported in documentation
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-GNinja parameters:
# gfx1030 not supported in documentation gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocWMMA_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 90
- job: ${{ parameters.componentName }}_test_${{ job.target }} dependsOn: rocWMMA
timeoutInMinutes: 350 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: rocWMMA
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma' aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,93 +5,55 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake
- doxygen - doxygen
- doxygen-doc - doxygen-doc
- ninja-build - ninja-build
- python3-pip
- python3-sphinx
- name: pipModules - name: pipModules
type: object type: object
default: default:
- cget - cget
- cmake==3.20.5
- ninja - ninja
- rocm-docs-core
- sphinx
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocm_cmake
- job: rocm_cmake_${{ job.os }} variables:
pool: - group: common
${{ if eq(job.os, 'ubuntu2404') }}: - template: /.azuredevops/variables-global.yml
vmImage: 'ubuntu-24.04' pool: ${{ variables.LOW_BUILD_POOL }}
${{ else }}: workspace:
vmImage: 'ubuntu-22.04' clean: all
${{ if eq(job.os, 'almalinux8') }}: steps:
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 aptPackages: ${{ parameters.aptPackages }}
variables: pipModules: ${{ parameters.pipModules }}
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: /.azuredevops/variables-global.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
workspace: parameters:
clean: all checkoutRepo: ${{ parameters.checkoutRepo }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml # extra steps for ctest suite
parameters: - script: |
aptPackages: ${{ parameters.aptPackages }} python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt
pipModules: ${{ parameters.pipModules }} python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt
packageManager: ${{ job.packageManager }} git config --global user.email "you@example.com"
- task: Bash@3 git config --global user.name "Your Name"
displayName: Add CMake to PATH displayName: "ctest setup"
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
targetType: inline parameters:
script: echo "##vso[task.prependpath]$(python3 -m site --user-base)/bin" componentName: rocm-cmake
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
os: ${{ job.os }} pipModules: ${{ parameters.pipModules }}
useAmdclang: false environment: combined
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: CTest setup
inputs:
targetType: inline
script: |
python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt
python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocm-cmake
testParameters: '-E "pass-version-parent" --extra-verbose --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# environment: combined

View File

@@ -1,103 +1,45 @@
parameters: parameters:
- name: componentName
type: string
default: rocm-core
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- ninja-build - python3-pip
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocm_core
- job: rocm_core_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
${{ if eq(job.os, 'ubuntu2404') }}: steps:
vmImage: 'ubuntu-24.04' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
${{ else }}: parameters:
vmImage: 'ubuntu-22.04' aptPackages: ${{ parameters.aptPackages }}
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 checkoutRepo: ${{ parameters.checkoutRepo }}
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- group: common parameters:
- template: /.azuredevops/variables-global.yml extraBuildFlags: >-
workspace: -DCMAKE_CURRENT_BINARY_DIR=$PWD
clean: all -DCMAKE_CURRENT_SOURCE_DIR=$PWD/../
steps: -DCMAKE_VERBOSE_MAKEFILE=1
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml -DCPACK_GENERATOR=DEB
parameters: -DCPACK_DEBIAN_PACKAGE_RELEASE="local.9999~99.99"
aptPackages: ${{ parameters.aptPackages }} -DCPACK_RPM_PACKAGE_RELEASE="local.9999"
packageManager: ${{ job.packageManager }} -DROCM_VERSION="$(NEXT_RELEASE_VERSION)"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml aptPackages: ${{ parameters.aptPackages }}
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_CURRENT_BINARY_DIR=$PWD
-DCMAKE_CURRENT_SOURCE_DIR=$PWD/../
-DCMAKE_VERBOSE_MAKEFILE=1
-DCPACK_GENERATOR=DEB
-DCPACK_DEBIAN_PACKAGE_RELEASE="local.9999~99.99"
-DCPACK_RPM_PACKAGE_RELEASE="local.9999"
-DROCM_VERSION="$(NEXT_RELEASE_VERSION)"
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

View File

@@ -5,51 +5,18 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libdw-dev
- libglfw3-dev - libglfw3-dev
- libmsgpack-dev
- libopencv-dev
- libtbb-dev - libtbb-dev
- libtiff-dev
- libva-amdgpu-dev
- libva2-amdgpu
- mesa-amdgpu-va-drivers
- libavcodec-dev
- libavformat-dev
- libavutil-dev
- ninja-build
- python3-pip - python3-pip
- protobuf-compiler
- libprotoc-dev
- libopencv-dev
- name: pipModules
type: object
default:
- future==1.0.0
- pytz==2022.1
- numpy==1.23
- google==3.0.0
- protobuf==3.12.4
- onnx==1.12.0
- nnef==1.0.7
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- AMDMIGraphX - AMDMIGraphX
- aomp
- aomp-extras
- clr - clr
- half
- composable_kernel
- hipBLAS - hipBLAS
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -59,37 +26,21 @@ parameters:
- hipRAND - hipRAND
- hipSOLVER - hipSOLVER
- hipSPARSE - hipSPARSE
- hipTensor
- llvm-project - llvm-project
- MIOpen
- MIVisionX
- rocm_smi_lib
- rccl
- rocAL
- rocALUTION
- rocBLAS - rocBLAS
- rocDecode
- rocFFT - rocFFT
- rocJPEG
- rocPRIM - rocPRIM
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- rocRAND - rocRAND
- rocSOLVER - rocSOLVER
- rocSPARSE - rocSPARSE
- rocThrust - rocThrust
- rocWMMA
- rpp
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- AMDMIGraphX - AMDMIGraphX
- aomp
- aomp-extras
- clr - clr
- half
- composable_kernel
- hipBLAS - hipBLAS
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -99,158 +50,120 @@ parameters:
- hipRAND - hipRAND
- hipSOLVER - hipSOLVER
- hipSPARSE - hipSPARSE
- hipTensor
- llvm-project - llvm-project
- MIOpen
- MIVisionX
- rocm_smi_lib
- rccl
- rocAL
- rocALUTION
- rocBLAS - rocBLAS
- rocDecode
- rocFFT - rocFFT
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- rocJPEG
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- rocRAND - rocRAND
- rocSOLVER - rocSOLVER
- rocSPARSE - rocSPARSE
- rocThrust - rocThrust
- roctracer - roctracer
- rocWMMA
- rpp
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocm_examples
- job: rocm_examples_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
cmakeVersion: '3.25.0' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} # https://github.com/ROCm/HIP/issues/2203
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
# https://github.com/ROCm/HIP/issues/2203 -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
extraBuildFlags: >- -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
-DAMDGPU_TARGETS=${{ job.target }} - task: Bash@3
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} displayName: Move rocm-examples binaries to rocm/examples
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc inputs:
-GNinja targetType: inline
- task: Bash@3 script: |
displayName: Move rocm-examples binaries to rocm/examples mkdir -p $(Build.BinariesDirectory)/examples
inputs: mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
script: | parameters:
mkdir -p $(Build.BinariesDirectory)/examples gpuTarget: $(JOB_GPU_TARGET)
mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocm_examples_testing
- job: rocm_examples_test_${{ job.target }} dependsOn: rocm_examples
dependsOn: rocm_examples_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: TEST_LOG_FILE
eq(${{ parameters.aggregatePipeline }}, False) value: $(Pipeline.Workspace)/rocm-examplesTestLog.log
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: TEST_LOG_FILE matrix:
value: $(Pipeline.Workspace)/rocm-examplesTestLog.log gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
cmakeVersion: '3.25.0' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRepo: ${{ parameters.checkoutRepo }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} # https://github.com/ROCm/HIP/issues/2203
dependencyList: ${{ parameters.rocmTestDependencies }} extraBuildFlags: >-
gpuTarget: ${{ job.target }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
# https://github.com/ROCm/HIP/issues/2203 -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
extraBuildFlags: >- -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} componentName: rocm-examples
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc testDir: $(Build.SourcesDirectory)/build
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml aptPackages: ${{ parameters.aptPackages }}
parameters: environment: test
componentName: rocm-examples gpuTarget: $(JOB_GPU_TARGET)
testDir: $(Build.SourcesDirectory)/build
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,193 +0,0 @@
parameters:
- name: componentName
type: string
default: rocm_libraries
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages
type: object
default:
- ccache
- gfortran
- git
- libdrm-dev
- liblapack-dev
- libmsgpack-dev
- libnuma-dev
- libopenblas-dev
- ninja-build
- python3-pip
- python3-venv
- googletest
- libgtest-dev
- libgmock-dev
- libboost-filesystem-dev
- name: pipModules
type: object
default:
- msgpack
- joblib
- "packaging>=22.0"
- pytest
- pytest-cmake
- --upgrade
- name: rocmDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rocminfo
- rocm-cmake
- rocm_smi_lib
- rocprofiler-register
- ROCR-Runtime
- roctracer
- name: rocmTestDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rocminfo
- rocm_smi_lib
- rocprofiler-register
- ROCR-Runtime
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { pool: rocm-ci_ultra_build_pool, os: ubuntu2204, packageManager: apt, target: gfx942 }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }}
timeoutInMinutes: 300
${{ if parameters.buildDependsOn }}:
dependsOn:
- ${{ each build in parameters.buildDependsOn }}:
- ${{ build }}_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: DAY_STRING
value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
pool: ${{ job.pool }}
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- gtest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- script: |
mkdir -p $(CCACHE_DIR)
echo "##vso[task.prependpath]/usr/lib/ccache"
displayName: Update path for ccache
- task: Cache@2
displayName: Ccache caching
inputs:
key: rocm-libraries | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
path: $(CCACHE_DIR)
restoreKeys: |
rocm-libraries | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING)
rocm-libraries | ${{ job.os }} | ${{ job.target }}
rocm-libraries | ${{ job.os }}
- task: Bash@3
displayName: Add paths for CMake and Python site-packages binaries
inputs:
targetType: inline
script: |
USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.prependpath]$USER_BASE/bin"
echo "##vso[task.setvariable variable=PytestCmakePath]$USER_BASE/share/Pytest/cmake"
displayName: Set cmake configure paths
- task: Bash@3
displayName: Add ROCm binaries to PATH
inputs:
targetType: inline
script: |
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
extraBuildFlags: >-
-D CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor;$(PytestCmakePath)
-D CMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/llvm/include
-D CMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-D CMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-D CMAKE_C_COMPILER_LAUNCHER=ccache
-G Ninja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
installLatestCMake: true
extraCopyDirectories:
- deps

View File

@@ -5,12 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -37,17 +31,8 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocm_bandwidth_test_build - job: rocm_bandwidth_test
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -55,8 +40,7 @@ jobs:
value: $(Agent.BuildDirectory)/rocm value: $(Agent.BuildDirectory)/rocm
- name: ROCR_LIB_DIR - name: ROCR_LIB_DIR
value: $(Agent.BuildDirectory)/rocm value: $(Agent.BuildDirectory)/rocm
pool: pool: ${{ variables.LOW_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -72,7 +56,6 @@ jobs:
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -83,52 +66,51 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
# extraEnvVars: extraEnvVars:
# - ROCR_INC_DIR:::/home/user/workspace/rocm - ROCR_INC_DIR:::/home/user/workspace/rocm
# - ROCR_LIB_DIR:::/home/user/workspace/rocm - ROCR_LIB_DIR:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocm_bandwidth_test_testing
- job: rocm_bandwidth_test_test_${{ job.target }} dependsOn: rocm_bandwidth_test
dependsOn: rocm_bandwidth_test_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: rocm_bandwidth_test
componentName: rocm_bandwidth_test testDir: '$(Agent.BuildDirectory)'
testDir: '$(Agent.BuildDirectory)' testExecutable: './rocm/bin/rocm-bandwidth-test'
testExecutable: './rocm/bin/rocm-bandwidth-test' testParameters: ''
testParameters: '' testPublishResults: false
testPublishResults: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,145 +1,74 @@
parameters: parameters:
- name: componentName
type: string
default: rocm_smi_lib
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libdrm-dev - libdrm-dev
- ninja-build - python3-pip
- pkg-config
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocm_smi_lib
- job: rocm_smi_lib_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
${{ if eq(job.os, 'ubuntu2404') }}: steps:
vmImage: 'ubuntu-24.04' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
${{ else }}: parameters:
vmImage: 'ubuntu-22.04' aptPackages: ${{ parameters.aptPackages }}
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 checkoutRepo: ${{ parameters.checkoutRepo }}
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- group: common parameters:
- template: /.azuredevops/variables-global.yml extraBuildFlags: >-
workspace: -DBUILD_TESTS=ON
clean: all -DROCM_DEP_ROCMCORE=ON
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DBUILD_TESTS=ON
-DROCM_DEP_ROCMCORE=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocm_smi_lib_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocm_smi_lib
- job: rocm_smi_lib_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: rocm_smi_lib_build_${{ job.os }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- checkout: none - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: runRocminfo: false
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
packageManager: ${{ job.packageManager }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml componentName: rocm_smi_lib
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml testDir: '$(Agent.BuildDirectory)'
parameters: testExecutable: './rocm/share/rocm_smi/rsmitst_tests/rsmitst'
os: ${{ job.os }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
runRocminfo: false aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }}
testDir: '$(Agent.BuildDirectory)'
testExecutable: 'sudo ./rocm/share/rocm_smi/rsmitst_tests/rsmitst'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,41 +1,17 @@
parameters: parameters:
- name: componentName
type: string
default: rocminfo
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libdrm-amdgpu-dev - libdrm-amdgpu-dev
- libdrm-dev - libdrm-dev
- ninja-build - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -47,129 +23,84 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocminfo
- job: ${{ parameters.componentName }}_build_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
vmImage: 'ubuntu-22.04' steps:
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
container: parameters:
image: rocmexternalcicd.azurecr.io/manylinux228:latest aptPackages: ${{ parameters.aptPackages }}
endpoint: ContainerService3 registerROCmPackages: true
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: checkoutRepo: ${{ parameters.checkoutRepo }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
aptPackages: ${{ parameters.aptPackages }} skipLlvmSymlink: true
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DROCRTST_BLD_TYPE=release
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} aptPackages: ${{ parameters.aptPackages }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
os: ${{ job.os }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCRTST_BLD_TYPE=release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocminfo_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocminfo
- job: rocminfo_test_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: rocminfo_build_${{ job.os }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: runRocminfo: false
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} componentName: rocminfo
os: ${{ job.os }} testDir: '$(Agent.BuildDirectory)'
${{ if parameters.triggerDownstreamJobs }}: testExecutable: './rocm/bin/rocminfo'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testParameters: ''
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testPublishResults: false
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
runRocminfo: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml componentName: rocm_agent_enumerator
parameters: testDir: '$(Agent.BuildDirectory)'
componentName: ${{ parameters.componentName }} testExecutable: './rocm/bin/rocm_agent_enumerator'
testDir: '$(Agent.BuildDirectory)' testParameters: ''
testExecutable: './rocm/bin/rocminfo' testPublishResults: false
testParameters: '' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testPublishResults: false parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocm_agent_enumerator
testDir: '$(Agent.BuildDirectory)'
testExecutable: './rocm/bin/rocm_agent_enumerator'
testParameters: ''
testPublishResults: false
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,66 +1,34 @@
parameters: parameters:
- name: componentName
type: string
default: rocprofiler-compute
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libdw-dev
- libtbb-dev
- locales - locales
- ninja-build
- python3-pip - python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
- astunparse==1.6.2 - astunparse==1.6.2
- colorlover - colorlover
- dash-bootstrap-components - dash>=1.12.0
- dash-svg
- "dash>=3.0.0"
- kaleido==0.2.1
- matplotlib - matplotlib
- "numpy>=1.17.5" - numpy>=1.17.5
- "pandas>=1.4.3" - pandas>=1.4.3
- plotext
- plotille
- pymongo - pymongo
- pyyaml - pyyaml
- setuptools
- sqlalchemy
- tabulate - tabulate
- textual
- textual_plotext
- textual-fspicker
- tqdm - tqdm
- dash-svg
- dash-bootstrap-components
- kaleido
- setuptools
- plotille
- mock - mock
- pytest - pytest
- pytest-cov - pytest-cov
@@ -68,14 +36,6 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- ROCR-Runtime
- rocprofiler-sdk
- name: rocmTestDependencies
type: object
default:
- amdsmi
- clr - clr
- llvm-project - llvm-project
- rocm-cmake - rocm-cmake
@@ -84,155 +44,133 @@ parameters:
- rocm_smi_lib - rocm_smi_lib
- ROCR-Runtime - ROCR-Runtime
- rocprofiler - rocprofiler
- rocprofiler-sdk
- rocprofiler-register - rocprofiler-register
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocprofiler_compute
- job: rocprofiler_compute_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: ROCM_PATH gfx942:
value: $(Agent.BuildDirectory)/rocm JOB_GPU_TARGET: gfx942
pool: steps:
vmImage: ${{ variables.BASE_BUILD_POOL }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all aptPackages: ${{ parameters.aptPackages }}
steps: pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRef: ${{ parameters.checkoutRef }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
extraBuildFlags: >- parameters:
-GNinja aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml pipModules: ${{ parameters.pipModules }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocprofiler_compute_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 120
- job: rocprofiler_compute_test_${{ job.target }} dependsOn: rocprofiler_compute
timeoutInMinutes: 120 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: rocprofiler_compute_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - name: PYTHON_VERSION
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), value: 3.10
eq(${{ parameters.aggregatePipeline }}, False) pool: $(JOB_TEST_POOL)
) workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: PYTHON_VERSION gfx942:
value: 3.10 JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml displayName: Add en_US.UTF-8 locale
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml inputs:
parameters: targetType: inline
checkoutRepo: ${{ parameters.checkoutRepo }} script: |
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} sudo locale-gen en_US.UTF-8
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml sudo update-locale
parameters: locale -a
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} checkoutRef: ${{ parameters.checkoutRef }}
${{ if parameters.triggerDownstreamJobs }}: dependencyList: ${{ parameters.rocmDependencies }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} gpuTarget: $(JOB_GPU_TARGET)
- task: Bash@3 - task: Bash@3
displayName: Add en_US.UTF-8 locale displayName: Add ROCm binaries to PATH
inputs: inputs:
targetType: inline targetType: inline
script: | script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
sudo locale-gen en_US.UTF-8 - task: Bash@3
sudo update-locale displayName: Add ROCm compilers to PATH
locale -a inputs:
- task: Bash@3 targetType: inline
displayName: Add ROCm binaries to PATH script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
targetType: inline parameters:
script: | extraBuildFlags: >-
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
extraBuildFlags: >- -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} -DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DENABLE_TESTS=ON
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DINSTALL_TESTS=ON
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DENABLE_TESTS=ON componentName: rocprofiler-compute
-DINSTALL_TESTS=ON testDir: $(Build.BinariesDirectory)/libexec/rocprofiler-compute
-GNinja testExecutable: ROCPROFCOMPUTE_ARCH_OVERRIDE="MI300X" ROCM_PATH=$(Agent.BuildDirectory)/rocm ctest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml displayName: Remove ROCm binaries from PATH
parameters: condition: always()
componentName: ${{ parameters.componentName }} inputs:
testDir: $(Build.BinariesDirectory)/libexec/rocprofiler-compute targetType: inline
testExecutable: ROCM_PATH=$(Agent.BuildDirectory)/rocm ctest script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - task: Bash@3
parameters: displayName: Remove ROCm compilers from PATH
aptPackages: ${{ parameters.aptPackages }} condition: always()
pipModules: ${{ parameters.pipModules }} inputs:
environment: test targetType: inline
gpuTarget: ${{ job.target }} script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,104 +1,50 @@
parameters: parameters:
- name: componentName
type: string
default: rocprofiler-register
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- ninja-build - python3-pip
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: ubuntu2404, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocprofiler_register
- job: rocprofiler_register_${{ job.os }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
pool: clean: all
${{ if eq(job.os, 'ubuntu2404') }}: steps:
vmImage: 'ubuntu-24.04' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
${{ else }}: parameters:
vmImage: 'ubuntu-22.04' aptPackages: ${{ parameters.aptPackages }}
${{ if eq(job.os, 'almalinux8') }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
container: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
image: rocmexternalcicd.azurecr.io/manylinux228:latest parameters:
endpoint: ContainerService3 checkoutRepo: ${{ parameters.checkoutRepo }}
variables: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- group: common parameters:
- template: /.azuredevops/variables-global.yml componentName: rocprofiler-register
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
clean: all parameters:
steps: componentName: rocprofiler-register-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml extraBuildFlags: >-
parameters: -DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory)
aptPackages: ${{ parameters.aptPackages }} cmakeBuildDir: 'tests/build'
packageManager: ${{ job.packageManager }} installEnabled: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: componentName: rocprofiler-register
checkoutRepo: ${{ parameters.checkoutRepo }} testDir: 'tests/build'
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
useAmdclang: false aptPackages: ${{ parameters.aptPackages }}
extraBuildFlags: >- environment: combined
-DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory)
-DROCPROFILER_REGISTER_BUILD_TESTS=ON
-DROCPROFILER_REGISTER_BUILD_SAMPLES=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
testDir: $(Agent.BuildDirectory)/s/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# environment: combined

View File

@@ -1,46 +1,18 @@
parameters: parameters:
- name: componentName
type: string
default: rocprofiler-sdk
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- build-essential - build-essential
- cmake
- libdrm-amdgpu-dev - libdrm-amdgpu-dev
- libdrm-dev - libdrm-dev
- libdw-dev - libdw-dev
- libelf-dev - libelf-dev
- libsqlite3-dev
- libva-dev
- ninja-build
- pkg-config - pkg-config
- python3-pip - python3-pip
- name: pipModules - name: pipModules
@@ -57,12 +29,11 @@ parameters:
- pandas - pandas
- perfetto - perfetto
- pycobertura - pycobertura
- "pytest>=6.2.5" - pytest>=6.2.5
- pyyaml - pyyaml
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- aomp
- clr - clr
- llvm-project - llvm-project
- rccl - rccl
@@ -73,159 +44,118 @@ parameters:
- rocminfo - rocminfo
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocprofiler_sdk
- job: rocprofiler_sdk_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.LOW_BUILD_POOL }}
- ${{ build }}_${{ job.os}}_${{ job.target }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all pipModules: ${{ parameters.pipModules }}
steps: registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml displayName: Add Python site-packages binaries to path
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml inputs:
parameters: targetType: inline
checkoutRef: ${{ parameters.checkoutRef }} script: |
dependencyList: ${{ parameters.rocmDependencies }} USER_BASE=$(python3 -m site --user-base)
os: ${{ job.os }} echo "##vso[task.prependpath]$USER_BASE/bin"
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: extraBuildFlags: >-
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- task: Bash@3 -DROCPROFILER_BUILD_TESTS=ON
displayName: Add Python site-packages binaries to path -DROCPROFILER_BUILD_SAMPLES=ON
inputs: -DROCPROFILER_BUILD_RELEASE=ON
targetType: inline -DGPU_TARGETS=$(JOB_GPU_TARGET)
script: | multithreadFlag: -- -j4
USER_BASE=$(python3 -m site --user-base) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
echo "##vso[task.prependpath]$USER_BASE/bin" parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
componentName: ${{ parameters.componentName }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DROCPROFILER_BUILD_TESTS=ON parameters:
-DROCPROFILER_BUILD_SAMPLES=ON aptPackages: ${{ parameters.aptPackages }}
-DROCPROFILER_BUILD_RELEASE=ON pipModules: ${{ parameters.pipModules }}
-DGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
-GNinja registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocprofiler_sdk_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocprofiler_sdk
- job: rocprofiler_sdk_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: rocprofiler_sdk_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
aptPackages: ${{ parameters.aptPackages }} registerROCmPackages: true
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - task: Bash@3
checkoutRef: ${{ parameters.checkoutRef }} displayName: Add Python site-packages binaries to path
dependencyList: ${{ parameters.rocmDependencies }} inputs:
os: ${{ job.os }} targetType: inline
gpuTarget: ${{ job.target }} script: |
${{ if parameters.triggerDownstreamJobs }}: USER_BASE=$(python3 -m site --user-base)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} echo "##vso[task.prependpath]$USER_BASE/bin"
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
displayName: Add Python and ROCm binaries to path parameters:
inputs: extraBuildFlags: >-
targetType: inline -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
script: | -DROCPROFILER_BUILD_TESTS=ON
USER_BASE=$(python3 -m site --user-base) -DROCPROFILER_BUILD_SAMPLES=ON
echo "##vso[task.prependpath]$USER_BASE/bin" -DROCPROFILER_BUILD_RELEASE=ON
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml multithreadFlag: -- -j16
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
componentName: ${{ parameters.componentName }} parameters:
os: ${{ job.os }} componentName: rocprofiler-sdk
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DROCPROFILER_BUILD_TESTS=ON aptPackages: ${{ parameters.aptPackages }}
-DROCPROFILER_BUILD_SAMPLES=ON pipModules: ${{ parameters.pipModules }}
-DROCPROFILER_BUILD_RELEASE=ON environment: test
-DGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
-GNinja registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH}}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
testDir: $(Agent.BuildDirectory)/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
registerROCmPackages: true

View File

@@ -6,30 +6,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: componentName
type: string
default: rocprofiler-systems
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -40,7 +16,6 @@ parameters:
- bzip2 - bzip2
- clang - clang
- cmake - cmake
- chrpath
- environment-modules - environment-modules
- ffmpeg - ffmpeg
- g++-12 - g++-12
@@ -49,16 +24,13 @@ parameters:
- libavutil-dev - libavutil-dev
- libdrm-amdgpu-dev - libdrm-amdgpu-dev
- libdrm-dev - libdrm-dev
- libdw-dev
- libfabric-dev - libfabric-dev
- libiberty-dev - libiberty-dev
- libpapi-dev - libpapi-dev
- libpfm4-dev - libpfm4-dev
- libtool - libtool
- libopenmpi-dev - libopenmpi-dev
- libsqlite3-dev
- m4 - m4
- ninja-build
- openmpi-bin - openmpi-bin
- pkg-config - pkg-config
- python3-pip - python3-pip
@@ -87,185 +59,187 @@ parameters:
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk - rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocprofiler_systems
- job: rocprofiler_systems_build_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: pool: ${{ variables.MEDIUM_BUILD_POOL }}
- ${{ build }}_${{ job.os }} workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: ROCM_PATH gfx942:
value: $(Agent.BuildDirectory)/rocm JOB_GPU_TARGET: gfx942
pool: ${{ variables.MEDIUM_BUILD_POOL }} steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: registerROCmPackages: true
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - task: Bash@3
checkoutRef: ${{ parameters.checkoutRef }} displayName: ROCm symbolic link
dependencyList: ${{ parameters.rocmDependencies }} inputs:
gpuTarget: ${{ job.target }} targetType: inline
aggregatePipeline: ${{ parameters.aggregatePipeline }} script: |
- task: Bash@3 sudo rm -rf /opt/rocm
displayName: Add ROCm binaries to PATH sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
inputs: - task: Bash@3
targetType: inline displayName: Add ROCm binaries to PATH
script: | inputs:
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" targetType: inline
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - task: Bash@3
parameters: displayName: Add ROCm compilers to PATH
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html inputs:
extraBuildFlags: >- targetType: inline
-DROCPROFSYS_BUILD_TESTING=ON script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
-DROCPROFSYS_BUILD_DYNINST=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCPROFSYS_BUILD_LIBUNWIND=ON parameters:
-DROCPROFSYS_DISABLE_EXAMPLES="openmp-target" # build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
-DDYNINST_BUILD_TBB=ON extraBuildFlags: >-
-DDYNINST_BUILD_ELFUTILS=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DDYNINST_BUILD_LIBIBERTY=ON -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DDYNINST_BUILD_BOOST=ON -DROCPROFSYS_BUILD_TESTING=ON
-DROCPROFSYS_USE_PAPI=ON -DROCPROFSYS_BUILD_DYNINST=ON
-DROCPROFSYS_USE_MPI=ON -DROCPROFSYS_BUILD_LIBUNWIND=ON
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/include/rocjpeg -DROCPROFSYS_DISABLE_EXAMPLES="openmp-target"
-DGPU_TARGETS=${{ job.target }} -DDYNINST_BUILD_TBB=ON
-GNinja -DDYNINST_BUILD_ELFUTILS=ON
componentName: ${{ parameters.componentName }} -DDYNINST_BUILD_LIBIBERTY=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DDYNINST_BUILD_BOOST=ON
parameters: -DROCPROFSYS_USE_PAPI=ON
gpuTarget: ${{ job.target }} -DROCPROFSYS_USE_MPI=ON
componentName: ${{ parameters.componentName }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} multithreadFlag: -- -j32
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
pipModules: ${{ parameters.pipModules }} parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true pipModules: ${{ parameters.pipModules }}
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin gpuTarget: $(JOB_GPU_TARGET)
registerROCmPackages: true
optSymLink: true
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocprofiler_systems_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocprofiler_systems
- job: rocprofiler_systems_test_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: rocprofiler_systems_build_${{ job.target }} timeoutInMinutes: 180
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), pool:
eq(${{ parameters.aggregatePipeline }}, False) name: $(JOB_TEST_POOL)
) demands: firstRenderDeviceAccess
timeoutInMinutes: 180 workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: ROCM_PATH gfx942:
value: $(Agent.BuildDirectory)/rocm JOB_GPU_TARGET: gfx942
pool: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
name: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: registerROCmPackages: true
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - task: Bash@3
dependencyList: ${{ parameters.rocmDependencies }} displayName: ROCm symbolic link
gpuTarget: ${{ job.target }} inputs:
${{ if parameters.triggerDownstreamJobs }}: targetType: inline
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} script: |
- task: Bash@3 sudo rm -rf /opt/rocm
displayName: Add ROCm binaries to PATH sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
inputs: - task: Bash@3
targetType: inline displayName: Add ROCm binaries to PATH
script: | inputs:
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" targetType: inline
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - task: Bash@3
parameters: displayName: Add ROCm compilers to PATH
cmakeSourceDir: $(Agent.BuildDirectory)/s/projects/rocprofiler-systems inputs:
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html targetType: inline
extraBuildFlags: >- script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocprofiler-systems - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCPROFSYS_USE_PYTHON=ON parameters:
-DROCPROFSYS_BUILD_TESTING=ON # build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
-DROCPROFSYS_BUILD_DYNINST=ON extraBuildFlags: >-
-DROCPROFSYS_BUILD_LIBUNWIND=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCPROFSYS_DISABLE_EXAMPLES="openmp-target" -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DDYNINST_BUILD_TBB=ON -DROCPROFSYS_BUILD_TESTING=ON
-DDYNINST_BUILD_ELFUTILS=ON -DROCPROFSYS_BUILD_DYNINST=ON
-DDYNINST_BUILD_LIBIBERTY=ON -DROCPROFSYS_BUILD_LIBUNWIND=ON
-DDYNINST_BUILD_BOOST=ON -DROCPROFSYS_DISABLE_EXAMPLES="openmp-target"
-DROCPROFSYS_USE_PAPI=ON -DDYNINST_BUILD_TBB=ON
-DROCPROFSYS_USE_MPI=ON -DDYNINST_BUILD_ELFUTILS=ON
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/include/rocjpeg -DDYNINST_BUILD_LIBIBERTY=ON
-DGPU_TARGETS=${{ job.target }} -DDYNINST_BUILD_BOOST=ON
-GNinja -DROCPROFSYS_USE_PAPI=ON
- task: Bash@3 -DROCPROFSYS_USE_MPI=ON
displayName: Set up rocprofiler-systems env -DGPU_TARGETS=$(JOB_GPU_TARGET)
inputs: multithreadFlag: -- -j32
targetType: inline - task: Bash@3
script: source $(Agent.BuildDirectory)/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh displayName: Set up rocprofiler-systems env
workingDirectory: $(Agent.BuildDirectory)/rocprofiler-systems/share/rocprofiler-systems inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml targetType: inline
parameters: script: source share/rocprofiler-systems/setup-env.sh
componentName: ${{ parameters.componentName }} workingDirectory: build
testDir: $(Agent.BuildDirectory)/s/build/tests/ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testParameters: '--output-on-failure' parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml componentName: rocprofiler-systems
parameters: - task: Bash@3
gpuTarget: ${{ job.target }} displayName: Remove ROCm binaries from PATH
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml condition: always()
parameters: inputs:
gpuTarget: ${{ job.target }} targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
parameters: - task: Bash@3
aptPackages: ${{ parameters.aptPackages }} displayName: Remove ROCm compilers from PATH
pipModules: ${{ parameters.pipModules }} condition: always()
environment: test inputs:
registerROCmPackages: true targetType: inline
gpuTarget: ${{ job.target }} script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')"
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
registerROCmPackages: true
gpuTarget: $(JOB_GPU_TARGET)
optSymLink: true
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin

View File

@@ -1,39 +1,15 @@
parameters: parameters:
- name: componentName
type: string
default: rocprofiler
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- libgtest-dev
- libdrm-dev - libdrm-dev
- libdw-dev - libdw-dev
- libsystemd-dev - libsystemd-dev
@@ -44,13 +20,13 @@ parameters:
- name: pipModules - name: pipModules
type: object type: object
default: default:
- barectf
- Cppheaderparser
- lxml
- matplotlib
- pandas
- pyyaml==5.3.1 - pyyaml==5.3.1
- Cppheaderparser
- websockets - websockets
- matplotlib
- lxml
- barectf
- pandas
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -59,175 +35,122 @@ parameters:
- ROCdbgapi - ROCdbgapi
- rocm-cmake - rocm-cmake
- rocm-core - rocm-core
- rocminfo
- rocm_smi_lib - rocm_smi_lib
- rocprofiler-register - rocminfo
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register
- roctracer - roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocprofiler
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Agent.BuildDirectory)/rocm
variables: - name: ROCM_PATH
- group: common value: $(Agent.BuildDirectory)/rocm
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
- name: HIP_ROCCLR_HOME workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
- name: ROCM_PATH strategy:
value: $(Agent.BuildDirectory)/rocm matrix:
pool: ${{ variables.MEDIUM_BUILD_POOL }} gfx942:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all pipModules: ${{ parameters.pipModules }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} checkoutRepo: ${{ parameters.checkoutRepo }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml parameters:
parameters: extraBuildFlags: >-
dependencyList: -DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules;$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- gtest -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml -DENABLE_LDCONFIG=OFF
parameters: -DUSE_PROF_API=1
os: ${{ job.os }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: multithreadFlag: -- -j32
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: gpuTarget: $(JOB_GPU_TARGET)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
useAmdclang: false pipModules: ${{ parameters.pipModules }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules;$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/lib64/cmake;$(Agent.BuildDirectory)/rocm/lib64/cmake/hip extraEnvVars:
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor" - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - ROCM_PATH:::/home/user/workspace/rocm
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DENABLE_LDCONFIG=OFF
-DUSE_PROF_API=1
-DGPU_TARGETS=${{ job.target }}
multithreadFlag: -- -j32
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if eq(job.os, 'ubuntu2204') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ROCM_PATH:::/home/user/workspace/rocm
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocprofiler_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: rocprofiler
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
- name: ROCM_PATH JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
value: $(Agent.BuildDirectory)/rocm steps:
- name: LD_LIBRARY_PATH - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
value: $(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests parameters:
pool: ${{ job.target }}_test_pool aptPackages: ${{ parameters.aptPackages }}
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
steps: parameters:
- checkout: none gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - task: Bash@3
preTargetFilter: ${{ parameters.componentName }} displayName: Setup test environment
gpuTarget: ${{ job.target }} inputs:
os: ${{ job.os }} targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml script: |
parameters: sudo rm -rf /opt/rocm
os: ${{ job.os }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} componentName: rocprofilerV1
gpuTarget: ${{ job.target }} testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test" ./run.sh
os: ${{ job.os }} testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1
${{ if parameters.triggerDownstreamJobs }}: testParameters: ''
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: rocprofilerV2
componentName: rocprofilerV1 testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests" share/rocprofiler/tests/runUnitTests
testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1 testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testExecutable: ./run.sh testDir: $(Agent.BuildDirectory)/rocm
testParameters: '' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testPublishResults: false parameters:
os: ${{ job.os }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml pipModules: ${{ parameters.pipModules }}
parameters: environment: test
componentName: rocprofilerV2 gpuTarget: $(JOB_GPU_TARGET)
testDir: $(Agent.BuildDirectory)/rocm optSymLink: true
testExecutable: share/rocprofiler/tests/runUnitTests
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -40,22 +35,12 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocr_debug_agent_build - job: rocr_debug_agent
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
pool: pool: ${{ variables.LOW_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -70,7 +55,6 @@ jobs:
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -82,54 +66,54 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocr_debug_agent_testing
- job: rocr_debug_agent_test_${{ job.target }} dependsOn: rocr_debug_agent
dependsOn: rocr_debug_agent_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: componentName: rocr_debug_agent-tests
componentName: rocr_debug_agent-tests extraBuildFlags: >-
extraBuildFlags: >- -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'
cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' cmakeSourceDir: '.'
cmakeSourceDir: '.' installEnabled: false
installEnabled: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: rocr_debug_agent
componentName: rocr_debug_agent testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'
testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} environment: test
environment: test gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}

View File

@@ -1,43 +1,18 @@
parameters: parameters:
- name: componentName
type: string
default: roctracer
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake - cmake
- doxygen - doxygen
- graphviz - graphviz
- libdrm-amdgpu-dev
- ninja-build - ninja-build
- zlib1g-dev - python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -60,146 +35,96 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: roctracer
- job: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
${{ if parameters.buildDependsOn }}: - group: common
dependsOn: - template: /.azuredevops/variables-global.yml
- ${{ each build in parameters.buildDependsOn }}: - name: HIP_ROCCLR_HOME
- ${{ build }}_${{ job.os }}_${{ job.target }} value: $(Build.BinariesDirectory)/rocm
variables: pool: ${{ variables.LOW_BUILD_POOL }}
- group: common workspace:
- template: /.azuredevops/variables-global.yml clean: all
pool: strategy:
vmImage: ${{ variables.BASE_BUILD_POOL }} matrix:
${{ if eq(job.os, 'almalinux8') }}: gfx942:
container: JOB_GPU_TARGET: gfx942
image: rocmexternalcicd.azurecr.io/manylinux228:latest steps:
endpoint: ContainerService3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all aptPackages: ${{ parameters.aptPackages }}
steps: pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml dependencyList: ${{ parameters.rocmDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml extraBuildFlags: >-
parameters: -DCMAKE_BUILD_TYPE=release
checkoutRef: ${{ parameters.checkoutRef }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
os: ${{ job.os }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: -GNinja
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
# the linker flags will not affect ubuntu2204 builds as the paths do not exist parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
os: ${{ job.os }} parameters:
useAmdclang: false gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_BUILD_TYPE=release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/lib64/cmake/hip aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm pipModules: ${{ parameters.pipModules }}
-DGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
componentName: ${{ parameters.componentName }}
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: roctracer_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: dependsOn: roctracer
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), pool: $(JOB_TEST_POOL)
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
pipModules: ${{ parameters.pipModules }} parameters:
packageManager: ${{ job.packageManager }} gpuTarget: $(JOB_GPU_TARGET)
registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
preTargetFilter: ${{ parameters.componentName }} dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: componentName: roctracer
checkoutRef: ${{ parameters.checkoutRef }} testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh
dependencyList: ${{ parameters.rocmTestDependencies }} testParameters: ''
gpuTarget: ${{ job.target }} testDir: $(Agent.BuildDirectory)
os: ${{ job.os }} testPublishResults: false
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml pipModules: ${{ parameters.pipModules }}
parameters: environment: test
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh
testParameters: ''
testDir: $(Agent.BuildDirectory)
testPublishResults: false
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
registerROCmPackages: true

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -34,7 +29,6 @@ parameters:
- clr - clr
- half - half
- llvm-project - llvm-project
- rocm-cmake
- rocminfo - rocminfo
- ROCR-Runtime - ROCR-Runtime
- name: rocmTestDependencies - name: rocmTestDependencies
@@ -50,151 +44,140 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rpp
- job: rpp_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.LOW_BUILD_POOL }}
- name: ROCM_PATH workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
pool: strategy:
vmImage: ${{ variables.BASE_BUILD_POOL }} matrix:
workspace: gfx942:
clean: all JOB_GPU_TARGET: gfx942
steps: steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: extraBuildFlags: >-
extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release -DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include
-DGPU_TARGETS=${{ job.target }} -DCMAKE_BUILD_TYPE=Release
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) -DGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rpp_testing
- job: rpp_test_${{ job.target }} dependsOn: rpp
dependsOn: rpp_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: LD_LIBRARY_PATH
eq(${{ parameters.aggregatePipeline }}, False) value: $(Agent.BuildDirectory)/rocm/lib;$(Agent.BuildDirectory)/rocm/llvm/lib
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: ROCM_PATH matrix:
value: $(Agent.BuildDirectory)/rocm gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} # Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md
# Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md - task: Bash@3
- task: Bash@3 displayName: Build and install Turbo JPEG
displayName: Build and install Turbo JPEG inputs:
inputs: targetType: 'inline'
targetType: 'inline' script: |
script: | sudo apt-get install nasm
sudo apt-get install nasm sudo apt-get install wget
sudo apt-get install wget git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git
git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git cd libjpeg-turbo
cd libjpeg-turbo mkdir build
mkdir build cd build
cd build cmake -DCMAKE_INSTALL_PREFIX=/usr \
cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_BUILD_TYPE=RELEASE \ -DENABLE_STATIC=FALSE \
-DENABLE_STATIC=FALSE \ -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
-DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \ -DWITH_JPEG8=TRUE \
-DWITH_JPEG8=TRUE \ ..
.. make -j$nproc
make -j$nproc sudo make install
sudo make install - task: Bash@3
- task: Bash@3 displayName: Build and install Nifti
displayName: Build and install Nifti inputs:
inputs: targetType: 'inline'
targetType: 'inline' script: |
script: | git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git
git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git cd nifti_clib
cd nifti_clib mkdir build
mkdir build cd build
cd build cmake ..
cmake .. sudo make -j$nproc install
sudo make -j$nproc install - task: Bash@3
- task: Bash@3 displayName: Build rpp tests
displayName: Build rpp tests inputs:
inputs: targetType: 'inline'
targetType: 'inline' script: |
script: | sudo rm -rf /opt/rocm
mkdir rpp-tests sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
cd rpp-tests mkdir rpp-tests
cmake $(Agent.BuildDirectory)/rocm/share/rpp/test \ cd rpp-tests
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \ cmake /opt/rocm/share/rpp/test \
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
componentName: rpp parameters:
testExecutable: 'CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest' componentName: rpp
testDir: 'rpp-tests' testExecutable: 'export PATH=$(Agent.BuildDirectory)/rocm/llvm/bin:$PATH; CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testDir: 'rpp-tests'
parameters: - script: sudo rm /opt/rocm
aptPackages: ${{ parameters.aptPackages }} condition: always()
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -40,6 +40,7 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
- task: Bash@3 - task: Bash@3
displayName: Add ROCm binaries to PATH displayName: Add ROCm binaries to PATH
inputs: inputs:

View File

@@ -1,63 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: catch2Version
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: catch2_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Clone catch2 ${{ parameters.catch2Version }}
inputs:
targetType: inline
script: git clone https://github.com/catchorg/Catch2.git -b ${{ parameters.catch2Version }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/Catch2/build
cmakeSourceDir: $(Agent.BuildDirectory)/Catch2
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -1,63 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: cli11Version
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: cli11_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Clone cli11 ${{ parameters.cli11Version }}
inputs:
targetType: inline
script: git clone https://github.com/CLIUtils/CLI11.git -b ${{ parameters.cli11Version }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/CLI11/build
cmakeSourceDir: $(Agent.BuildDirectory)/CLI11
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -1,67 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: fmtlibVersion
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- libfmt-dev
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: fmtlib_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Clone fmtlib ${{ parameters.fmtlibVersion }}
inputs:
targetType: inline
script: git clone https://github.com/fmtlib/fmt.git -b ${{ parameters.fmtlibVersion }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/fmt/build
cmakeSourceDir: $(Agent.BuildDirectory)/fmt
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DFMT_SYSTEM_HEADERS=ON
-DFMT_INSTALL=ON
-DFMT_TEST=OFF
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -38,7 +38,6 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
cmakeBuildDir: $(Agent.BuildDirectory)/grpc/build cmakeBuildDir: $(Agent.BuildDirectory)/grpc/build
cmakeSourceDir: $(Agent.BuildDirectory)/grpc
extraBuildFlags: >- extraBuildFlags: >-
-DgRPC_INSTALL=ON -DgRPC_INSTALL=ON
-DgRPC_BUILD_TESTS=OFF -DgRPC_BUILD_TESTS=OFF

View File

@@ -11,54 +11,35 @@ parameters:
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- cmake
- git - git
- cmake
- ninja-build - ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: gtest
- job: gtest_${{ job.os }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool:
pool: vmImage: ${{ variables.BASE_BUILD_POOL }}
vmImage: 'ubuntu-22.04' workspace:
${{ if eq(job.os, 'almalinux8') }}: clean: all
container: steps:
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
endpoint: ContainerService3 parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
steps: - task: Bash@3
- checkout: none displayName: 'git clone gtest'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml inputs:
parameters: targetType: inline
aptPackages: ${{ parameters.aptPackages }} script: git clone -b ${{ parameters.gtestVersion }} https://github.com/google/googletest --depth=1 --shallow-submodules --recurse-submodules
packageManager: ${{ job.packageManager }} workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- task: Bash@3 parameters:
displayName: Clone GTest ${{ parameters.gtestVersion }} cmakeBuildDir: $(Agent.BuildDirectory)/googletest/build
inputs: extraBuildFlags: >-
targetType: inline -DGTEST_FORCE_SHARED_CRT=ON
script: git clone https://github.com/google/googletest -b ${{ parameters.gtestVersion }} --depth=1 --shallow-submodules --recurse-submodules -DCMAKE_DEBUG_POSTFIX=d
workingDirectory: $(Agent.BuildDirectory) -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/googletest/build
cmakeSourceDir: $(Agent.BuildDirectory)/googletest
useAmdclang: false
extraBuildFlags: >-
-DGTEST_FORCE_SHARED_CRT=ON
-DCMAKE_DEBUG_POSTFIX=d
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -1,64 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: libdivideVersion
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: libdivide_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Clone libdivide ${{ parameters.libdivideVersion }}
inputs:
targetType: inline
script: git clone https://github.com/ridiculousfish/libdivide.git -b ${{ parameters.libdivideVersion }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/libdivide/build
cmakeSourceDir: $(Agent.BuildDirectory)/libdivide
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DLIBDIVIDE_BUILD_TESTS=OFF
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -1,71 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: spdlogVersion
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: spdlog_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- fmtlib
- task: Bash@3
displayName: Clone spdlog ${{ parameters.spdlogVersion }}
inputs:
targetType: inline
script: git clone https://github.com/gabime/spdlog.git -b ${{ parameters.spdlogVersion }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/spdlog/build
cmakeSourceDir: $(Agent.BuildDirectory)/spdlog
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/vendor
-DCMAKE_BUILD_TYPE=Release
-DSPDLOG_USE_STD_FORMAT=OFF
-DSPDLOG_FMT_EXTERNAL_HO=ON
-DSPDLOG_INSTALL=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -1,66 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: yamlcppVersion
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- git
- ninja-build
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt}
- { os: almalinux8, packageManager: dnf}
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: yamlcpp_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- checkout: none
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Clone yaml-cpp ${{ parameters.yamlcppVersion }}
inputs:
targetType: inline
script: git clone https://github.com/jbeder/yaml-cpp.git -b ${{ parameters.yamlcppVersion }}
workingDirectory: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeBuildDir: $(Agent.BuildDirectory)/yaml-cpp/build
cmakeSourceDir: $(Agent.BuildDirectory)/yaml-cpp
useAmdclang: false
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DYAML_CPP_BUILD_TOOLS=OFF
-DYAML_BUILD_SHARED_LIBS=OFF
-DYAML_CPP_INSTALL=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}

View File

@@ -4,80 +4,80 @@ parameters:
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
- autoconf - build-essential
- git
- ninja-build
- openjdk-8-jdk
- ca-certificates
- bc - bc
- bridge-utils - bridge-utils
- build-essential
- ca-certificates
- ccache
- devscripts - devscripts
- dkms - dkms
- doxygen - doxygen
- fakeroot
- ffmpeg
- gfortran
- git
- gnutls-bin
- libamd2
- libavformat-dev
- libblas3
- libcamd2
- libccolamd2
- libcholmod3
- libcolamd2
- libdpkg-dev - libdpkg-dev
- libdpkg-perl - libdpkg-perl
- libdrm-amdgpu1
- libdrm-dev
- libelf-dev - libelf-dev
- libfreetype-dev
- libgfortran5
- libgomp1
- libjpeg-dev
- libjpeg-turbo-official
- liblapack-dev
- liblapack3
- libmetis5
- libncurses-dev
- libnuma-dev
- libopenblas-dev
- libpth-dev
- libquadmath0
- libssh-dev
- libstdc++-12-dev
- libsuitesparseconfig5
- libswscale-dev
- libtinfo-dev
- libunwind-dev
- libwebp-dev
- llvm-dev
- ncurses-base
- ninja-build
- numactl
- openjdk-8-jdk
- python-is-python3
- python3-dev - python3-dev
- python3-pip - python3-pip
- python3-venv - python3-venv
- wget
- ncurses-base
- libncurses-dev
- numactl
- libnuma-dev
- libssh-dev
- libunwind-dev
- llvm-dev
- libpth-dev
- qemu-kvm - qemu-kvm
- re2c - re2c
- subversion - subversion
- wget - fakeroot
- autoconf
- libgomp1
- libtinfo-dev
- libcholmod3
- libsuitesparseconfig5
- libstdc++-12-dev
- python-is-python3
- gfortran
- libgfortran5
- liblapack3
- libblas3
- libquadmath0
- libmetis5
- libamd2
- libcamd2
- libcolamd2
- libccolamd2
- libdrm-amdgpu1
- ccache
- zip - zip
- libjpeg-turbo-official
- libjpeg-dev
- libwebp-dev
- libfreetype-dev
- gnutls-bin
- ffmpeg
- libopenblas-dev
- liblapack-dev
- libswscale-dev
- libavformat-dev
- name: pipModules - name: pipModules
type: object type: object
default: default:
- cmake
- astunparse - astunparse
- "expecttest>=0.3.0" - expecttest>=0.2.1
- hypothesis - hypothesis
- numpy - numpy
- psutil - psutil
- pyyaml - pyyaml
- requests - requests
- setuptools==75.8.0 - setuptools
- types-dataclasses - types-dataclasses
- "typing-extensions>=4.10.0" - typing-extensions>=4.8.0
- "sympy>=1.13.3" - sympy>=1.13.0
- filelock - filelock
- networkx - networkx
- jinja2 - jinja2
@@ -85,8 +85,8 @@ parameters:
- lintrunner - lintrunner
- ninja - ninja
- packaging - packaging
- "optree>=0.13.0" - optree>=0.13.0
- "click>=8.0.3" - click>=8.0.3
# list for vision # list for vision
- auditwheel - auditwheel
- future - future
@@ -97,39 +97,36 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- rocminfo
- MIOpen
- clr - clr
- hipBLAS - hipBLAS
- hipBLASLt
- hipFFT - hipFFT
- hipRAND - hipRAND
- hipSOLVER - hipSOLVER
- hipSPARSE - hipSPARSE
- hipSPARSELt - ROCR-Runtime
- llvm-project - llvm-project
- MIOpen
- rccl - rccl
- rocBLAS - rocBLAS
- rocFFT - rocFFT
- rocm-core
- rocminfo
- rocm_smi_lib - rocm_smi_lib
- rocPRIM
- rocprofiler-register
- rocRAND - rocRAND
- ROCR-Runtime
- rocSOLVER - rocSOLVER
- rocSPARSE - rocSPARSE
- roctracer - roctracer
- hipBLASLt
- rocprofiler-register
- rocm-core
- rocPRIM
# below are additional dependencies not called out by build script, but throw errors during cmake # below are additional dependencies not called out by build script, but throw errors during cmake
- composable_kernel
- hipBLAS-common
- hipCUB - hipCUB
- rocThrust - rocThrust
- hipBLAS-common
- composable_kernel
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
# rocroller.so needed and is not included in the wheel
- hipBLASLt
- rocminfo - rocminfo
# Reference on what tests to run for torchvision found in private repo: # Reference on what tests to run for torchvision found in private repo:
# https://github.com/ROCm/rocAutomation/blob/jenkins-pipelines/pytorch/pytorch_ci/test_pytorch_test1.sh#L54 # https://github.com/ROCm/rocAutomation/blob/jenkins-pipelines/pytorch/pytorch_ci/test_pytorch_test1.sh#L54
@@ -173,13 +170,13 @@ jobs:
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
# various flags/parameters expected by bash scripts in pytorch repo's .ci directory # various flags/parameters expected by bash scripts in pytorch repo's .ci directory
- name: ROCM_VERSION - name: ROCM_VERSION
value: 6.5.0 value: 6.3.0
- name: ROCM_PATH - name: ROCM_PATH
value: /opt/rocm value: /opt/rocm
- name: DESIRED_CUDA - name: DESIRED_CUDA
value: 6.5.0 value: 6.3.0
- name: MAGMA_ROCM - name: MKLROOT
value: 6.3 value: /opt/intel
- name: DESIRED_PYTHON - name: DESIRED_PYTHON
value: 3.10 value: 3.10
- name: PYTORCH_ROOT - name: PYTORCH_ROOT
@@ -219,8 +216,8 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
gpuTarget: $(JOB_GPU_TARGET) gpuTarget: $(JOB_GPU_TARGET)
setupHIPLibrarySymlinks: true
- task: Bash@3 - task: Bash@3
displayName: ROCm symbolic link displayName: ROCm symbolic link
inputs: inputs:
@@ -242,6 +239,12 @@ jobs:
git clone https://github.com/pytorch/builder.git --depth=1 --recurse-submodules git clone https://github.com/pytorch/builder.git --depth=1 --recurse-submodules
sudo ln -s $(Build.SourcesDirectory)/builder /builder sudo ln -s $(Build.SourcesDirectory)/builder /builder
workingDirectory: $(Build.SourcesDirectory) workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3
displayName: Temporarily Patch CK Submodule
inputs:
targetType: inline
script: git pull origin develop
workingDirectory: $(Build.SourcesDirectory)/pytorch/third_party/composable_kernel
- task: Bash@3 - task: Bash@3
displayName: Install patchelf displayName: Install patchelf
inputs: inputs:
@@ -249,6 +252,13 @@ jobs:
script: | script: |
sudo bash pytorch/.ci/docker/common/install_patchelf.sh sudo bash pytorch/.ci/docker/common/install_patchelf.sh
workingDirectory: $(Build.SourcesDirectory) workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3
displayName: Install mkl dependency for magma
inputs:
targetType: inline
script: |
sudo bash pytorch/.ci/docker/common/install_mkl.sh
workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3 - task: Bash@3
displayName: Install rocm drm displayName: Install rocm drm
inputs: inputs:
@@ -261,20 +271,14 @@ jobs:
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
sudo bash pytorch/.ci/docker/common/install_rocm_magma.sh $(MAGMA_ROCM) sudo PYTORCH_ROCM_ARCH=$(JOB_GPU_TARGET) MKLROOT=$(MKLROOT) bash pytorch/.ci/docker/common/install_rocm_magma.sh
workingDirectory: $(Build.SourcesDirectory) workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3
displayName: Install targeted typing_extensions for build
inputs:
targetType: inline
script: pip install --target=$(Build.SourcesDirectory)/pytorch/torch/.. typing_extensions
- task: Bash@3 - task: Bash@3
displayName: Run ROCm Build Script displayName: Run ROCm Build Script
inputs: inputs:
targetType: inline targetType: inline
script: >- script: >-
sudo sudo
PYTHONPATH=/home/AzDevOps/.local/lib/python3.10/site-packages:/usr/lib/python3/dist-packages
DESIRED_CUDA=$(DESIRED_CUDA) DESIRED_CUDA=$(DESIRED_CUDA)
PYTORCH_ROCM_ARCH=$(JOB_GPU_TARGET) PYTORCH_ROCM_ARCH=$(JOB_GPU_TARGET)
GPU_TARGET=$(JOB_GPU_TARGET) GPU_TARGET=$(JOB_GPU_TARGET)
@@ -282,6 +286,7 @@ jobs:
PYTORCH_ROOT=$(PYTORCH_ROOT) PYTORCH_ROOT=$(PYTORCH_ROOT)
CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
DESIRED_DEVTOOLSET=$(DESIRED_DEVTOOLSET) DESIRED_DEVTOOLSET=$(DESIRED_DEVTOOLSET)
TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET)
PYTORCH_BUILD_VERSION=$(cat $(Build.SourcesDirectory)/pytorch/version.txt | cut -da -f1) PYTORCH_BUILD_VERSION=$(cat $(Build.SourcesDirectory)/pytorch/version.txt | cut -da -f1)
PYTORCH_BUILD_NUMBER=$(date -u +%Y%m%d) PYTORCH_BUILD_NUMBER=$(date -u +%Y%m%d)
SKIP_ALL_TESTS=1 SKIP_ALL_TESTS=1
@@ -322,6 +327,8 @@ jobs:
inputs: inputs:
targetType: inline targetType: inline
script: >- script: >-
TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET)
TORCHVISION_PACKAGE_NAME=torchvision.$(ROCM_BRANCH).$(JOB_GPU_TARGET)
PYTORCH_VERSION=$(cat $(Build.SourcesDirectory)/pytorch/version.txt | cut -da -f1)post$(date -u +%Y%m%d) PYTORCH_VERSION=$(cat $(Build.SourcesDirectory)/pytorch/version.txt | cut -da -f1)post$(date -u +%Y%m%d)
BUILD_VERSION=$(cat $(Build.SourcesDirectory)/vision/version.txt | cut -da -f1)post$(date -u +%Y%m%d) BUILD_VERSION=$(cat $(Build.SourcesDirectory)/vision/version.txt | cut -da -f1)post$(date -u +%Y%m%d)
python3 setup.py bdist_wheel python3 setup.py bdist_wheel
@@ -397,15 +404,18 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
displayName: 'Download Pipeline Wheel Files' displayName: 'Download Pipeline Wheel Files'
retryCountOnTaskFailure: 3
inputs: inputs:
itemPattern: '**/*.whl' itemPattern: '**/*$(JOB_GPU_TARGET)*.whl'
targetPath: $(Agent.BuildDirectory) targetPath: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: $(JOB_GPU_TARGET) gpuTarget: $(JOB_GPU_TARGET)
dependencySource: staging
skipLlvmSymlink: true
# get sources to run test scripts # get sources to run test scripts
- task: Bash@3 - task: Bash@3
displayName: git clone upstream pytorch displayName: git clone upstream pytorch

View File

@@ -1,23 +1,10 @@
parameters: parameters:
# using a parameter instead of a strategy matrix allows job variables to be eval'd at compile-time rather than runtime - name: dependencySource
- name: jobList type: string
type: object default: staging
default: values:
- { os: ubuntu2204, packageManager: apt, target: gfx942 } - staging
- { os: ubuntu2204, packageManager: apt, target: gfx90a } - mainline
- { os: ubuntu2204, packageManager: apt, target: gfx1201 }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: ubuntu2404, packageManager: apt, target: gfx942 }
- { os: ubuntu2404, packageManager: apt, target: gfx90a }
- { os: ubuntu2404, packageManager: apt, target: gfx1201 }
- { os: ubuntu2404, packageManager: apt, target: gfx1100 }
- { os: ubuntu2404, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1201 }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -25,9 +12,9 @@ parameters:
- amdsmi - amdsmi
- aomp-extras - aomp-extras
- aomp - aomp
- clr
- composable_kernel - composable_kernel
- half - half
- HIP
- hip-tests - hip-tests
- hipBLAS - hipBLAS
- hipBLAS-common - hipBLAS-common
@@ -91,149 +78,62 @@ schedules:
always: true always: true
jobs: jobs:
- ${{ each job in parameters.jobList }}: - job: rocm_nightly
- job: nightly_${{ job.os }}_${{ job.target }} variables:
timeoutInMinutes: 120 - group: common
variables: - template: /.azuredevops/variables-global.yml
- group: common pool: ${{ variables.MEDIUM_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
pool: ${{ variables.MEDIUM_BUILD_POOL }} clean: all
workspace: strategy:
clean: all matrix:
steps: gfx942:
- task: DeleteFiles@1 JOB_GPU_TARGET: gfx942
displayName: 'Cleanup checkout space' steps:
inputs: - task: DeleteFiles@1
SourceFolder: '$(Agent.BuildDirectory)/s' displayName: 'Cleanup checkout space'
Contents: '**/*' inputs:
- task: DeleteFiles@1 SourceFolder: '$(Agent.BuildDirectory)/s'
displayName: 'Cleanup Staging Area' Contents: '**/*'
inputs: - task: DeleteFiles@1
SourceFolder: '$(Build.ArtifactStagingDirectory)' displayName: 'Cleanup Staging Area'
Contents: '/**/*' inputs:
RemoveDotFiles: true SourceFolder: '$(Build.ArtifactStagingDirectory)'
- script: df -h Contents: '/**/*'
displayName: System disk space before ROCm RemoveDotFiles: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - script: df -h
parameters: displayName: System disk space before ROCm
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} parameters:
gpuTarget: ${{ job.target }} dependencySource: ${{ parameters.dependencySource }}
- script: df -h dependencyList: ${{ parameters.rocmDependencies }}
displayName: System disk space after ROCm gpuTarget: $(JOB_GPU_TARGET)
- script: du -sh $(Agent.BuildDirectory)/rocm skipLibraryLinking: true
displayName: Uncompressed ROCm size skipLlvmSymlink: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - script: df -h
- task: ArchiveFiles@2 displayName: System disk space after ROCm
displayName: Compress rocm-nightly - script: du -sh $(Agent.BuildDirectory)/rocm
inputs: displayName: Uncompressed ROCm size
rootFolderOrFile: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
includeRootFolder: false - task: ArchiveFiles@2
archiveType: tar displayName: Compress rocm-nightly
tarCompression: gz inputs:
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.BuildNumber)_${{ job.os }}_${{ job.target }}.tar.gz rootFolderOrFile: $(Agent.BuildDirectory)/rocm
- script: du -sh $(Build.ArtifactStagingDirectory) includeRootFolder: false
displayName: Compressed ROCm size archiveType: tar
- task: PublishPipelineArtifact@1 tarCompression: gz
displayName: 'Publish ROCm Nightly Artifact' archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_$(JOB_GPU_TARGET).tar.gz
retryCountOnTaskFailure: 3 - script: du -sh $(Build.ArtifactStagingDirectory)
inputs: displayName: Compressed ROCm size
targetPath: '$(Build.ArtifactStagingDirectory)' - task: PublishPipelineArtifact@1
- task: Bash@3 displayName: 'Publish ROCm Nightly Artifact'
displayName: Save pipeline artifact file name retryCountOnTaskFailure: 3
inputs: inputs:
workingDirectory: $(Pipeline.Workspace) targetPath: '$(Build.ArtifactStagingDirectory)'
targetType: inline - task: Bash@3
script: echo "$(Build.DefinitionName)_$(Build.BuildNumber)_${{ job.os }}_${{ job.target }}.tar.gz" >> pipelineArtifacts.txt displayName: Save pipeline artifact file name
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml inputs:
- ${{ if eq(job.packageManager, 'apt') }}: workingDirectory: $(Pipeline.Workspace)
- task: Bash@3 targetType: inline
displayName: Create Dockerfile script: echo "$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_$(JOB_GPU_TARGET).tar.gz" >> pipelineArtifacts.txt
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
workingDirectory: $(Agent.BuildDirectory)
targetType: inline
script: |
cat <<'EOF' > Dockerfile
${{ iif(eq(job.os, 'ubuntu2204'), 'FROM ubuntu:22.04', '') }}
${{ iif(eq(job.os, 'ubuntu2404'), 'FROM ubuntu:24.04', '') }}
WORKDIR /root
RUN mkdir rocm
RUN apt update \
&& apt upgrade -y \
&& apt install -y cmake curl git gcc g++ gpg lsb-release lsof ninja-build pkg-config python3 python3-pip wget zip libdrm-dev libelf-dev libgtest-dev libhsakmt-dev libhwloc-dev libnuma-dev libstdc++-12-dev libtbb-dev jq \
&& apt clean all
RUN PACKAGE_NAME=$(curl -s https://repo.radeon.com/rocm/apt/latest/pool/main/h/hsa-amd-aqlprofile/ | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb") \
&& wget -nv --retry-connrefused https://repo.radeon.com/rocm/apt/latest/pool/main/h/hsa-amd-aqlprofile/$PACKAGE_NAME \
&& mkdir hsa-amd-aqlprofile \
&& dpkg-deb -R $PACKAGE_NAME hsa-amd-aqlprofile \
&& cp -R hsa-amd-aqlprofile/opt/rocm-*/* rocm
RUN ARTIFACT_URL="https://dev.azure.com/ROCm-CI/ROCm-CI/_apis/build/builds/$(Build.BuildId)/artifacts?artifactName=nightly${{ job.os }}${{ job.target }}&api-version=7.1" \
&& DOWNLOAD_URL=$(curl -s $ARTIFACT_URL | jq ".resource.downloadUrl" | tr -d '"') \
&& wget -nv --retry-connrefused $DOWNLOAD_URL -O nightly.zip \
&& unzip nightly.zip \
&& tar -xf nightly${{ job.os }}${{ job.target }}/rocm-nightly*${{ job.os }}*${{ job.target }}*.tar.gz -C rocm
RUN echo /root/rocm/lib | tee /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/llvm/lib | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/lib64 | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/llvm/lib64 | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN ldconfig -v
ENV PATH="$PATH:/root/rocm/bin"
ENTRYPOINT ["/bin/bash"]
EOF
cat Dockerfile
- ${{ elseif eq(job.packageManager, 'dnf') }}:
- task: Bash@3
displayName: Create Dockerfile
inputs:
workingDirectory: $(Agent.BuildDirectory)
targetType: inline
script: |
cat <<'EOF' > Dockerfile
${{ iif(eq(job.os, 'almalinux8'), 'FROM almalinux:8', '') }}
WORKDIR /root
RUN mkdir rocm
RUN dnf install -y cmake curl git gcc gcc-c++ gnupg2 redhat-lsb-core lsof pkgconf python3 python3-pip wget zip libdrm-devel elfutils-libelf-devel numactl-devel libstdc++-devel tbb-devel jq \
&& dnf clean all
RUN PACKAGE_NAME=$(curl -s https://repo.radeon.com/rocm/rhel8/$(REPO_RADEON_VERSION)/main/ | grep -oP "hsa-amd-aqlprofile-[^\"]+\.rpm" | head -n1) \
&& wget -nv --retry-connrefused https://repo.radeon.com/rocm/rhel8/$(REPO_RADEON_VERSION)/main/$PACKAGE_NAME \
&& mkdir hsa-amd-aqlprofile \
&& dnf -y install rpm-build cpio \
&& rpm2cpio $PACKAGE_NAME | (cd hsa-amd-aqlprofile && cpio -idmv) \
&& cp -R hsa-amd-aqlprofile/opt/rocm-*/* rocm
RUN ARTIFACT_URL="https://dev.azure.com/ROCm-CI/ROCm-CI/_apis/build/builds/$(Build.BuildId)/artifacts?artifactName=nightly${{ job.os }}${{ job.target }}&api-version=7.1" \
&& DOWNLOAD_URL=$(curl -s $ARTIFACT_URL | jq ".resource.downloadUrl" | tr -d '"') \
&& wget -nv --retry-connrefused $DOWNLOAD_URL -O nightly.zip \
&& UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE unzip nightly.zip \
&& tar -xf nightly${{ job.os }}${{ job.target }}/rocm-nightly*${{ job.os }}*${{ job.target }}*.tar.gz -C rocm
RUN echo /root/rocm/lib | tee /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/llvm/lib | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/lib64 | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN echo /root/rocm/llvm/lib64 | tee -a /etc/ld.so.conf.d/rocm-ci.conf
RUN ldconfig -v
ENV PATH="$PATH:/root/rocm/bin"
ENTRYPOINT ["/bin/bash"]
EOF
cat Dockerfile
- task: Docker@2
displayName: Build and upload Docker image
retryCountOnTaskFailure: 3
inputs:
containerRegistry: ContainerService3
repository: 'nightly-${{ job.os }}-${{ job.target }}'
Dockerfile: '$(Agent.BuildDirectory)/Dockerfile'
buildContext: '$(Agent.BuildDirectory)'
- task: Bash@3
displayName: '!! Docker Run Command !!'
inputs:
targetType: inline
script: echo "docker run -it --network=host --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined rocmexternalcicd.azurecr.io/nightly-${{ job.os }}-${{ job.target }}:$(Build.BuildId)" | tr '[:upper:]' '[:lower:]'

View File

@@ -1,68 +0,0 @@
#!/usr/bin/env python3
import json
import requests
import argparse
from pathlib import Path
def get_builds(entries, gpu_target, output):
already_downloaded = {}
for entry in entries:
already_downloaded = _get_builds(entry, gpu_target, already_downloaded, output)
def _get_builds(entry, gpu_target, already_downloaded, output):
print()
print(f"{entry['buildNumber']} - {entry['buildId']} - {entry['repoName']}")
if already_downloaded.get(entry['buildId']):
print('Skipping, already downloaded from build ' + entry['buildId'])
return already_downloaded
artifacts_url = f"https://dev.azure.com/ROCm-CI/ROCm-CI/_apis/build/builds/{entry['buildId']}/artifacts?api-version=7.1"
artifacts = requests.get(artifacts_url).json()
for artifact in artifacts['value']:
if 'gfx' in artifact['name'] and gpu_target not in artifact['name']:
continue
print('Artifact name: ' + artifact['name'])
print('File size: ~' +
str(round(int(artifact['resource']['properties']['artifactsize'])/1000000, 2)) + ' MB')
download_url = f"{artifact['resource']['downloadUrl']}"
download = requests.get(download_url)
zip_file = Path(output) / f"{artifact['name']}.zip"
with open(zip_file, 'wb') as f:
f.write(download.content)
already_downloaded[entry['buildId']] = True
return already_downloaded
def main():
parser = argparse.ArgumentParser(description="Command line tool for downloading external ci artifacts")
parser.add_argument('--target', type=str, dest="target", choices=["gfx90a", "gfx942"], help="Target gfx")
parser.add_argument('--manifest', type=str, dest="manifest", help='JSON manifest url or path to local manifest')
parser.add_argument('--output_dir', type=str, dest="output", help='Path to download directory')
args = parser.parse_args()
manifest = args.manifest
gpu_target = args.target
if not gpu_target:
print("Enter the GPU target (gfx942, gfx90a)")
gpu_target = input()
if not manifest:
print("Enter the manifest file (URL or local path)")
manifest = input()
if 'http' in manifest:
data = requests.get(manifest).json()
else:
with open(manifest, 'r') as f:
data = json.load(f)
entries = [e for e in data['current']]
entries.extend([e for e in data['dependencies']])
get_builds(entries, gpu_target, args.output)
if __name__ == "__main__":
main()

View File

@@ -3,16 +3,7 @@ variables:
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
parameters: parameters:
- name: aompRef - name: checkoutRef
type: string
default: refs/tags/$(LATEST_RELEASE_TAG)
- name: extrasRef
type: string
default: refs/tags/$(LATEST_RELEASE_TAG)
- name: flangRef
type: string
default: refs/tags/$(LATEST_RELEASE_TAG)
- name: llvmRef
type: string type: string
default: refs/tags/$(LATEST_RELEASE_TAG) default: refs/tags/$(LATEST_RELEASE_TAG)
@@ -22,22 +13,22 @@ resources:
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/aomp name: ROCm/aomp
ref: ${{ parameters.aompRef }} ref: ${{ parameters.checkoutRef }}
- repository: aomp-extras_repo - repository: aomp-extras_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/aomp-extras name: ROCm/aomp-extras
ref: ${{ parameters.extrasRef }} ref: ${{ parameters.checkoutRef }}
- repository: flang_repo - repository: flang_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/flang name: ROCm/flang
ref: ${{ parameters.flangRef }} ref: ${{ parameters.checkoutRef }}
- repository: llvm-project_repo - repository: llvm-project_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/llvm-project name: ROCm/llvm-project
ref: ${{ parameters.llvmRef }} ref: amd-staging
trigger: none trigger: none
pr: none pr: none
@@ -46,4 +37,4 @@ jobs:
- template: ${{ variables.CI_COMPONENT_PATH }}/aomp.yml - template: ${{ variables.CI_COMPONENT_PATH }}/aomp.yml
parameters: parameters:
checkoutRepo: aomp_repo checkoutRepo: aomp_repo
checkoutRef: ${{ parameters.aompRef }} checkoutRef: ${{ parameters.checkoutRef }}

View File

@@ -1,23 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: catch2Version
type: string
default: "v3.7.0"
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/catch2.yml
parameters:
catch2Version: ${{ parameters.catch2Version }}

View File

@@ -1,23 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: cli11Version
type: string
default: "main"
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/cli11.yml
parameters:
cli11Version: ${{ parameters.cli11Version }}

View File

@@ -28,22 +28,12 @@ resources:
endpoint: ROCm endpoint: ROCm
name: ROCm/hipother name: ROCm/hipother
ref: ${{ parameters.checkoutRef }} ref: ${{ parameters.checkoutRef }}
pipelines:
- pipeline: hip_pipeline
source: \experimental\HIP
trigger: true
- pipeline: hipother_pipeline
source: \experimental\hipother
trigger: true
trigger: none trigger: none
pr: none pr: none
jobs: jobs:
- ${{ if eq(variables['Build.Reason'], 'ResourceTrigger') }}: - template: ${{ variables.CI_COMPONENT_PATH }}/HIP.yml
- template: ${{ variables.CI_COMPONENT_PATH }}/copyHIP.yml@pipelines_repo parameters:
- ${{ if ne(variables['Build.Reason'], 'ResourceTrigger') }}: checkoutRepo: release_repo
- template: ${{ variables.CI_COMPONENT_PATH }}/HIP.yml@pipelines_repo checkoutRef: ${{ parameters.checkoutRef }}
parameters:
checkoutRepo: release_repo
checkoutRef: ${{ parameters.checkoutRef }}

View File

@@ -1,23 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: fmtlibVersion
type: string
default: "11.1.3"
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/fmtlib.yml
parameters:
fmtlibVersion: ${{ parameters.fmtlibVersion }}

View File

@@ -1,23 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: libdivideVersion
type: string
default: master
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/libdivide.yml
parameters:
libdivideVersion: ${{ parameters.libdivideVersion }}

View File

@@ -1,23 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: spdlogVersion
type: string
default: "v1.15.1"
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/spdlog.yml
parameters:
spdlogVersion: ${{ parameters.spdlogVersion }}

View File

@@ -1,24 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: yamlcppVersion
type: string
default: "0.8.0"
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_DEPENDENCIES_PATH }}/yamlcpp.yml
parameters:
yamlcppVersion: ${{ parameters.yamlcppVersion }}

View File

@@ -12,49 +12,41 @@ parameters:
- name: fileFilter - name: fileFilter
type: string type: string
default: '' default: ''
- name: extractAndDeleteFiles
type: boolean
default: true
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
steps: steps:
- task: Bash@3
displayName: Set allowPartiallySucceededBuilds
inputs:
targetType: inline
script: |
if [[ ",$ALLOWED_PARTIAL_SUCCEED_BUILDS," == *",${{ parameters.componentName }},"* ]]; then
echo "##vso[task.setvariable variable=allowPartiallySucceededBuilds;]true"
else
echo "##vso[task.setvariable variable=allowPartiallySucceededBuilds;]false"
fi
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
displayName: Download ${{ parameters.componentName }} displayName: Download ${{ parameters.componentName }}
retryCountOnTaskFailure: 3
inputs: inputs:
${{ if eq(parameters.componentName, 'clr') }}: buildType: 'specific'
itemPattern: '**/*${{ parameters.componentName }}*${{ parameters.fileFilter }}*amd*' # filter out nvidia clr artifacts project: ROCm-CI
${{ else }}: definition: ${{ parameters.pipelineId }}
itemPattern: '**/*${{ parameters.componentName }}*${{ parameters.fileFilter }}*' specificBuildWithTriggering: true
itemPattern: '**/*${{ parameters.fileFilter }}*'
${{ if notIn(parameters.componentName, 'aomp') }}: # remove this once these pipelines are functional + up-to-date
buildVersionToDownload: latestFromBranch # default is 'latest'
branchName: refs/heads/${{ parameters.branchName }}
allowPartiallySucceededBuilds: $(allowPartiallySucceededBuilds)
targetPath: '$(Pipeline.Workspace)/d' targetPath: '$(Pipeline.Workspace)/d'
allowPartiallySucceededBuilds: true - task: ExtractFiles@1
${{ if parameters.aggregatePipeline }}: displayName: Extract ${{ parameters.componentName }}
buildType: 'current' inputs:
${{ else }}: archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz'
buildType: 'specific' destinationFolder: '$(Agent.BuildDirectory)/rocm'
project: ROCm-CI cleanDestinationFolder: false
specificBuildWithTriggering: true overwriteExistingFiles: true
definition: ${{ parameters.pipelineId }} - task: DeleteFiles@1
branchName: refs/heads/${{ parameters.branchName }} displayName: Cleanup Compressed ${{ parameters.componentName }}
${{ if eq(parameters.componentName, 'aomp') }}: inputs:
buildVersionToDownload: latest # aomp trigger lives in ROCm/ROCm, so cannot use ROCm/aomp branch names SourceFolder: '$(Pipeline.Workspace)/d'
${{ else }}: Contents: '**/*.tar.gz'
buildVersionToDownload: latestFromBranch RemoveDotFiles: true
- ${{ if eq(parameters.extractAndDeleteFiles, true) }}:
- task: ExtractFiles@1
displayName: Extract ${{ parameters.componentName }}
inputs:
archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz'
destinationFolder: '$(Agent.BuildDirectory)/rocm'
cleanDestinationFolder: false
overwriteExistingFiles: true
- task: DeleteFiles@1
displayName: Clean up Compressed ${{ parameters.componentName }}
inputs:
SourceFolder: '$(Pipeline.Workspace)/d'
Contents: '**/*.tar.gz'
RemoveDotFiles: true

View File

@@ -15,8 +15,8 @@ steps:
URL_BEGIN="https://artprodcus3.artifacts.visualstudio.com/" URL_BEGIN="https://artprodcus3.artifacts.visualstudio.com/"
URL_MIDDLE="/_apis/artifact/" URL_MIDDLE="/_apis/artifact/"
URL_END="/content?format=file&subPath=%2F" URL_END="/content?format=file&subPath=%2F"
ARTIFACT_NAME="$(Agent.JobName)_$(System.JobAttempt)" FORMATTED_JOB_NAME=$(echo $(Agent.JobName) | sed 's/ /./g; s/[-_]//g')
ARTIFACT_STRING="pipelineartifact://ROCm-CI/projectId/$(DOWNLOAD_PROJECT_ID)/buildId/$(Build.BuildId)/artifactName/${ARTIFACT_NAME}" ARTIFACT_STRING="pipelineartifact://ROCm-CI/projectId/$(DOWNLOAD_PROJECT_ID)/buildId/$(Build.BuildId)/artifactName/${FORMATTED_JOB_NAME}"
ENCODED_STRING=$(echo -n "${ARTIFACT_STRING}" | base64 -w 0) ENCODED_STRING=$(echo -n "${ARTIFACT_STRING}" | base64 -w 0)
PADDING_COUNT=$(echo -n "${ENCODED_STRING}" | awk -F= '{print NF-1}') PADDING_COUNT=$(echo -n "${ENCODED_STRING}" | awk -F= '{print NF-1}')
if [ "$PADDING_COUNT" -gt 0 ]; then if [ "$PADDING_COUNT" -gt 0 ]; then

View File

@@ -3,21 +3,15 @@
# publish can be toggled off for jobs that produce multiple tarballs # publish can be toggled off for jobs that produce multiple tarballs
# for those cases, only publish the last call which puts all the tarballs in one container folder # for those cases, only publish the last call which puts all the tarballs in one container folder
parameters: parameters:
- name: componentName
type: string
default: $(Build.DefinitionName)
- name: gpuTarget
type: string
default: ''
- name: artifactName - name: artifactName
type: string type: string
default: drop default: 'drop'
- name: publish - name: publish
type: boolean type: boolean
default: true default: true
- name: os - name: gpuTarget
type: string type: string
default: 'ubuntu2204' default: ''
steps: steps:
- task: ArchiveFiles@2 - task: ArchiveFiles@2
@@ -26,7 +20,7 @@ steps:
includeRootFolder: false includeRootFolder: false
archiveType: 'tar' archiveType: 'tar'
tarCompression: 'gz' tarCompression: 'gz'
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.componentName }}_$(Build.BuildId)_$(Build.BuildNumber)_${{ parameters.os }}_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}_$(System.JobAttempt).tar.gz' archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.tar.gz'
- task: DeleteFiles@1 - task: DeleteFiles@1
displayName: 'Cleanup Staging Area' displayName: 'Cleanup Staging Area'
inputs: inputs:
@@ -38,14 +32,11 @@ steps:
inputs: inputs:
workingDirectory: $(Pipeline.Workspace) workingDirectory: $(Pipeline.Workspace)
targetType: inline targetType: inline
script: echo "${{ parameters.componentName }}_$(Build.BuildId)_$(Build.BuildNumber)_${{ parameters.os }}_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}_$(System.JobAttempt).tar.gz" >> pipelineArtifacts.txt script: echo "$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.tar.gz" >> pipelineArtifacts.txt
# then publish it # then publish it
- ${{ if parameters.publish }}: - ${{ if parameters.publish }}:
- task: PublishPipelineArtifact@1 - task: PublishPipelineArtifact@1
condition: always()
displayName: '${{ parameters.artifactName }} Publish' displayName: '${{ parameters.artifactName }} Publish'
retryCountOnTaskFailure: 3 retryCountOnTaskFailure: 3
inputs: inputs:
# if this artifact name is changed, please also update $ARTIFACT_URL inside miopen-get-ck-build.yml
artifactName: $(Agent.JobName)_$(System.JobAttempt)
targetPath: '$(Build.ArtifactStagingDirectory)' targetPath: '$(Build.ArtifactStagingDirectory)'

View File

@@ -1,7 +1,4 @@
parameters: parameters:
- name: os
type: string
default: 'ubuntu2204'
- name: componentName - name: componentName
type: string type: string
default: '' default: ''
@@ -23,23 +20,17 @@ steps:
displayName: '${{ parameters.componentName }} configure flags' displayName: '${{ parameters.componentName }} configure flags'
inputs: inputs:
targetType: inline targetType: inline
script: ./configure --prefix=${{ parameters.installDir }} ${{ parameters.configureFlags }}
workingDirectory: ${{ parameters.buildDir }} workingDirectory: ${{ parameters.buildDir }}
script: |
${{ iif(eq(parameters.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }}
./configure --prefix=${{ parameters.installDir }} ${{ parameters.configureFlags }}
- task: Bash@3 - task: Bash@3
displayName: '${{ parameters.componentName }} make' displayName: '${{ parameters.componentName }} make'
inputs: inputs:
targetType: inline targetType: inline
script: ${{ parameters.makeCallPrefix }} make -j$(nproc)
workingDirectory: ${{ parameters.buildDir }} workingDirectory: ${{ parameters.buildDir }}
script: |
${{ iif(eq(parameters.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }}
${{ parameters.makeCallPrefix }} make -j$(nproc)
- task: Bash@3 - task: Bash@3
displayName: '${{ parameters.componentName }} make install' displayName: '${{ parameters.componentName }} make install'
inputs: inputs:
targetType: inline targetType: inline
script: make install
workingDirectory: ${{ parameters.buildDir }} workingDirectory: ${{ parameters.buildDir }}
script: |
${{ iif(eq(parameters.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }}
make install

View File

@@ -1,25 +1,19 @@
parameters: parameters:
- name: os
type: string
default: 'ubuntu2204'
- name: componentName - name: componentName
type: string type: string
default: '' default: ''
- name: extraBuildFlags - name: extraBuildFlags
type: string type: string
default: '' default: ''
- name: extraCxxFlags
type: string
default: ''
- name: multithreadFlag - name: multithreadFlag
type: string type: string
default: '' default: ''
- name: cmakeBuildDir - name: cmakeBuildDir
type: string type: string
default: $(Agent.BuildDirectory)/s/build default: 'build'
- name: cmakeSourceDir - name: cmakeSourceDir
type: string type: string
default: $(Agent.BuildDirectory)/s default: '..'
- name: customBuildTarget - name: customBuildTarget
type: string type: string
default: '' default: ''
@@ -38,81 +32,36 @@ parameters:
- name: installEnabled - name: installEnabled
type: boolean type: boolean
default: true default: true
# for jobs that rebuild during install step and use ninja
# set to true to save time, only applies for almalinux8
- name: consolidateBuildAndInstall
type: boolean
default: false
- name: printDiskSpace
type: boolean
default: true
# todo: make this control cxx and c compiler flags
- name: useAmdclang
type: boolean
default: true
# for cmake calls, set env variables for AlmaLinux 8
# to simulate running source /opt/rh/gcc-toolset-14/enable for the session
steps: steps:
# create workingDirectory if it does not exist and change into it # create workingDirectory if it does not exist and change into it
# call cmake from within that directory using $cmakeArgs as its parameters # call cmake from within that directory using $cmakeArgs as its parameters
- task: CMake@1 - task: CMake@1
displayName: '${{parameters.componentName }} CMake Flags' displayName: '${{parameters.componentName }} CMake Flags'
${{ if eq(parameters.os, 'almalinux8')}}:
env:
PATH: "/opt/rh/gcc-toolset-14/root/usr/bin:$(PATH)"
MANPATH: "/opt/rh/gcc-toolset-14/root/usr/share/man:$(MANPATH)"
INFOPATH: "/opt/rh/gcc-toolset-14/root/usr/share/info:$(INFOPATH)"
PCP_DIR: "/opt/rh/gcc-toolset-14/root"
LD_LIBRARY_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:$(LD_LIBRARY_PATH)"
PKG_CONFIG_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64/pkgconfig:$(PKG_CONFIG_PATH)"
inputs: inputs:
workingDirectory: ${{ parameters.cmakeBuildDir }} workingDirectory: ${{ parameters.cmakeBuildDir }}
cmakeArgs: >- ${{ if eq(parameters.customInstallPath, true) }}:
${{ iif(parameters.customInstallPath, join('', format('-DCMAKE_INSTALL_PREFIX={0}', parameters.installDir)), '') }} cmakeArgs: -DCMAKE_INSTALL_PREFIX=${{ parameters.installDir }} ${{ parameters.extraBuildFlags }} ${{ parameters.cmakeSourceDir }}
${{ iif(eq(parameters.os, 'almalinux8'), '-DCMAKE_SHARED_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/"', '') }} ${{ else }}:
${{ iif(eq(parameters.os, 'almalinux8'), '-DCMAKE_EXE_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/"', '') }} cmakeArgs: ${{ parameters.extraBuildFlags }} ..
-DCMAKE_CXX_FLAGS="${{ parameters.extraCxxFlags }} ${{ iif(and(eq(parameters.os, 'almalinux8'), parameters.useAmdclang), '--gcc-toolchain=/opt/rh/gcc-toolset-14/root', '') }}" - script: df -h
${{ parameters.extraBuildFlags }} displayName: Disk space before build
${{ parameters.cmakeSourceDir }}
- ${{ if parameters.printDiskSpace }}:
- script: df -h
displayName: Disk space before build
# equivalent to running make $cmakeTargetDir from $cmakeBuildDir # equivalent to running make $cmakeTargetDir from $cmakeBuildDir
# i.e., cd $cmakeBuildDir; make $cmakeTargetDir # i.e., cd $cmakeBuildDir; make $cmakeTargetDir
- task: CMake@1 - task: CMake@1
${{ if and( eq(parameters.os, 'almalinux8'), eq(parameters.consolidateBuildAndInstall , true)) }}: displayName: '${{parameters.componentName }} Build'
displayName: '${{ parameters.componentName }} CMake Build and Install'
${{ else }}:
displayName: '${{ parameters.componentName }} CMake Build'
${{ if eq(parameters.os, 'almalinux8')}}:
env:
PATH: "/opt/rh/gcc-toolset-14/root/usr/bin:$(PATH)"
MANPATH: "/opt/rh/gcc-toolset-14/root/usr/share/man:$(MANPATH)"
INFOPATH: "/opt/rh/gcc-toolset-14/root/usr/share/info:$(INFOPATH)"
PCP_DIR: "/opt/rh/gcc-toolset-14/root"
LD_LIBRARY_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:$(LD_LIBRARY_PATH)"
PKG_CONFIG_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64/pkgconfig:$(PKG_CONFIG_PATH)"
inputs: inputs:
workingDirectory: ${{ parameters.cmakeBuildDir }} workingDirectory: ${{ parameters.cmakeBuildDir }}
${{ if eq(parameters.os, 'almalinux8') }}: ${{ if eq(parameters.customBuildTarget, '') }}:
cmakeArgs: >- cmakeArgs: '--build ${{ parameters.cmakeTargetDir }} ${{ parameters.multithreadFlag }}'
--build ${{ parameters.cmakeTargetDir }} ${{ else }}:
${{ iif(and(eq(parameters.consolidateBuildAndInstall, true), ne(parameters.cmakeTarget, '')), format('--target {0}', parameters.cmakeTarget), '') }} cmakeArgs: '--build ${{ parameters.cmakeTargetDir }} --target ${{ parameters.customBuildTarget }} ${{ parameters.multithreadFlag }}'
${{ iif(and(ne(parameters.customBuildTarget, ''), ne(parameters.consolidateBuildAndInstall, true)), format('--target {0}', parameters.customBuildTarget), '') }} retryCountOnTaskFailure: 10
${{ parameters.multithreadFlag }} - script: df -h
${{ if ne(parameters.os, 'almalinux8') }}: displayName: Disk space after build
cmakeArgs: >-
--build ${{ parameters.cmakeTargetDir }}
${{ iif(ne(parameters.customBuildTarget, ''), format('--target {0}', parameters.customBuildTarget), '') }}
${{ parameters.multithreadFlag }}
- ${{ if parameters.printDiskSpace }}:
- script: df -h
displayName: Disk space after build
# equivalent to running make $cmakeTarget from $cmakeBuildDir # equivalent to running make $cmakeTarget from $cmakeBuildDir
# e.g., make install # e.g., make install
- ${{ if and(eq(parameters.installEnabled, true), or(ne(parameters.os, 'almalinux8'), eq(parameters.consolidateBuildAndInstall, false))) }}: - ${{ if eq(parameters.installEnabled, true) }}:
- task: CMake@1 - task: CMake@1
displayName: '${{parameters.componentName }} ${{ parameters.cmakeTarget }}' displayName: '${{parameters.componentName }} ${{ parameters.cmakeTarget }}'
inputs: inputs:

View File

@@ -4,9 +4,6 @@ parameters:
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: sparseCheckoutDir
type: string
default: ''
# submodule download behaviour # submodule download behaviour
# change to 'recursive' for repos with submodules # change to 'recursive' for repos with submodules
- name: submoduleBehaviour - name: submoduleBehaviour
@@ -18,13 +15,3 @@ steps:
clean: true clean: true
submodules: ${{ parameters.submoduleBehaviour }} submodules: ${{ parameters.submoduleBehaviour }}
retryCountOnTaskFailure: 3 retryCountOnTaskFailure: 3
fetchFilter: blob:none
${{ if ne(parameters.sparseCheckoutDir, '') }}:
sparseCheckoutDirectories: ${{ parameters.sparseCheckoutDir }} shared
path: sparse
- ${{ if ne(parameters.sparseCheckoutDir, '') }}:
- task: Bash@3
displayName: Symlink sparse checkout
inputs:
targetType: inline
script: ln -s $(Agent.BuildDirectory)/sparse/${{ parameters.sparseCheckoutDir }} $(Agent.BuildDirectory)/s

View File

@@ -1,15 +1,10 @@
parameters: parameters:
- name: os
type: string
default: ubuntu2204
- name: repositoryUrl - name: repositoryUrl
type: string type: string
default: https://download.amd.com/developer/eula/aocl/aocl-4-2 default: https://download.amd.com/developer/eula/aocl/aocl-4-2
- name: packageName - name: packageName
type: object type: string
default: default: aocl-linux-gcc-4.2.0_1_amd64.deb
ubuntu2204: aocl-linux-gcc-4.2.0_1_amd64.deb
almalinux8: aocl-linux-gcc-4.2.0-1.x86_64.rpm
steps: steps:
- task: Bash@3 - task: Bash@3
@@ -17,19 +12,16 @@ steps:
inputs: inputs:
targetType: inline targetType: inline
workingDirectory: $(Pipeline.Workspace) workingDirectory: $(Pipeline.Workspace)
script: wget -nv ${{ parameters.repositoryUrl }}/${{ parameters.packageName[parameters.os] }} script: wget -nv ${{ parameters.repositoryUrl }}/${{ parameters.packageName }}
- task: Bash@3 - task: Bash@3
displayName: Install AOCL displayName: Install AOCL
inputs: inputs:
targetType: inline targetType: inline
workingDirectory: $(Pipeline.Workspace) workingDirectory: $(Pipeline.Workspace)
${{ if eq(parameters.os, 'ubuntu2204') }}: script: sudo apt install -y ./${{ parameters.packageName }}
script: sudo apt install -y ./${{ parameters.packageName[parameters.os] }}
${{ elseif eq(parameters.os, 'almalinux8') }}:
script: sudo dnf install -y ./${{ parameters.packageName[parameters.os] }}
- task: Bash@3 - task: Bash@3
displayName: Clean up AOCL displayName: Clean up AOCL
inputs: inputs:
targetType: inline targetType: inline
workingDirectory: $(Pipeline.Workspace) workingDirectory: $(Pipeline.Workspace)
script: rm -f ${{ parameters.packageName[parameters.os] }} script: rm -f ${{ parameters.packageName }}

View File

@@ -1,35 +0,0 @@
parameters:
- name: aptPackages
type: object
default: []
- name: registerROCmPackages
type: boolean
default: false
steps:
- ${{ if eq(parameters.registerROCmPackages, true) }}:
- task: Bash@3
displayName: 'Register AMDGPU & ROCm repos (apt)'
retryCountOnTaskFailure: 3
inputs:
targetType: inline
script: |
sudo mkdir --parents --mode=0755 /etc/apt/keyrings
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$(REPO_RADEON_VERSION)/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/amdgpu.list
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION) jammy main" | sudo tee --append /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
- task: Bash@3
displayName: 'APT update and install packages'
retryCountOnTaskFailure: 3
inputs:
targetType: inline
script: |
echo "deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/default.list
echo "deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/default.list
echo "deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/default.list
echo "deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/default.list
sudo DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
sudo DEBIAN_FRONTEND=noninteractive apt-get --yes --fix-broken install && \
sudo DEBIAN_FRONTEND=noninteractive apt-get --yes --fix-missing install ${{ join(' ', parameters.aptPackages) }}

View File

@@ -1,32 +1,36 @@
parameters:
- name: os
type: string
default: ubuntu2204
steps: steps:
- task: Bash@3 - task: Bash@3
displayName: Download and install aqlprofile displayName: Get aqlprofile package name
retryCountOnTaskFailure: 3
inputs: inputs:
targetType: inline targetType: inline
workingDirectory: $(Agent.BuildDirectory)
script: | script: |
set -e export packageName=$(curl -s https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION)/pool/main/h/hsa-amd-aqlprofile/ | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb")
if [ "${{ parameters.os }}" = "ubuntu2204" ]; then echo "##vso[task.setvariable variable=packageName;isreadonly=true]$packageName"
packageName=$(curl -s https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION)/pool/main/h/hsa-amd-aqlprofile/ | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb") && \ - task: Bash@3
wget -nv https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION)/pool/main/h/hsa-amd-aqlprofile/$packageName && \ displayName: 'Download aqlprofile'
mkdir -p hsa-amd-aqlprofile && \ inputs:
dpkg-deb -R $packageName hsa-amd-aqlprofile targetType: inline
elif [ "${{ parameters.os }}" = "almalinux8" ]; then script: wget -nv https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION)/pool/main/h/hsa-amd-aqlprofile/$(packageName)
sudo dnf -y install rpm-build cpio && \ workingDirectory: '$(Pipeline.Workspace)'
packageName=$(curl -s https://repo.radeon.com/rocm/rhel8/$(REPO_RADEON_VERSION)/main/ | grep -oP "hsa-amd-aqlprofile-[^\"]+\.rpm" | head -n1) && \ - task: Bash@3
wget -nv https://repo.radeon.com/rocm/rhel8/$(REPO_RADEON_VERSION)/main/$packageName && \ displayName: 'Extract aqlprofile'
mkdir -p hsa-amd-aqlprofile && \ inputs:
rpm2cpio $packageName | (cd hsa-amd-aqlprofile && cpio -idmv) targetType: inline
else script: |
echo "Unsupported OS: ${{ parameters.os }}" mkdir hsa-amd-aqlprofile
exit 1 dpkg-deb -R $(packageName) hsa-amd-aqlprofile
fi && \ workingDirectory: '$(Pipeline.Workspace)'
mkdir -p $(Agent.BuildDirectory)/rocm && \ - task: Bash@3
cp -R hsa-amd-aqlprofile/opt/rocm-*/* $(Agent.BuildDirectory)/rocm && \ displayName: 'Copy aqlprofile files'
rm -rf hsa-amd-aqlprofile $packageName inputs:
targetType: inline
script: |
mkdir -p $(Agent.BuildDirectory)/rocm
cp -R hsa-amd-aqlprofile/opt/rocm-*/* $(Agent.BuildDirectory)/rocm
workingDirectory: '$(Pipeline.Workspace)'
- task: Bash@3
displayName: 'Clean up aqlprofile'
inputs:
targetType: inline
script: rm -rf hsa-amd-aqlprofile $(packageName)
workingDirectory: '$(Pipeline.Workspace)'

View File

@@ -0,0 +1,35 @@
steps:
- task: DownloadPipelineArtifact@2
displayName: Download Boost
inputs:
buildType: specific
project: ROCm-CI
definition: $(BOOST_DEPENDENCY_PIPELINE_ID)
targetPath: $(Pipeline.Workspace)/d
- task: ExtractFiles@1
displayName: Extract Boost
inputs:
archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz'
destinationFolder: $(Agent.BuildDirectory)/boost
cleanDestinationFolder: true
overwriteExistingFiles: true
- task: DeleteFiles@1
displayName: Cleanup Compressed Boost
inputs:
SourceFolder: $(Pipeline.Workspace)/d
Contents: '**/*.tar.gz'
RemoveDotFiles: true
- task: Bash@3
displayName: 'List Boost files'
inputs:
targetType: inline
script: ls -1R $(Agent.BuildDirectory)/boost
- task: Bash@3
displayName: 'Link Boost shared libraries'
inputs:
targetType: inline
script: |
echo $(Agent.BuildDirectory)/boost/lib | sudo tee /etc/ld.so.conf.d/boost.conf
sudo cat /etc/ld.so.conf.d/boost.conf
sudo ldconfig -v
ldconfig -p

View File

@@ -1,28 +0,0 @@
parameters:
- name: cmakeVersion
type: string
default: '3.31.0'
steps:
- task: Bash@3
displayName: Install CMake ${{ parameters.cmakeVersion }}
inputs:
targetType: inline
script: |
CMAKE_VERSION=${{ parameters.cmakeVersion }}
CMAKE_ROOT="$(Pipeline.Workspace)/cmake"
echo "Downloading CMake $CMAKE_VERSION..."
curl -fsSL -o cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
echo "Extracting to $CMAKE_ROOT..."
sudo mkdir -p $CMAKE_ROOT
sudo tar --strip-components=1 -xz -C $CMAKE_ROOT -f cmake.tar.gz
echo "##vso[task.prependpath]$CMAKE_ROOT/bin"
- task: Bash@3
displayName: cmake --version
inputs:
targetType: inline
script: |
cmake --version

Some files were not shown because too many files have changed in this diff Show More