Compare commits

..

1 Commits

Author SHA1 Message Date
Istvan Kiss
56de4cda80 Replace "-" on precision support page 2025-03-10 13:26:57 +01:00
435 changed files with 16653 additions and 73996 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,129 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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/dependencies-cmake-custom.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
cmakeVersion: '3.28.6' - 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: # half version should be fixed to 5.6.0
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
# half version should be fixed to 5.6.0 parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml buildType: specific
parameters: definitionId: ${{ variables.HALF560_PIPELINE_ID }}
buildType: specific buildId: ${{ variables.HALF560_BUILD_ID }}
definitionId: ${{ variables.HALF560_PIPELINE_ID }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
buildId: ${{ variables.HALF560_BUILD_ID }} 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_BUILD_TYPE=Release
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
extraBuildFlags: >- -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
-DGPU_TARGETS=${{ job.target }} -DBUILD_TESTING=ON
-DAMDGPU_TARGETS=${{ job.target }} -GNinja
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DBUILD_TESTING=ON 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:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
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 }}
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
cmakeVersion: '3.28.6' - 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 # half version should be fixed to 5.6.0
# half version should be fixed to 5.6.0 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: buildType: specific
buildType: specific definitionId: ${{ variables.HALF560_PIPELINE_ID }}
definitionId: ${{ variables.HALF560_PIPELINE_ID }} buildId: ${{ variables.HALF560_BUILD_ID }}
buildId: ${{ variables.HALF560_BUILD_ID }} - 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 }} - task: CMake@1
${{ if parameters.triggerDownstreamJobs }}: displayName: MIGraphXTest CMake Flags
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} inputs:
- task: CMake@1 cmakeArgs: >-
displayName: MIGraphXTest CMake Flags -DCMAKE_BUILD_TYPE=Release
inputs: -DGPU_TARGETS=$(JOB_GPU_TARGET)
cmakeArgs: >- -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
-DAMDGPU_TARGETS=${{ job.target }} -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DBUILD_TESTING=ON
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DMIGRAPHX_ENABLE_C_API_TEST=ON
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm ..
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DBUILD_TESTING=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DMIGRAPHX_ENABLE_C_API_TEST=ON parameters:
.. componentName: AMDMIGraphX
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testExecutable: make
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: -j$(nproc) check
parameters: testPublishResults: false
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testExecutable: make parameters:
testParameters: -j$(nproc) check aptPackages: ${{ parameters.aptPackages }}
testPublishResults: false pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} extraEnvVars:
pipModules: ${{ parameters.pipModules }} - MIGRAPHX_TRACE_BENCHMARKING:::1
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,120 @@ 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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: 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 # checkout triggering repo (either HIP or clr)
- template: /.azuredevops/variables-global.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
workspace: parameters:
clean: all checkoutRepo: ${{ parameters.checkoutRepo }}
steps: # if this is triggered by HIP repo, matching repo is clr
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml # if this is triggered by clr repo, matching repo is HIP
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: matching_repo
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
# full checkout of rocm-systems superrepo, we need clr, hip, and hipother checkoutRepo: hipother_repo
- 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.rocmDependenciesAMD }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml # compile clr
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} componentName: clr
os: ${{ job.os }} cmakeBuildDir: 'clr/build'
${{ if eq(job.platform, 'amd') }}: extraBuildFlags: >-
dependencyList: ${{ parameters.rocmDependenciesAMD }} -DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP
${{ elseif eq(job.platform, 'nvidia') }}: -DHIP_PLATFORM=amd
dependencyList: ${{ parameters.rocmDependenciesNvidia }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
${{ if parameters.triggerDownstreamJobs }}: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCLR_BUILD_HIP=ON
parameters: -DCLR_BUILD_OCL=ON
componentName: clr - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
cmakeBuildDir: $(Agent.BuildDirectory)/s/projects/clr/build parameters:
cmakeSourceDir: $(Agent.BuildDirectory)/s/projects/clr artifactName: amd
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
useAmdclang: false parameters:
extraBuildFlags: >- artifactName: amd
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin # parameters:
-DHIP_COMMON_DIR=$(Agent.BuildDirectory)/s/projects/hip # aptPackages: ${{ parameters.aptPackages }}
-DHIPNV_DIR=$(Agent.BuildDirectory)/s/projects/hipother/hipnv # pipModules: ${{ parameters.pipModules }}
-DHIP_PLATFORM=${{ job.platform }} # environment: amd
-DCLR_BUILD_HIP=ON
-DCLR_BUILD_OCL=ON # HIP with Nvidia backend
-GNinja - job: hip_clr_combined_nvidia
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml variables:
parameters: - group: common
artifactName: ${{ job.platform }} - template: /.azuredevops/variables-global.yml
os: ${{ job.os }} pool:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml vmImage: ${{ variables.BASE_BUILD_POOL }}
parameters: workspace:
artifactName: ${{ job.platform }} clean: all
os: ${{ job.os }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
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,156 @@ 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 }} gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
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
- 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/miopen-get-ck-build.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
gpuTarget: ${{ job.target }} 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: Build and install other dependencies
gpuTarget: ${{ job.target }} inputs:
aggregatePipeline: ${{ parameters.aggregatePipeline }} targetType: inline
${{ if parameters.triggerDownstreamJobs }}: workingDirectory: $(Build.SourcesDirectory)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} script: |
- task: Bash@3 sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
displayName: Build and install other dependencies sed -i '/composable_kernel/d' requirements.txt
retryCountOnTaskFailure: 3 mkdir -p $(Agent.BuildDirectory)/miopen-deps
inputs: cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps
targetType: inline sudo rm -rf /opt/rocm
workingDirectory: $(Agent.BuildDirectory)/s - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
script: | parameters:
sed -i '/composable_kernel/d' requirements.txt extraBuildFlags: >-
mkdir -p $(Agent.BuildDirectory)/miopen-deps -DMIOPEN_BACKEND=HIP
export CXX=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
export CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/miopen-deps
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps --generator Ninja -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF
parameters: -DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF
extraBuildFlags: >- -DCMAKE_BUILD_TYPE=Release
-DMIOPEN_BACKEND=HIP -DBUILD_TESTING=ON
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -GNinja
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/miopen-deps - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DGPU_TARGETS=${{ job.target }} parameters:
-DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF gpuTarget: $(JOB_GPU_TARGET)
-DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DBUILD_TESTING=ON gpuTarget: $(JOB_GPU_TARGET)
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: extraCopyDirectories:
componentName: ${{ parameters.componentName }} - miopen-deps
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'])), - name: ROCM_PATH
eq(${{ parameters.aggregatePipeline }}, False) value: $(Agent.BuildDirectory)/rocm
) 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml pipModules: ${{ parameters.pipModules }}
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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/miopen-get-ck-build.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_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.target }} gpuTarget: $(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: - task: Bash@3
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} displayName: Build and install other dependencies
- task: Bash@3 inputs:
displayName: Build and install other dependencies targetType: inline
retryCountOnTaskFailure: 3 workingDirectory: $(Build.SourcesDirectory)
inputs: script: |
targetType: inline sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
workingDirectory: $(Agent.BuildDirectory)/s sed -i '/composable_kernel/d' requirements.txt
script: | mkdir -p $(Agent.BuildDirectory)/miopen-deps
sed -i '/composable_kernel/d' requirements.txt cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps
mkdir -p $(Agent.BuildDirectory)/miopen-deps sudo rm -rf /opt/rocm
export CXX=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - task: CMake@1
export CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang displayName: 'MIOpen Test CMake Flags'
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps inputs:
- task: CMake@1 cmakeArgs: >-
displayName: 'MIOpen Test CMake Flags' -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Agent.BuildDirectory)/miopen-deps
inputs: -DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm
cmakeArgs: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/s/bin;$(Agent.BuildDirectory)/miopen-deps -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm -DMIOPEN_BACKEND=HIP
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DMIOPEN_TEST_FLAGS=" --disable-verification-cache"
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_BUILD_TYPE=release
-DMIOPEN_BACKEND=HIP -DBUILD_DEV=OFF
-DMIOPEN_TEST_FLAGS=" --disable-verification-cache" -DMIOPEN_USE_MLIR=ON
-DCMAKE_BUILD_TYPE=release -DMIOPEN_GPU_SYNC=OFF
-DBUILD_DEV=OFF ..
-DMIOPEN_USE_MLIR=ON - task: Bash@3
-DMIOPEN_GPU_SYNC=OFF displayName: 'MIOpen Test Build'
$(Agent.BuildDirectory)/s inputs:
- task: Bash@3 targetType: inline
displayName: 'MIOpen Test Build' script: |
inputs: cmake --build . --target tests -- -j$(nproc)
targetType: inline workingDirectory: $(Build.SourcesDirectory)/build
workingDirectory: build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
cmake --build . --target tests -- -j$(nproc) parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: MIOpen
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex test_rnn_seq_api'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: ${{ parameters.componentName }} parameters:
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"' aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml pipModules: ${{ parameters.pipModules }}
parameters: environment: test
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
pipModules: ${{ parameters.pipModules }} extraCopyDirectories:
environment: test - miopen-deps
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,103 @@ 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:
- ${{ build }}_ubuntu2204_${{ job.target }} vmImage: ${{ variables.BASE_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
pool: ${{ variables.MEDIUM_BUILD_POOL }} matrix:
workspace: gfx942:
clean: all JOB_GPU_TARGET: gfx942
steps: gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_GPU_TARGET: gfx90a
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/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 }}
${{ 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_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DROCM_DEP_ROCMCORE=ON
-DROCM_DEP_ROCMCORE=ON -GNinja
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.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-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_GPU_TARGET)
# 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 gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
clean: all JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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.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)
${{ if parameters.triggerDownstreamJobs }}: # anything in /opt may be persistent across runs
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} # so we need to remove the symlink if it already exists
- task: Bash@3 - script: |
displayName: Build MIVisionX tests sudo rm -f /opt/rocm
inputs: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
targetType: inline mkdir mivisionx-tests
script: | cd mivisionx-tests
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral cmake /opt/rocm/share/mivisionx/test
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
mkdir mivisionx-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
cd mivisionx-tests parameters:
cmake $(Agent.BuildDirectory)/rocm/share/mivisionx/test componentName: MIVisionX
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: 'mivisionx-tests'
- 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: 'mivisionx-tests' pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} optSymLink: true
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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: 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/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/build-cmake.yml
packageManager: ${{ job.packageManager }} 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: -DBUILD_SHARED_LIBS=ON
checkoutRepo: ${{ parameters.checkoutRepo }} -DCMAKE_BUILD_TYPE=Release
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
checkoutRef: ${{ parameters.checkoutRef }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
dependencyList: ${{ parameters.rocmDependencies }} # parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} # aptPackages: ${{ parameters.aptPackages }}
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml displayName: Install libhwloc5
parameters: inputs:
os: ${{ job.os }} targetType: 'inline'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc5_1.11.12-3_amd64.deb
parameters: wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc-dev_1.11.12-3_amd64.deb
checkoutRef: ${{ parameters.checkoutRef }} sudo apt install -y --allow-downgrades ./libhwloc5_1.11.12-3_amd64.deb ./libhwloc-dev_1.11.12-3_amd64.deb
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
runRocminfo: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3 parameters:
displayName: Build kfdtest runRocminfo: false
inputs: - task: Bash@3
targetType: 'inline' displayName: Build kfdtest
workingDirectory: $(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest continueOnError: true
script: | inputs:
if [ -e /opt/rh/gcc-toolset-14/enable ]; then targetType: 'inline'
source /opt/rh/gcc-toolset-14/enable workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest
fi script: |
mkdir build && cd build mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm .. cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ..
make make
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
componentName: kfdtest componentName: kfdtest
testExecutable: BIN_DIR=$(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh testExecutable: BIN_DIR=$(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh
testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes' testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: $(Agent.BuildDirectory)/s/libhsakmt/tests/kfdtest/scripts testDir: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/scripts
os: ${{ job.os }} - task: Bash@3
- task: Bash@3 displayName: Build rocrtst
displayName: Build rocrtst continueOnError: true
inputs: inputs:
targetType: 'inline' targetType: 'inline'
workingDirectory: $(Agent.BuildDirectory)/s/rocrtst/suites/test_common workingDirectory: $(Build.SourcesDirectory)/rocrtst/suites/test_common
script: | script: |
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_INC_DIR=$(Agent.BuildDirectory)/rocm/llvm/lib/clang/21/include
BASE_CLANG_DIR=$(Agent.BuildDirectory)/rocm/llvm/lib/clang make
export NEWEST_CLANG_VER=$(ls -1 $BASE_CLANG_DIR | sort -V | tail -n 1) make rocrtst_kernels
mkdir build && cd build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
cmake .. \ parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm \ componentName: rocrtst
-DTARGET_DEVICES=${{ job.target }} \ testExecutable: ./rocrtst64
-DROCM_DIR=$(Agent.BuildDirectory)/rocm \ testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests:rocrtstFunc.Memory_Max_Mem" --gtest_output=xml:./test_output.xml --gtest_color=yes'
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin \ testDir: $(Build.SourcesDirectory)/rocrtst/suites/test_common/build/$(JOB_GPU_TARGET)
-DOPENCL_INC_DIR=$BASE_CLANG_DIR/$NEWEST_CLANG_VER/include - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
make parameters:
make rocrtst_kernels aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocrtst # docker image will be missing libhwloc5
testExecutable: ./rocrtst64
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,36 @@ 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:
container: vmImage: ${{ variables.BASE_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:
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: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml extraBuildFlags: >-
parameters: -DCMAKE_BUILD_TYPE=Release
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
dependencyList: ${{ parameters.rocmDependencies }} -GNinja
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
os: ${{ job.os }} - 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:
useAmdclang: false # aptPackages: ${{ parameters.aptPackages }}
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,107 @@ 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:
pool: ${{ variables.MEDIUM_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: strategy:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml matrix:
parameters: gfx942:
aptPackages: ${{ parameters.aptPackages }} JOB_GPU_TARGET: gfx942
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml JOB_GPU_TARGET: gfx90a
parameters: steps:
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
extraBuildFlags: >- checkoutRef: ${{ parameters.checkoutRef }}
-DROCM_PATH=$(Agent.BuildDirectory)/rocm dependencyList: ${{ parameters.rocmDependencies }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/llvm/include parameters:
-DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory) extraBuildFlags: >-
-GNinja -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# extraEnvVars: # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm # parameters:
# - ROCM_PATH:::/home/user/workspace/rocm # aptPackages: ${{ parameters.aptPackages }}
# - HIP_INC_DIR:::/home/user/workspace/rocm # gpuTarget: $(JOB_GPU_TARGET)
# extraEnvVars:
# - HIP_ROCCLR_HOME:::/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 TEST_CONF_DIR: MI300X
steps: gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_GPU_TARGET: gfx90a
parameters: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
aptPackages: ${{ parameters.aptPackages }} TEST_CONF_DIR: MI210
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
- 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_GPU_TARGET)
dependencyList: ${{ parameters.rocmTestDependencies }} - 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/gpu-diagnostics.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
componentName: ROCmValidationSuite gpuTarget: $(JOB_GPU_TARGET)
testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/${{ job.confDir }}/gst_single.conf - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testParameters: '' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: $(Agent.BuildDirectory) parameters:
testPublishResults: false componentName: ROCmValidationSuite
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/$(TEST_CONF_DIR)/gst_single.conf
parameters: testParameters: ''
aptPackages: ${{ parameters.aptPackages }} testDir: $(Agent.BuildDirectory)
environment: test testPublishResults: false
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_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,164 @@ 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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
- name: ROCM_PATH clean: all
value: $(Agent.BuildDirectory)/rocm steps:
pool: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
vmImage: ${{ variables.BASE_BUILD_POOL }} parameters:
${{ if eq(job.os, 'almalinux8') }}: aptPackages: ${{ parameters.aptPackages }}
container: pipModules: ${{ parameters.pipModules }}
image: rocmexternalcicd.azurecr.io/manylinux228:latest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
endpoint: ContainerService3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
workspace: parameters:
clean: all checkoutRepo: ${{ parameters.checkoutRepo }}
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
aptPackages: ${{ parameters.aptPackages }} dependencyList: ${{ parameters.rocmDependencies }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
packageManager: ${{ job.packageManager }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml displayName: Create wheel file
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml inputs:
parameters: targetType: inline
checkoutRepo: ${{ parameters.checkoutRepo }} script: python3 setup.py bdist_wheel
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} workingDirectory: $(Build.SourcesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml env:
parameters: ROCM_PATH: $(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
os: ${{ job.os }} sourceDir: $(Build.SourcesDirectory)/dist
aggregatePipeline: ${{ parameters.aggregatePipeline }} contentsString: '*.whl'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml targetDir: $(Build.ArtifactStagingDirectory)
parameters: clean: false
os: ${{ job.os }} - task: PublishPipelineArtifact@1
- task: Bash@3 displayName: 'wheel file Publish'
displayName: Create wheel file retryCountOnTaskFailure: 3
inputs: inputs:
targetType: inline targetPath: $(Build.ArtifactStagingDirectory)
script: python3 setup.py bdist_wheel - task: Bash@3
workingDirectory: $(Agent.BuildDirectory)/s displayName: Save pipeline artifact file names
- task: Bash@3 inputs:
displayName: Rename wheel file with job OS workingDirectory: $(Pipeline.Workspace)
inputs: targetType: inline
targetType: inline script: |
workingDirectory: $(Agent.BuildDirectory)/s echo "$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_drop_$(JOB_GPU_TARGET).tar.gz" >> pipelineArtifacts.txt
script: | whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1)
wheelFile=$(find "$(Agent.BuildDirectory)/s/dist" -type f -name "*.whl" | head -n 1) if [ -n "$whlFile" ]; then
newWheelFile="$(basename "$wheelFile" .whl)-${{ job.os }}.whl" echo $(basename "$whlFile") >> pipelineArtifacts.txt
mv "$wheelFile" "$(dirname "$wheelFile")/$newWheelFile" fi
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
sourceDir: $(Agent.BuildDirectory)/s/dist # parameters:
contentsString: '*.whl' # aptPackages: ${{ parameters.aptPackages }}
targetDir: $(Build.ArtifactStagingDirectory) # pipModules: ${{ parameters.pipModules }}
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 gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
clean: all JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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 }}
packageManager: ${{ job.packageManager }} - 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' inputs:
retryCountOnTaskFailure: 3 itemPattern: '**/*.whl'
inputs: targetPath: $(Agent.BuildDirectory)
itemPattern: '**/*${{ job.os }}*.whl' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
targetPath: $(Agent.BuildDirectory) parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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: pip install
os: ${{ job.os }} inputs:
gpuTarget: ${{ job.target }} targetType: inline
- task: Bash@3 script: find -name *.whl -exec pip install {} \;
displayName: pip install workingDirectory: $(Agent.BuildDirectory)
inputs: - task: Bash@3
targetType: inline displayName: Setup test environment
script: find -name *.whl -exec pip install {} \; inputs:
workingDirectory: $(Agent.BuildDirectory) targetType: inline
- task: Bash@3 script: |
displayName: Setup test environment sudo rm -rf /opt/rocm
inputs: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
targetType: inline - task: Bash@3
script: | displayName: Add Python site-packages binaries to path
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral inputs:
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm targetType: inline
USER_BASE=$(python3 -m site --user-base) script: |
echo "##vso[task.prependpath]$USER_BASE/bin" USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" echo "##vso[task.prependpath]$USER_BASE/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml displayName: Add ROCm binaries to PATH
- task: Bash@3 inputs:
displayName: tox test targetType: inline
inputs: script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
targetType: inline - task: Bash@3
script: tox run -v -e ci -- -m pre_checkin displayName: Add ROCm compilers to PATH
workingDirectory: $(Agent.BuildDirectory)/s inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml targetType: inline
parameters: script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
pipModules: ${{ parameters.pipModules }} - task: Bash@3
environment: test displayName: tox test
gpuTarget: ${{ job.target }} inputs:
pythonEnvVars: true targetType: inline
extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin script: tox run -v -e ci -- -m pre_checkin
# docker image will not have python site-packages in path, but the env vars will make it easier workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3
displayName: Remove Python site-packages binaries from path
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,100 @@ 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:
pool: vmImage: ${{ variables.BASE_BUILD_POOL }}
vmImage: ${{ variables.BASE_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 }} gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml JOB_GPU_TARGET: gfx90a
- 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: - 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.target }} checkoutRepo: ${{ parameters.checkoutRepo }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
extraBuildFlags: >- dependencyList: ${{ parameters.rocmDependencies }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-GNinja extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} 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_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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.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_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: TransferBench All-to-all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)' parameters:
testExecutable: './rocm/bin/TransferBench' componentName: TransferBench All-to-all
testParameters: 'a2a' testDir: '$(Agent.BuildDirectory)'
testPublishResults: false testExecutable: './rocm/bin/TransferBench'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: 'a2a'
parameters: testPublishResults: false
componentName: TransferBench Peer-to-peer - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)' parameters:
testExecutable: './rocm/bin/TransferBench' componentName: TransferBench Peer-to-peer
testParameters: 'p2p' testDir: '$(Agent.BuildDirectory)'
testPublishResults: false testExecutable: './rocm/bin/TransferBench'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testParameters: 'p2p'
parameters: testPublishResults: false
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,138 +1,80 @@
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:
${{ else }}: 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:
variables: aptPackages: ${{ parameters.aptPackages }}
- 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 parameters:
parameters: extraBuildFlags: >-
aptPackages: ${{ parameters.aptPackages }} -DBUILD_TESTS=ON
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
parameters: # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
checkoutRepo: ${{ parameters.checkoutRepo }} # parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} # aptPackages: ${{ parameters.aptPackages }}
- 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} 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: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml runRocminfo: false
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
runRocminfo: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml componentName: amdsmi
parameters: testDir: '$(Agent.BuildDirectory)'
componentName: ${{ parameters.componentName }} testExecutable: './rocm/share/amd_smi/tests/amdsmitst'
testDir: '$(Agent.BuildDirectory)' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testExecutable: 'sudo ./rocm/share/amd_smi/tests/amdsmitst' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' parameters:
os: ${{ job.os }} 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,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,7 +23,7 @@ jobs:
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
@@ -44,7 +39,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

View File

@@ -1,280 +1,526 @@
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
packageManager: ${{ job.packageManager }} 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
os: ${{ job.os }} - 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.rocmTestDependencies }} - task: Bash@3
os: ${{ job.os }} displayName: ROCm symbolic link
- task: Bash@3 inputs:
displayName: ROCm symbolic link targetType: inline
inputs: script: |
targetType: inline sudo rm -rf /opt/rocm
script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- 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/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRepo: aomp-extras_repo checkoutRepo: aomp-extras_repo
# these copy steps are from the aomp prototype script for test prep # these copy steps are from the aomp prototype script for test prep
- task: CopyFiles@2 - task: CopyFiles@2
displayName: 'Copy AOMP contents' displayName: 'Copy AOMP contents'
inputs: inputs:
CleanTargetFolder: false CleanTargetFolder: false
SourceFolder: $(Build.SourcesDirectory)/aomp SourceFolder: $(Build.SourcesDirectory)/aomp
Contents: | Contents: |
** **
!**/.git/** !**/.git/**
!**/.github/** !**/.github/**
!**/.gitignore !**/.gitignore
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests
retryCount: 3 retryCount: 3
- task: CopyFiles@2 - task: CopyFiles@2
displayName: 'Copy FileCheck' displayName: 'Copy FileCheck'
inputs: inputs:
CleanTargetFolder: false CleanTargetFolder: false
SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin
Contents: FileCheck Contents: FileCheck
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin
retryCount: 3 retryCount: 3
- 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 AOMP displayName: Test AOMP
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: ./run_rocm_test.sh script: ./run_rocm_test.sh
workingDirectory: $(Build.SourcesDirectory)/aomp/bin workingDirectory: $(Build.SourcesDirectory)/aomp/bin
env: env:
AOMP: $(Agent.BuildDirectory)/rocm/llvm AOMP: $(Agent.BuildDirectory)/rocm/llvm
AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test
AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test
SKIP_TEST_PACKAGE: 1 SKIP_TEST_PACKAGE: 1
MAINLINE_BUILD: 1 MAINLINE_BUILD: 1
SUITE_LIST: smoke SUITE_LIST: smoke
- 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.target }} gpuTarget: $(JOB_GPU_TARGET)
optSymLink: true 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,127 @@ 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 }} gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml JOB_GPU_TARGET: gfx90a
- 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: - 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.target }} checkoutRepo: ${{ parameters.checkoutRepo }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- script: | parameters:
mkdir -p $(CCACHE_DIR) checkoutRef: ${{ parameters.checkoutRef }}
echo "##vso[task.prependpath]/usr/lib/ccache" dependencyList: ${{ parameters.rocmDependencies }}
displayName: Update path for ccache gpuTarget: $(JOB_GPU_TARGET)
- task: Cache@2 - script: |
displayName: Ccache caching mkdir -p $(CCACHE_DIR)
inputs: echo "##vso[task.prependpath]/usr/lib/ccache"
key: composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ displayName: Update path for ccache
path: $(CCACHE_DIR) - task: Cache@2
restoreKeys: | displayName: Ccache caching
composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) inputs:
composable_kernel | $(Agent.OS) | ${{ job.target }} key: composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
composable_kernel | $(Agent.OS) path: $(CCACHE_DIR)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml restoreKeys: |
parameters: composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
extraBuildFlags: >- composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ composable_kernel | $(Agent.OS)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache parameters:
-DCMAKE_C_COMPILER_LAUNCHER=ccache extraBuildFlags: >-
-DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs" -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCK_BUILD_JIT_LIB=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release -DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs"
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DCK_BUILD_JIT_LIB=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_POSITION_INDEPENDENT_CODE=ON
parameters: -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
# if this artifact name is changed, please also update $ARTIFACT_URL inside miopen-get-ck-build.yml -GNinja
- 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)
- 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_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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.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_GPU_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.target }} checkoutRef: ${{ parameters.checkoutRef }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml dependencyList: ${{ parameters.rocmTestDependencies }}
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: Iterate through test scripts - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
inputs: - task: Bash@3
targetType: inline displayName: Iterate through test scripts
script: | inputs:
for file in ./test_*; do targetType: inline
./$file | tee -a $(TEST_LOG_FILE) script: |
done for file in ./test_*; do
workingDirectory: $(Agent.BuildDirectory)/rocm/bin ./$file | tee -a $(TEST_LOG_FILE)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml done
parameters: workingDirectory: $(Agent.BuildDirectory)/rocm/bin
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_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,7 +25,7 @@ jobs:
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
@@ -46,7 +41,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: >-

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,116 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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 }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # compile hip-tests
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
# compile hip-tests componentName: hip-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml cmakeSourceDir: '../catch'
parameters: customBuildTarget: build_tests
componentName: ${{ parameters.componentName }} extraBuildFlags: >-
cmakeSourceDir: '../catch' -DHIP_PLATFORM=amd
customBuildTarget: build_tests -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
extraBuildFlags: >- -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DHIP_PLATFORM=amd -DHIP_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DOFFLOAD_ARCH_STR="--offload-arch=$(JOB_GPU_TARGET)"
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -GNinja
-DHIP_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DOFFLOAD_ARCH_STR="--offload-arch=${{ job.target }}" parameters:
-GNinja 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 }} extraEnvVars:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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.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)
${{ if parameters.triggerDownstreamJobs }}: - task: Bash@3
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} displayName: Symlink rocm_agent_enumerator
- task: Bash@3 inputs:
displayName: Symlink rocm_agent_enumerator targetType: inline
inputs: script: |
targetType: inline sudo rm -rf /opt/rocm
script: | sudo mkdir -p /opt/rocm/bin
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator
sudo mkdir -p /opt/rocm/bin - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator - 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: hip_tests
parameters: testDir: $(Agent.BuildDirectory)/rocm/share/hip
componentName: ${{ parameters.componentName }} - task: Bash@3
testDir: $(Agent.BuildDirectory)/rocm/share/hip displayName: Clean up symlink
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml condition: always()
parameters: inputs:
aptPackages: ${{ parameters.aptPackages }} targetType: inline
environment: test script: sudo rm -rf /opt/rocm
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
optSymLink: true parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)
optSymLink: true

View File

@@ -1,135 +1,61 @@
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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
- name: ROCM_PATH clean: all
value: $(Agent.BuildDirectory)/rocm steps:
pool: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
vmImage: ${{ variables.BASE_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 }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
packageManager: ${{ job.packageManager }} 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: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
checkoutRepo: ${{ parameters.checkoutRepo }} -GNinja
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
checkoutRef: ${{ parameters.checkoutRef }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
dependencyList: ${{ parameters.rocmDependencies }} # parameters:
os: ${{ job.os }} # aptPackages: ${{ parameters.aptPackages }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # extraEnvVars:
${{ if parameters.triggerDownstreamJobs }}: # - ROCM_PATH:::/home/user/workspace/rocm
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,103 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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 }}
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.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.target }} gpuTarget: $(JOB_GPU_TARGET)
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
parameters: -DCMAKE_BUILD_TYPE=Release
extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DHIP_PLATFORM=amd
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DBUILD_CLIENTS_BENCHMARKS=OFF
-DHIP_PLATFORM=amd -DBUILD_CLIENTS_SAMPLES=OFF
-DBUILD_CLIENTS_TESTS=ON -DCPACK_SET_DESTDIR=OFF
-DBUILD_CLIENTS_BENCHMARKS=OFF -GNinja
-DBUILD_CLIENTS_SAMPLES=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCPACK_SET_DESTDIR=OFF parameters:
-GNinja 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 }} pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }} installAOCL: true
- 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 }}
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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:
preTargetFilter: ${{ parameters.componentName }} 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
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: hipBLAS
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test
parameters: testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
componentName: ${{ parameters.componentName }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin' aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml pipModules: ${{ parameters.pipModules }}
parameters: environment: test
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
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,163 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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 pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
packageManager: ${{ job.packageManager }} 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-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-vendor.yml - script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
parameters: displayName: ROCm symbolic link
dependencyList: # Build and install gtest, lapack, hipBLAS-common
- gtest # $(Pipeline.Workspace)/deps is a temporary folder for the build process
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml # $(Pipeline.Workspace)/s/deps is part of the hipBLASLt repo
parameters: - script: mkdir $(Pipeline.Workspace)/deps
checkoutRef: ${{ parameters.checkoutRef }} displayName: Create temp folder for external dependencies
dependencyList: ${{ parameters.rocmDependencies }} # hipBLASLt already has a CMake script for external deps, so we can just run that
os: ${{ job.os }} # https://github.com/ROCm/hipBLASLt/blob/develop/deps/CMakeLists.txt
gpuTarget: ${{ job.target }} - script: cmake $(Pipeline.Workspace)/s/deps
aggregatePipeline: ${{ parameters.aggregatePipeline }} displayName: Configure hipBLASLt external dependencies
${{ if parameters.triggerDownstreamJobs }}: workingDirectory: $(Pipeline.Workspace)/deps
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - script: make
- task: Bash@3 displayName: Build hipBLASLt external dependencies
displayName: Add ROCm binaries to PATH workingDirectory: $(Pipeline.Workspace)/deps
inputs: - script: sudo make install
targetType: inline displayName: Install hipBLASLt external dependencies
script: | workingDirectory: $(Pipeline.Workspace)/deps
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" - script: |
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" mkdir -p $(CCACHE_DIR)
- task: Bash@3 echo "##vso[task.prependpath]/usr/lib/ccache"
displayName: Build and install LAPACK displayName: Update path for ccache
inputs: - task: Cache@2
targetType: inline displayName: Ccache caching
script: | inputs:
mkdir -p $(Agent.BuildDirectory)/temp-deps key: hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
cd $(Agent.BuildDirectory)/temp-deps path: $(CCACHE_DIR)
# position-independent LAPACK is required for almalinux8 builds restoreKeys: |
cmake -DBUILD_GTEST=OFF -DBUILD_LAPACK=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON $(Agent.BuildDirectory)/sparse/projects/hipblaslt/deps hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
make -j hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET)
sudo make install hipBLASLt | $(Agent.OS)
- script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
mkdir -p $(CCACHE_DIR) parameters:
echo "##vso[task.prependpath]/usr/lib/ccache" extraBuildFlags: >-
displayName: Update path for ccache -DCMAKE_BUILD_TYPE=Release
- task: Cache@2 -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
displayName: Ccache caching -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
inputs: -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
key: hipBLASLt | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_C_COMPILER_LAUNCHER=ccache
path: $(CCACHE_DIR) -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
restoreKeys: | -DTensile_LOGIC=
hipBLASLt | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) -DTensile_CPU_THREADS=
hipBLASLt | ${{ job.os }} | ${{ job.target }} -DTensile_LIBRARY_FORMAT=msgpack
hipBLASLt | ${{ job.os }} -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -GNinja
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt parameters:
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt/build gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor parameters:
-DCMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/llvm/include gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache parameters:
-DCMAKE_C_COMPILER_LAUNCHER=ccache aptPackages: ${{ parameters.aptPackages }}
-DAMDGPU_TARGETS=${{ job.target }} pipModules: ${{ parameters.pipModules }}
-DGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_CLIENTS_TESTS=ON extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
-DHIPBLASLT_ENABLE_ROCROLLER=ON installLatestCMake: true
-DHIPBLASLT_ENABLE_FETCH=ON extraEnvVars:
-DHIPBLASLT_ENABLE_BLIS=OFF - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-GNinja - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
parameters: - ROCM_PATH:::/home/user/workspace/rocm
componentName: ${{ parameters.componentName }} extraCopyDirectories:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - deps
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 }}: timeoutInMinutes: 120
- job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: hipBLASLt
timeoutInMinutes: 300 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
- name: ROCM_PATH JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
value: $(Agent.BuildDirectory)/rocm gfx90a:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx90a
workspace: JOB_TEST_POOL: ${{ variables.GFX90A_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: pipModules: ${{ parameters.pipModules }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - 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 }}
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 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} componentName: hipBLASLt
dependencyList: ${{ parameters.rocmTestDependencies }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
os: ${{ job.os }} testExecutable: './hipblaslt-test'
gpuTarget: ${{ job.target }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
${{ 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)
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,95 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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-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-vendor.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
dependencyList: extraBuildFlags: >-
- gtest -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -DBUILD_TEST=ON
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)
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: hipCUB
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
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,103 @@ 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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
- name: HIP_ROCCLR_HOME clean: all
value: $(Build.BinariesDirectory)/rocm strategy:
pool: matrix:
vmImage: ${{ variables.BASE_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} 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_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_BUILD_TYPE=Release
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DUSE_HIP_CLANG=ON
-DCMAKE_BUILD_TYPE=Release -DHIP_COMPILER=clang
-DAMDGPU_TARGETS=${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
-DUSE_HIP_CLANG=ON -DBUILD_CLIENTS_BENCHMARKS=OFF
-DHIP_COMPILER=clang -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_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)
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 }}
- ${{ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- checkout: none JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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
preTargetFilter: ${{ parameters.componentName }} 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)
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: hipFFT
parameters: testDir: '$(Agent.BuildDirectory)/rocm/bin'
componentName: ${{ parameters.componentName }} testExecutable: './hipfft-test'
testDir: '$(Agent.BuildDirectory)/rocm/bin' testParameters: '--test_prob 0.002 --gtest_output=xml:./test_output.xml --gtest_color=yes'
testExecutable: './hipfft-test' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.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 aptPackages: ${{ parameters.aptPackages }}
parameters: environment: test
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
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,102 @@ 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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
- name: HIP_ROCCLR_HOME clean: all
value: $(Build.BinariesDirectory)/rocm strategy:
pool: ${{ variables.MEDIUM_BUILD_POOL }} matrix:
${{ if eq(job.os, 'almalinux8') }}: gfx942:
container: JOB_GPU_TARGET: gfx942
image: rocmexternalcicd.azurecr.io/manylinux228:latest gfx90a:
endpoint: ContainerService3 JOB_GPU_TARGET: gfx90a
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_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
checkoutRef: ${{ parameters.checkoutRef }} -DBUILD_TEST=ON
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -DCMAKE_BUILD_TYPE=Release
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: -GNinja
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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
consolidateBuildAndInstall: true parameters:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DBUILD_TEST=ON # parameters:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip # aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor" # gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release # extraEnvVars:
-DAMDGPU_TARGETS=${{ job.target }} # - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
os: ${{ job.os }} - 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:
os: ${{ job.os }} componentName: hipRAND
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
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,108 @@ 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:
- ${{ build }}_ubuntu2204_${{ job.target }} vmImage: ${{ variables.BASE_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
pool: ${{ variables.MEDIUM_BUILD_POOL }} matrix:
workspace: gfx942:
clean: all JOB_GPU_TARGET: gfx942
steps: gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_GPU_TARGET: gfx90a
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
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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.target }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: # build external gtest and lapack
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
# build external gtest and lapack parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml componentName: external
parameters: cmakeBuildDir: 'deps/build'
componentName: external installDir: '$(Pipeline.Workspace)/deps-install'
cmakeBuildDir: '$(Agent.BuildDirectory)/s/deps/build' extraBuildFlags: >-
cmakeSourceDir: '$(Agent.BuildDirectory)/s/deps' -DBUILD_BOOST=OFF
installDir: '$(Pipeline.Workspace)/deps-install' -DBUILD_GTEST=OFF
extraBuildFlags: >- -GNinja
-DBUILD_BOOST=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_GTEST=OFF parameters:
-GNinja extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
parameters: -DCMAKE_BUILD_TYPE=Release
extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_BUILD_TYPE=Release -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DUSE_CUDA=OFF
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -GNinja
-DBUILD_CLIENTS_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - 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 # extraCopyDirectories:
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml # - deps-install
# 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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:
preTargetFilter: ${{ parameters.componentName }} 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
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: hipSOLVER
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: '$(Agent.BuildDirectory)/rocm/bin'
parameters: testExecutable: './hipsolver-test'
componentName: ${{ parameters.componentName }} testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: '$(Agent.BuildDirectory)/rocm/bin' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testExecutable: './hipsolver-test' parameters:
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes' 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

@@ -1,47 +1,25 @@
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:
- gfortran - cmake
- 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
default: default:
- aomp
- clr - clr
- llvm-project - llvm-project
- rocminfo - rocminfo
@@ -51,7 +29,6 @@ parameters:
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- aomp
- clr - clr
- llvm-project - llvm-project
- hipBLAS-common - hipBLAS-common
@@ -63,165 +40,107 @@ 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:
- ${{ build }}_${{ job.os }}_${{ job.target }} vmImage: ${{ variables.BASE_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
pool: matrix:
vmImage: ${{ variables.BASE_BUILD_POOL }} gfx942:
workspace: JOB_GPU_TARGET: gfx942
clean: all gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - 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-vendor.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: gpuTarget: $(JOB_GPU_TARGET)
- gtest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: extraBuildFlags: >-
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
os: ${{ job.os }} -DBUILD_CLIENTS_TESTS=ON
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DBUILD_CLIENTS_SAMPLES=OFF
${{ if parameters.triggerDownstreamJobs }}: -GNinja
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: artifactName: hipSPARSE
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ artifactName: hipSPARSE
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_Fortran_COMPILER=gfortran publish: false
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DBUILD_CLIENTS_SAMPLES=OFF sourceDir: $(Build.SourcesDirectory)/build/clients
-GNinja contentsString: matrices/**
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} artifactName: testMatrices
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 }} # environment: test
os: ${{ job.os }} # gpuTarget: $(JOB_GPU_TARGET)
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: hipSPARSE
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testExecutable: './hipsparse-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testParameters: '--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 }}
os: ${{ job.os }} environment: test
testDir: '$(Agent.BuildDirectory)/rocm/bin' gpuTarget: $(JOB_GPU_TARGET)
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,13 +28,10 @@ parameters:
- hipSPARSE - hipSPARSE
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm-cmake
- rocm_smi_lib
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- rocSPARSE
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -69,198 +40,139 @@ 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
- rocSPARSE
- 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 -DCMAKE_Fortran_COMPILER=f95
workingDirectory: $(Pipeline.Workspace)/deps -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- script: make -DTensile_LOGIC=
displayName: Build hipSPARSELt external dependencies -DTensile_CPU_THREADS=
workingDirectory: $(Pipeline.Workspace)/deps -DTensile_LIBRARY_FORMAT=msgpack
- script: sudo make install -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
displayName: Install hipSPARSELt external dependencies -DROCM_PATH=$(Agent.BuildDirectory)/rocm
workingDirectory: $(Pipeline.Workspace)/deps -DBUILD_CLIENTS_TESTS=ON
# ----------------------------- -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)
# NOTE: the following options are old build only - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# and can be removed after full transition to new build parameters:
# -DAMDGPU_TARGETS=${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
# -DCMAKE_Fortran_COMPILER=f95 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# -DTensile_LOGIC= - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# -DTensile_CPU_THREADS= parameters:
# -DTensile_LIBRARY_FORMAT=msgpack aptPackages: ${{ parameters.aptPackages }}
# -DROCM_PATH=$(Agent.BuildDirectory)/rocm pipModules: ${{ parameters.pipModules }}
# -DBUILD_CLIENTS_TESTS=ON gpuTarget: $(JOB_GPU_TARGET)
# -DBUILD_USE_LOCAL_TENSILE=OFF extraCopyDirectories:
extraBuildFlags: >- - deps
-DCMAKE_BUILD_TYPE=Release extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ extraEnvVars:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
-DGPU_TARGETS=${{ job.target }} - CMAKE_CXX_COMPILER:::/home/user/workspace/rocm/llvm/bin/hipcc
-DAMDGPU_TARGETS=${{ job.target }} - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
-DCMAKE_Fortran_COMPILER=f95 installLatestCMake: true
-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,95 @@ 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 }} gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} aptPackages: ${{ parameters.aptPackages }}
- 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.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
${{ if parameters.triggerDownstreamJobs }}: checkoutRef: ${{ parameters.checkoutRef }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} 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_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm extraBuildFlags: >-
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-DHIPTENSOR_BUILD_TESTS=ON -DHIPTENSOR_BUILD_TESTS=ON
-DAMDGPU_TARGETS=${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja multithreadFlag: -- -j32
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.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-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-links.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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.target }} parameters:
- 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/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.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
${{ if parameters.triggerDownstreamJobs }}: gpuTarget: $(JOB_GPU_TARGET)
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: hipTensor
componentName: ${{ parameters.componentName }} testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor'
testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor' testParameters: '-E ".*-extended" --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
testParameters: '-E ".*-extended" --extra-verbose --output-on-failure --force-new-ctest-process --output-junit test_output.xml' - 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

@@ -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,115 @@ 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 }} gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml JOB_GPU_TARGET: gfx90a
- 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 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.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.target }} checkoutRepo: ${{ parameters.checkoutRepo }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
extraBuildFlags: >- dependencyList: ${{ parameters.rocmDependencies }}
-DROCM_PATH=$(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm parameters:
-DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory) extraBuildFlags: >-
-DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_Fortran_FLAGS="-Mfree -fPIC" -DCMAKE_BUILD_TYPE=Release
-DCMAKE_Fortran_FLAGS_DEBUG="" -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
-DHIPFORT_COMPILER_FLAGS="-cpp" -DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory)
-DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar -DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang
-DHIPFORT_RANLIB=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ranlib -DCMAKE_Fortran_FLAGS="-Mfree -fPIC"
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_Fortran_FLAGS_DEBUG=""
-DBUILD_TESTING=ON -DHIPFORT_COMPILER_FLAGS="-cpp"
-GNinja -DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DHIPFORT_RANLIB=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ranlib
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -DBUILD_TESTING=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
installLatestCMake: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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.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_GPU_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.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} 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/checkout.yml
- task: Bash@3 parameters:
displayName: 'ROCm symbolic link' checkoutRepo: ${{ parameters.checkoutRepo }}
inputs: - task: Bash@3
targetType: inline displayName: 'ROCm symbolic link'
script: | inputs:
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral targetType: inline
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm script: |
workingDirectory: $(Build.SourcesDirectory) sudo rm -rf /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 workingDirectory: $(Build.SourcesDirectory)
displayName: 'Test hipfort' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
inputs: - task: Bash@3
targetType: inline displayName: 'Test hipfort'
script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all inputs:
workingDirectory: $(Build.SourcesDirectory)/test targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all
parameters: workingDirectory: $(Build.SourcesDirectory)/test
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
optSymLink: true environment: test
gpuTarget: $(JOB_GPU_TARGET)
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.ULTRA_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;flang
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 --filter-out="live-debug-values-spill-tracking" ./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

@@ -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,106 @@ 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 }} timeoutInMinutes: 90
${{ if parameters.buildDependsOn }}: variables:
dependsOn: - group: common
- ${{ each build in parameters.buildDependsOn }}: - template: /.azuredevops/variables-global.yml
- ${{ build }}_${{ job.os }}_${{ job.target }} - name: HIP_ROCCLR_HOME
timeoutInMinutes: 120 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:
${{ if eq(job.os, 'almalinux8') }}: JOB_GPU_TARGET: gfx942
container: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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/dependencies-cmake-latest.yml
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/dependencies-cmake-custom.yml checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml submoduleBehaviour: recursive
- 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 }}
submoduleBehaviour: recursive gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
dependencyList: extraBuildFlags: >-
- gtest -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
parameters: -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_BUILD_TYPE=Release
dependencyList: ${{ parameters.rocmDependencies }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -DBUILD_TESTS=ON
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake;$(Agent.BuildDirectory)/rocm/libexec/hipify
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: -GNinja
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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
extraBuildFlags: >- parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc - 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:
-DBUILD_TESTS=ON aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake;$(Agent.BuildDirectory)/rocm/libexec/hipify gpuTarget: $(JOB_GPU_TARGET)
-DGPU_TARGETS=${{ job.target }} extraEnvVars:
-GNinja - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml installLatestCMake: true
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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
preTargetFilter: ${{ parameters.componentName }} parameters:
os: ${{ job.os }} 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)
os: ${{ job.os }} - 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: rccl
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testExecutable: './rccl-UnitTests'
parameters: testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
testDir: '$(Agent.BuildDirectory)/rocm/bin' aptPackages: ${{ parameters.aptPackages }}
testExecutable: './rccl-UnitTests' environment: test
testParameters: '--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.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,128 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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/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:
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 }} # Build grpc
dependencyList: ${{ parameters.rocmDependencies }} - task: Bash@3
gpuTarget: ${{ job.target }} displayName: 'git clone grpc'
aggregatePipeline: ${{ parameters.aggregatePipeline }} inputs:
${{ if parameters.triggerDownstreamJobs }}: targetType: inline
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} script: git clone -b v1.61.0 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules
# Build grpc workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
displayName: 'git clone grpc' parameters:
inputs: cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build
targetType: inline installDir: $(Build.SourcesDirectory)/bin
script: git clone -b v1.67.1 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules extraBuildFlags: >-
workingDirectory: $(Build.SourcesDirectory) -DgRPC_INSTALL=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DgRPC_BUILD_TESTS=OFF
parameters: -DBUILD_SHARED_LIBS=ON
componentName: ${{ parameters.componentName }} -DCMAKE_INSTALL_LIBDIR=lib
cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build -DCMAKE_BUILD_TYPE=Release
cmakeSourceDir: $(Build.SourcesDirectory)/grpc -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
installDir: $(Build.SourcesDirectory)/bin -GNinja
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DgRPC_INSTALL=ON parameters:
-DgRPC_BUILD_TESTS=OFF extraBuildFlags: >-
-DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_INSTALL_LIBDIR=lib -DGRPC_ROOT="$(Build.SourcesDirectory)/bin"
-DCMAKE_BUILD_TYPE=Release -DBUILD_RVS=ON
-DAMDGPU_TARGETS=${{ job.target }} -DBUILD_PROFILER=ON
-GNinja -DBUILD_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
componentName: ${{ parameters.componentName }} parameters:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DGRPC_ROOT="$(Build.SourcesDirectory)/bin" parameters:
-DBUILD_RVS=ON gpuTarget: $(JOB_GPU_TARGET)
-DBUILD_PROFILER=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DBUILD_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml aptPackages: ${{ parameters.aptPackages }}
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 }}
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 gfx90a:
- name: ROCM_DIR JOB_GPU_TARGET: gfx90a
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX90A_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)
- 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:
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: - task: Bash@3
checkoutRef: ${{ parameters.checkoutRef }} displayName: Setup test environment
dependencyList: ${{ parameters.rocmTestDependencies }} inputs:
gpuTarget: ${{ job.target }} targetType: inline
${{ if parameters.triggerDownstreamJobs }}: script: |
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sudo rm -rf /opt/rocm
- task: Bash@3 sudo rm -rf /usr/sbin/rdcd
displayName: Setup test environment sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
inputs: sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rdcd /usr/sbin/rdcd
targetType: inline echo $(Agent.BuildDirectory)/rocm/lib/rdc/grpc/lib | sudo tee /etc/ld.so.conf.d/grpc.conf
script: | sudo ldconfig -v
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rdcd /usr/sbin/rdcd - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
echo $(Agent.BuildDirectory)/rocm/lib/rdc/grpc/lib | sudo tee /etc/ld.so.conf.d/grpc.conf - task: Bash@3
sudo ldconfig -v displayName: Test rdc
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml inputs:
- task: Bash@3 targetType: inline
displayName: Test rdc script: >-
inputs: $(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst
targetType: inline --batch_mode
script: >- --start_rdcd
$(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst --unauth_comm
--batch_mode - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
--start_rdcd parameters:
--unauth_comm aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml environment: test
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} extraPaths: /home/user/workspace/rocm/bin
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,194 @@ 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:
pool: ${{ variables.MEDIUM_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: strategy:
- task: Bash@3 matrix:
displayName: 'Register libjpeg-turbo packages' gfx942:
inputs: JOB_GPU_TARGET: gfx942
targetType: inline gfx90a:
script: | JOB_GPU_TARGET: gfx90a
sudo mkdir --parents --mode=0755 /etc/apt/keyrings steps:
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null - task: Bash@3
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 displayName: 'Register libjpeg-turbo packages'
sudo apt update inputs:
apt-cache show libjpeg-turbo-official | grep Version targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml script: |
parameters: sudo mkdir --parents --mode=0755 /etc/apt/keyrings
aptPackages: ${{ parameters.aptPackages }} wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null
pipModules: ${{ parameters.pipModules }} 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
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml sudo apt update
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml apt-cache show libjpeg-turbo-official | grep Version
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- task: Bash@3 aptPackages: ${{ parameters.aptPackages }}
displayName: 'Clone PyBind11' pipModules: ${{ parameters.pipModules }}
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11 parameters:
workingDirectory: '$(Build.SourcesDirectory)' checkoutRepo: ${{ parameters.checkoutRepo }}
- task: Bash@3 - task: Bash@3
displayName: 'Clone RapidJSON' displayName: 'Clone PyBind11'
inputs: inputs:
targetType: inline targetType: inline
script: git clone --depth 1 https://github.com/Tencent/rapidjson.git script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11
workingDirectory: '$(Build.SourcesDirectory)' workingDirectory: '$(Build.SourcesDirectory)'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - task: Bash@3
parameters: displayName: 'Clone RapidJSON'
componentName: PyBind11 inputs:
cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build' targetType: inline
cmakeSourceDir: '$(Build.SourcesDirectory)/pybind11' script: git clone --depth 1 https://github.com/Tencent/rapidjson.git
customInstallPath: false workingDirectory: '$(Build.SourcesDirectory)'
installEnabled: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
extraBuildFlags: >- parameters:
-DDOWNLOAD_CATCH=ON componentName: PyBind11
-DDOWNLOAD_EIGEN=ON cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build'
-GNinja customInstallPath: false
- task: Bash@3 installEnabled: false
displayName: 'Install PyBind11' extraBuildFlags: >-
inputs: -DDOWNLOAD_CATCH=ON
targetType: inline -DDOWNLOAD_EIGEN=ON
script: sudo cmake --build . --target install -GNinja
workingDirectory: '$(Build.SourcesDirectory)/pybind11/build' - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml displayName: 'Install PyBind11'
parameters: inputs:
componentName: RapidJSON targetType: inline
cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build' script: sudo cmake --build . --target install
cmakeSourceDir: '$(Build.SourcesDirectory)/rapidjson' workingDirectory: '$(Build.SourcesDirectory)/pybind11/build'
customInstallPath: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
installEnabled: false parameters:
extraBuildFlags: >- componentName: RapidJSON
-GNinja cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build'
- task: Bash@3 customInstallPath: false
displayName: 'Install RapidJSON' installEnabled: false
inputs: extraBuildFlags: >-
targetType: inline -GNinja
script: sudo cmake --build . --target install - task: Bash@3
workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build' displayName: 'Install RapidJSON'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml inputs:
parameters: targetType: inline
checkoutRef: ${{ parameters.checkoutRef }} script: sudo cmake --build . --target install
dependencyList: ${{ parameters.rocmDependencies }} workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build'
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo parameters:
-DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo
-GNinja -DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
- 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)
- 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_GPU_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
# registerJPEGPackages: true # parameters:
# gpuTarget: ${{ job.target }} # aptPackages: ${{ parameters.aptPackages }}
# extraCopyDirectories: # pipModules: ${{ parameters.pipModules }}
# - /opt/libjpeg-turbo # registerJPEGPackages: true
# gpuTarget: $(JOB_GPU_TARGET)
# extraCopyDirectories:
# - /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: gfx90a:
- task: Bash@3 JOB_GPU_TARGET: gfx90a
displayName: 'Register libjpeg-turbo packages' JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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
- 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.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: gpuTarget: $(JOB_GPU_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.target }} parameters:
- task: Bash@3 checkoutRef: ${{ parameters.checkoutRef }}
displayName: Link libjpeg-turbo dependencyList: ${{ parameters.rocmTestDependencies }}
inputs: gpuTarget: $(JOB_GPU_TARGET)
targetType: inline - task: Bash@3
script: | displayName: Link libjpeg-turbo
echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf inputs:
sudo ldconfig -v targetType: inline
- task: Bash@3 script: |
displayName: Build rocAL tests echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf
inputs: sudo ldconfig -v
targetType: inline - task: Bash@3
script: | displayName: Build rocAL tests
mkdir rocAL-tests inputs:
cd rocAL-tests targetType: inline
cmake $(Agent.BuildDirectory)/rocm/share/rocal/test script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml mkdir rocAL-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml cd rocAL-tests
parameters: cmake $(Agent.BuildDirectory)/rocm/share/rocal/test
componentName: rocAL - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testDir: rocAL-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- task: Bash@3 parameters:
displayName: Clean up libjpeg-turbo componentName: rocAL
condition: always() testDir: rocAL-tests
inputs: - task: Bash@3
targetType: inline displayName: Clean up libjpeg-turbo
script: | condition: always()
sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf inputs:
sudo ldconfig -v targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml script: |
parameters: sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf
aptPackages: ${{ parameters.aptPackages }} sudo ldconfig -v
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
registerJPEGPackages: true parameters:
environment: test aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} pipModules: ${{ parameters.pipModules }}
extraCopyDirectories: registerJPEGPackages: true
- /opt/libjpeg-turbo environment: test
# docker image will be missing the ldconfig to libjpeg-turbo gpuTarget: $(JOB_GPU_TARGET)
extraCopyDirectories:
- /opt/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,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: 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:
pool: ${{ variables.MEDIUM_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: strategy:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml matrix:
parameters: gfx942:
aptPackages: ${{ parameters.aptPackages }} JOB_GPU_TARGET: gfx942
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gfx90a:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml JOB_GPU_TARGET: gfx90a
parameters: steps:
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
extraBuildFlags: >- checkoutRef: ${{ parameters.checkoutRef }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencyList: ${{ parameters.rocmDependencies }}
-DCMAKE_BUILD_TYPE=Release gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip parameters:
-DAMDGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DBUILD_CLIENTS_BENCHMARKS=OFF -DCMAKE_BUILD_TYPE=Release
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
-GNinja -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DBUILD_CLIENTS_TESTS=ON
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_BENCHMARKS=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.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-links.yml parameters:
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
# parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# aptPackages: ${{ parameters.aptPackages }} parameters:
# gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
# extraEnvVars: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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.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_GPU_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.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_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: rocALUTION - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)/rocm/bin' parameters:
testExecutable: './rocalution-test' componentName: rocALUTION
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testExecutable: './rocalution-test'
parameters: testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_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,129 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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 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:
packageManager: ${{ job.packageManager }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.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.rocmDependencies }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
os: ${{ job.os }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
dependencyList: -DCMAKE_BUILD_TYPE=Release
- gtest -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang
parameters: -DGPU_TARGETS=$(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} -DTensile_CODE_OBJECT_VERSION=default
dependencyList: ${{ parameters.rocmDependencies }} -DTensile_LOGIC=asm_full
os: ${{ job.os }} -DTensile_SEPARATE_ARCHITECTURES=ON
gpuTarget: ${{ job.target }} -DTensile_LAZY_LIBRARY_LOADING=ON
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DTensile_LIBRARY_FORMAT=msgpack
${{ if parameters.triggerDownstreamJobs }}: -DBUILD_CLIENTS_TESTS=ON
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DBUILD_CLIENTS_BENCHMARKS=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DBUILD_CLIENTS_SAMPLES=OFF
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -GNinja
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/projects/rocblas - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/projects/rocblas/build parameters:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++ gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-GNinja aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml pipModules: ${{ parameters.pipModules }}
parameters: installAOCL: true
componentName: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} extraEnvVars:
os: ${{ job.os }} - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
gpuTarget: ${{ job.target }} - TENSILE_ROCM_ASSEMBLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler
parameters: - ROCM_PATH:::/home/user/workspace/rocm
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 gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
clean: all JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
steps: steps:
- checkout: none - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
os: ${{ job.os }} - 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 }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- 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.rocmTestDependencies }} componentName: rocBLAS
os: ${{ job.os }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
gpuTarget: ${{ job.target }} testExecutable: './rocblas-test'
${{ if parameters.triggerDownstreamJobs }}: testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: pipModules: ${{ parameters.pipModules }}
componentName: ${{ parameters.componentName }} environment: test
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
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,93 @@ 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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml steps:
- name: ROCM_PATH - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
value: $(Agent.BuildDirectory)/rocm parameters:
pool: aptPackages: ${{ parameters.aptPackages }}
vmImage: ${{ variables.BASE_BUILD_POOL }} registerROCmPackages: true
${{ 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: >-
registerROCmPackages: true -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -DCMAKE_BUILD_TYPE=Release
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 }} # registerROCmPackages: true
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true registerROCmPackages: true
- 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: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # anything in /opt may be persistent across runs
checkoutRef: ${{ parameters.checkoutRef }} # so we need to remove the symlink if it already exists
dependencyList: ${{ parameters.rocmTestDependencies }} - script: |
gpuTarget: ${{ job.target }} sudo rm -rf /opt/rocm
os: ${{ job.os }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 mkdir rocDecode-tests
displayName: Build rocDecode tests cd rocDecode-tests
inputs: cmake /opt/rocm/share/rocdecode/test
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
${{ iif(eq(job.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }} parameters:
mkdir rocDecode-tests componentName: rocDecode
cd rocDecode-tests testDir: 'rocDecode-tests'
cmake $(Agent.BuildDirectory)/rocm/share/rocdecode/test - script: sudo rm /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml condition: always()
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: rocDecode aptPackages: ${{ parameters.aptPackages }}
testDir: 'rocDecode-tests' registerROCmPackages: true
os: ${{ job.os }} environment: test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
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,103 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} 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_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DUSE_HIP_CLANG=ON
-DCMAKE_BUILD_TYPE=Release -DHIP_COMPILER=clang
-DAMDGPU_TARGETS=${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
-DUSE_HIP_CLANG=ON -DBUILD_CLIENTS_BENCHMARKS=OFF
-DHIP_COMPILER=clang -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_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)
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 extraEnvVars:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- checkout: none JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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
preTargetFilter: ${{ parameters.componentName }} 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)
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: rocFFT
parameters: testDir: '$(Agent.BuildDirectory)/rocm/bin'
componentName: ${{ parameters.componentName }} testExecutable: './rocfft-test'
testDir: '$(Agent.BuildDirectory)/rocm/bin' testParameters: '--test_prob 0.004 --gtest_output=xml:./test_output.xml --gtest_color=yes'
testExecutable: './rocfft-test' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.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 aptPackages: ${{ parameters.aptPackages }}
parameters: environment: test
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
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,103 @@ 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:
- name: ROCM_PATH vmImage: ${{ variables.BASE_BUILD_POOL }}
value: $(Agent.BuildDirectory)/rocm workspace:
pool: clean: all
${{ if eq(job.os, 'ubuntu2404') }}: strategy:
name: rocm-ci_medium_build_pool_2404 matrix:
${{ else }}: gfx942:
name: ${{ variables.MEDIUM_BUILD_POOL }} JOB_GPU_TARGET: gfx942
${{ if eq(job.os, 'almalinux8') }}: gfx90a:
container: JOB_GPU_TARGET: gfx90a
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: 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:
packageManager: ${{ job.packageManager }} checkoutRepo: ${{ parameters.checkoutRepo }}
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)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} extraBuildFlags: >-
dependencyList: ${{ parameters.rocmDependencies }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -DCMAKE_BUILD_TYPE=Release
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
consolidateBuildAndInstall: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
extraBuildFlags: >- # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" # parameters:
-DCMAKE_BUILD_TYPE=Release # aptPackages: ${{ parameters.aptPackages }}
-DGPU_TARGETS=${{ job.target }} # gpuTarget: $(JOB_GPU_TARGET)
-GNinja # registerROCmPackages: true
- 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true registerROCmPackages: true
- 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: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml # anything in /opt may be persistent across runs
parameters: # so we need to remove the symlink if it already exists
checkoutRef: ${{ parameters.checkoutRef }} - script: |
dependencyList: ${{ parameters.rocmTestDependencies }} sudo rm -rf /opt/rocm
gpuTarget: ${{ job.target }} sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
os: ${{ job.os }} mkdir rocJPEG-tests
- task: Bash@3 cd rocJPEG-tests
displayName: Build rocJPEG tests cmake $(Agent.BuildDirectory)/rocm/share/rocjpeg/test
inputs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
script: | parameters:
${{ iif(eq(job.os, 'almalinux8'), 'source /opt/rh/gcc-toolset-14/enable', '') }} componentName: rocJPEG
mkdir rocJPEG-tests testDir: 'rocJPEG-tests'
cd rocJPEG-tests - script: sudo rm /opt/rocm
cmake $(Agent.BuildDirectory)/rocm/share/rocjpeg/test condition: always()
- 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: rocJPEG environment: test
testDir: 'rocJPEG-tests' gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml optSymLink: true
parameters:
aptPackages: ${{ parameters.aptPackages }}
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:
@@ -27,7 +22,6 @@ parameters:
- numpy - numpy
- tomli - tomli
- scipy - scipy
- pybind11
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -38,17 +32,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: rocMLIR_build - job: rocMLIR
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -68,7 +53,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: >-
@@ -87,69 +71,68 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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/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.target }} checkoutRef: ${{ parameters.checkoutRef }}
- task: Bash@3 dependencyList: ${{ parameters.rocmDependencies }}
displayName: Symlink rocm_agent_enumerator gpuTarget: $(JOB_GPU_TARGET)
inputs: - task: Bash@3
targetType: inline displayName: ROCm symbolic link
script: | inputs:
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral targetType: inline
sudo mkdir -p /opt/rocm/bin script: |
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator sudo rm -rf /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
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;$(Agent.BuildDirectory)/rocm/lib -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang
-DCMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/lib -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DAMDGPU_TARGETS=${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DROCM_TEST_CHIPSET=${{ job.target }} -DROCM_TEST_CHIPSET=$(JOB_GPU_TARGET)
-GNinja -GNinja
- 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: rocMLIR componentName: rocMLIR
testDir: $(Build.SourcesDirectory)/build testDir: $(Build.SourcesDirectory)/build
testExecutable: ninja testExecutable: ninja
testParameters: check-rocmlir testParameters: check-rocmlir
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,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,92 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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-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-vendor.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
dependencyList: extraBuildFlags: >-
- gtest -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DBUILD_BENCHMARK=ON
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
checkoutRef: ${{ parameters.checkoutRef }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} -DBUILD_TEST=ON
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_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor" aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ gpuTarget: $(JOB_GPU_TARGET)
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: rocPRIM
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
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:
@@ -52,213 +31,217 @@ parameters:
- clr - clr
- llvm-project - llvm-project
- rocDecode - rocDecode
- rocJPEG
- rocm-cmake - rocm-cmake
- rocm-core - rocm-core
- rocminfo - rocminfo
- 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 }
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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
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
vmImage: ${{ variables.BASE_BUILD_POOL }} gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
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
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-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:
aggregatePipeline: ${{ parameters.aggregatePipeline }} targetType: inline
${{ if parameters.triggerDownstreamJobs }}: script: |
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} sudo rm -rf /opt/rocm
- task: Bash@3 sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
displayName: 'Save Python Package Paths' - task: Bash@3
inputs: displayName: 'Save Python Package Paths'
targetType: inline inputs:
script: | targetType: inline
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" script: |
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)"
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')"
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
installEnabled: false parameters:
extraBuildFlags: >- installEnabled: false
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH)
-DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory) -DCMAKE_BUILD_TYPE=Release
-GNinja -DGPU_TARGETS=$(JOB_GPU_TARGET)
- task: Bash@3 -DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory)
displayName: 'rocPyDecode install' -GNinja
inputs: - task: Bash@3
targetType: inline displayName: 'rocPyDecode install'
script: | inputs:
sudo cmake --build . --target install targetType: inline
sudo chown -R $(whoami):$(id -gn) $(Build.BinariesDirectory) script: |
workingDirectory: $(Build.SourcesDirectory)/build sudo cmake --build . --target install
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml sudo chown -R $(whoami):$(id -gn) $(Build.BinariesDirectory)
parameters: workingDirectory: $(Build.SourcesDirectory)/build
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
publish: false parameters:
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: Create wheel file publish: false
inputs: - task: Bash@3
targetType: inline displayName: Create wheel file
script: | inputs:
export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip targetType: inline
sudo python3 setup.py bdist_wheel script: |
sudo chown -R $(whoami):$(id -gn) $(find . -name "*.whl") export ROCM_PATH=$(Agent.BuildDirectory)/rocm
workingDirectory: $(Build.SourcesDirectory) export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml sudo python3 setup.py bdist_wheel
parameters: sudo chown -R $(whoami):$(id -gn) $(find . -name "*.whl")
sourceDir: $(Build.SourcesDirectory)/dist workingDirectory: $(Build.SourcesDirectory)
contentsString: '*.whl' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
targetDir: $(Build.ArtifactStagingDirectory) parameters:
clean: false sourceDir: $(Build.SourcesDirectory)/dist
- task: PublishPipelineArtifact@1 contentsString: '*.whl'
displayName: 'wheel file Publish' targetDir: $(Build.ArtifactStagingDirectory)
retryCountOnTaskFailure: 3 clean: false
inputs: - task: PublishPipelineArtifact@1
targetPath: $(Build.ArtifactStagingDirectory) displayName: 'wheel file Publish'
- task: Bash@3 retryCountOnTaskFailure: 3
displayName: Save pipeline artifact file names inputs:
inputs: targetPath: $(Build.ArtifactStagingDirectory)
workingDirectory: $(Pipeline.Workspace) - task: Bash@3
targetType: inline displayName: Save pipeline artifact file names
script: | inputs:
whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1) workingDirectory: $(Pipeline.Workspace)
if [ -n "$whlFile" ]; then targetType: inline
echo $(basename "$whlFile") >> pipelineArtifacts.txt script: |
fi whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml if [ -n "$whlFile" ]; then
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml echo $(basename "$whlFile") >> pipelineArtifacts.txt
# parameters: fi
# 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.target }} # parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: $(JOB_GPU_TARGET)
# optSymLink: true
- ${{ 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml pipModules: ${{ parameters.pipModules }}
- task: DownloadPipelineArtifact@2 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
displayName: 'Download Pipeline Wheel Files' - task: DownloadPipelineArtifact@2
retryCountOnTaskFailure: 3 displayName: 'Download Pipeline Wheel Files'
inputs: inputs:
itemPattern: '**/*.whl' itemPattern: '**/*.whl'
targetPath: $(Agent.BuildDirectory) targetPath: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
gpuTarget: ${{ job.target }} 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.target }} gpuTarget: $(JOB_GPU_TARGET)
setupHIPLibrarySymlinks: true setupHIPLibrarySymlinks: true
- task: Bash@3 - task: Bash@3
displayName: pip install displayName: pip install
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
pip uninstall -y rocPyDecode pip uninstall -y rocPyDecode
find -name *.whl -exec pip install {} \; find -name *.whl -exec pip install {} \;
workingDirectory: $(Agent.BuildDirectory) workingDirectory: $(Agent.BuildDirectory)
- task: Bash@3 - task: Bash@3
displayName: Setup search paths displayName: Setup search paths
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" sudo rm -rf /opt/rocm
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)"
- task: CMake@1 echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')"
displayName: 'rocPyDecode Test CMake Flags' echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')"
inputs: - task: CMake@1
workingDirectory: $(Agent.BuildDirectory)/rocm/share/rocpydecode/tests displayName: 'rocPyDecode Test CMake Flags'
cmakeArgs: >- inputs:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) cmakeArgs: >-
-DCMAKE_BUILD_TYPE=Release -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH)
. -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml ..
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: rocPyDecode - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: $(Agent.BuildDirectory)/rocm/share/rocpydecode/tests parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml componentName: rocPyDecode
parameters: testDir: $(Build.SourcesDirectory)/build
aptPackages: ${{ parameters.aptPackages }} # sudo required for pip install but screws up permissions for next pipeline run
pipModules: ${{ parameters.pipModules }} - task: Bash@3
environment: test displayName: Clean up test environment
gpuTarget: ${{ job.target }} condition: always()
pythonEnvVars: true inputs:
# note that this docker won't have hip-python installed via pip 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,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: 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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
- name: HIP_ROCCLR_HOME clean: all
value: $(Build.BinariesDirectory)/rocm strategy:
pool: matrix:
${{ if eq(job.os, 'ubuntu2404') }}: gfx942:
vmImage: 'ubuntu-24.04' JOB_GPU_TARGET: gfx942
${{ else }}: gfx90a:
name: ${{ variables.MEDIUM_BUILD_POOL }} JOB_GPU_TARGET: gfx90a
${{ 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/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 gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DBUILD_TEST=ON
dependencyList: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- gtest -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} # - 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 }} # gpuTarget: $(JOB_GPU_TARGET)
consolidateBuildAndInstall: true # extraEnvVars:
extraBuildFlags: >- # - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: rocRAND
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
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,116 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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 - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml displayName: 'Clone lapack'
parameters: inputs:
checkoutRepo: ${{ parameters.checkoutRepo }} targetType: inline
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack
- task: Bash@3 workingDirectory: '$(Build.SourcesDirectory)'
displayName: 'Clone lapack' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
inputs: parameters:
targetType: inline checkoutRef: ${{ parameters.checkoutRef }}
script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack dependencyList: ${{ parameters.rocmDependencies }}
workingDirectory: '$(Build.SourcesDirectory)' gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
dependencyList: componentName: lapack
- gtest extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls
checkoutRef: ${{ parameters.checkoutRef }} -DBUILD_TESTING=OFF
dependencyList: ${{ parameters.rocmDependencies }} -DCBLAS=ON
os: ${{ job.os }} -DLAPACKE=OFF
gpuTarget: ${{ job.target }} -GNinja
aggregatePipeline: ${{ parameters.aggregatePipeline }} cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build'
${{ if parameters.triggerDownstreamJobs }}: installDir: '$(Pipeline.Workspace)/deps-install'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: extraBuildFlags: >-
componentName: lapack -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
os: ${{ job.os }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
extraBuildFlags: >- -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_CLIENTS_TESTS=ON
-DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls -DBUILD_CLIENTS_BENCHMARKS=OFF
-DBUILD_TESTING=OFF -DBUILD_CLIENTS_SAMPLES=OFF
-DCBLAS=ON -GNinja
-DLAPACKE=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-GNinja parameters:
cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build' gpuTarget: $(JOB_GPU_TARGET)
cmakeSourceDir: '$(Build.SourcesDirectory)/lapack' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
installDir: '$(Pipeline.Workspace)/deps-install' parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
extraBuildFlags: >- parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install;$(Agent.BuildDirectory)/vendor aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang extraCopyDirectories:
-DAMDGPU_TARGETS=${{ job.target }} - deps-install
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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:
preTargetFilter: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - 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:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
os: ${{ job.os }} 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: rocSOLVER
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
${{ if parameters.triggerDownstreamJobs }}: testExecutable: './rocsolver-test'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testParameters: '--gtest_filter="*checkin*" --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: './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,115 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} 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 }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: dependencyList: ${{ parameters.rocmDependencies }}
- gtest 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 }} extraBuildFlags: >-
dependencyList: ${{ parameters.rocmDependencies }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
gpuTarget: ${{ job.target }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
os: ${{ job.os }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
aggregatePipeline: ${{ parameters.aggregatePipeline }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_BUILD_TYPE=Release
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DBUILD_CLIENTS_SAMPLES=OFF
parameters: -DBUILD_CLIENTS_TESTS=ON
os: ${{ job.os }} -DBUILD_CLIENTS_BENCHMARKS=OFF
extraBuildFlags: >- -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor -GNinja
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang parameters:
-DROCM_PATH=$(Agent.BuildDirectory)/rocm artifactName: rocSPARSE
-DCMAKE_BUILD_TYPE=Release gpuTarget: $(JOB_GPU_TARGET)
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DBUILD_CLIENTS_SAMPLES=OFF parameters:
-DBUILD_CLIENTS_TESTS=ON artifactName: rocSPARSE
-DBUILD_CLIENTS_BENCHMARKS=OFF gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake publish: false
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: sourceDir: $(Build.SourcesDirectory)/build/clients
componentName: ${{ parameters.componentName }} contentsString: matrices/**
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml artifactName: testMatrices
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
os: ${{ job.os }} parameters:
publish: false aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: extraEnvVars:
sourceDir: $(Agent.BuildDirectory)/s/build/clients - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: rocSPARSE
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testExecutable: './rocsparse-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testParameters: '--gtest_filter="*quick*" --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 }}
os: ${{ job.os }} environment: test
testDir: '$(Agent.BuildDirectory)/rocm/bin' gpuTarget: $(JOB_GPU_TARGET)
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,96 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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-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-vendor.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
dependencyList: extraBuildFlags: >-
- gtest -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
checkoutRef: ${{ parameters.checkoutRef }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
dependencyList: ${{ parameters.rocmDependencies }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -DBUILD_TEST=ON
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:
-GNinja aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ gpuTarget: $(JOB_GPU_TARGET)
-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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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)
preTargetFilter: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
os: ${{ job.os }} 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:
os: ${{ job.os }} componentName: rocThrust
${{ if parameters.triggerDownstreamJobs }}: testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust'
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - 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: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
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,97 @@ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release -DROCWMMA_BUILD_TESTS=ON
-DROCWMMA_BUILD_TESTS=ON -DROCWMMA_BUILD_SAMPLES=OFF
-DROCWMMA_BUILD_SAMPLES=OFF -DGPU_TARGETS=$(JOB_GPU_TARGET)
-DGPU_TARGETS=${{ job.target }} -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION)
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) -GNinja
-GNinja # gfx1030 not supported in documentation
# gfx1030 not supported in documentation - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} parameters:
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 }}
- 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 }}
- ${{ if eq(parameters.unifiedBuild, False) }}: - job: rocWMMA_testing
- ${{ each job in parameters.jobMatrix.testJobs }}: timeoutInMinutes: 120
- 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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
preTargetFilter: ${{ parameters.componentName }} 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)
- 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: ${{ parameters.componentName }} componentName: rocWMMA
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma' testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma'
- 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.target }} gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -5,17 +5,14 @@ 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:
- doxygen - doxygen
- doxygen-doc - doxygen-doc
- ninja-build - ninja-build
- python3-pip
- python3-sphinx
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -23,75 +20,49 @@ parameters:
- cmake==3.20.5 - cmake==3.20.5
- ninja - ninja
- rocm-docs-core - 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:
${{ else }}: 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:
variables: aptPackages: ${{ parameters.aptPackages }}
- group: common pipModules: ${{ parameters.pipModules }}
- template: /.azuredevops/variables-global.yml - task: Bash@3
workspace: displayName: Add CMake to PATH
clean: all inputs:
steps: targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml script: echo "##vso[task.prependpath]$(python3 -m site --user-base)/bin"
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
pipModules: ${{ parameters.pipModules }} parameters:
packageManager: ${{ job.packageManager }} checkoutRepo: ${{ parameters.checkoutRepo }}
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
displayName: Add CMake to PATH - task: Bash@3
inputs: displayName: CTest setup
targetType: inline inputs:
script: echo "##vso[task.prependpath]$(python3 -m site --user-base)/bin" targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt
parameters: python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt
checkoutRepo: ${{ parameters.checkoutRepo }} git config --global user.email "you@example.com"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml git config --global user.name "Your Name"
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
os: ${{ job.os }} parameters:
useAmdclang: false componentName: rocm-cmake
- task: Bash@3 testParameters: '-E "pass-version-parent" --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
displayName: CTest setup - 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: | # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt # parameters:
python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt # aptPackages: ${{ parameters.aptPackages }}
git config --global user.email "you@example.com" # pipModules: ${{ parameters.pipModules }}
git config --global user.name "Your Name" # environment: combined
- 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,46 @@
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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: workspace:
${{ if eq(job.os, 'ubuntu2404') }}: clean: all
vmImage: 'ubuntu-24.04' steps:
${{ else }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
vmImage: 'ubuntu-22.04' 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:
variables: checkoutRepo: ${{ parameters.checkoutRepo }}
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: extraBuildFlags: >-
clean: all -DCMAKE_CURRENT_BINARY_DIR=$PWD
steps: -DCMAKE_CURRENT_SOURCE_DIR=$PWD/../
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml -DCMAKE_VERBOSE_MAKEFILE=1
parameters: -DCPACK_GENERATOR=DEB
aptPackages: ${{ parameters.aptPackages }} -DCPACK_DEBIAN_PACKAGE_RELEASE="local.9999~99.99"
packageManager: ${{ job.packageManager }} -DCPACK_RPM_PACKAGE_RELEASE="local.9999"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml -DROCM_VERSION="$(NEXT_RELEASE_VERSION)"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # parameters:
parameters: # aptPackages: ${{ parameters.aptPackages }}
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,125 @@ 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 }} gfx90a:
pipModules: ${{ parameters.pipModules }} JOB_GPU_TARGET: gfx90a
registerROCmPackages: true steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
cmakeVersion: '3.25.0' 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: # https://github.com/ROCm/HIP/issues/2203
# https://github.com/ROCm/HIP/issues/2203 extraBuildFlags: >-
extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc - task: Bash@3
-GNinja displayName: Move rocm-examples binaries to rocm/examples
- task: Bash@3 inputs:
displayName: Move rocm-examples binaries to rocm/examples targetType: inline
inputs: script: |
targetType: inline mkdir -p $(Build.BinariesDirectory)/examples
script: | mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples
mkdir -p $(Build.BinariesDirectory)/examples - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - 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-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml aptPackages: ${{ parameters.aptPackages }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - 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-aqlprofile.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - 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/build-cmake.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # https://github.com/ROCm/HIP/issues/2203
parameters: extraBuildFlags: >-
# https://github.com/ROCm/HIP/issues/2203 -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
extraBuildFlags: >- -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: rocm-examples
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: $(Build.SourcesDirectory)/build
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
componentName: rocm-examples parameters:
testDir: $(Build.SourcesDirectory)/build aptPackages: ${{ parameters.aptPackages }}
testParameters: '--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 }}
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,7 +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:
vmImage: ${{ variables.BASE_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
@@ -72,7 +57,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: >-
@@ -91,44 +75,46 @@ jobs:
# - 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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/local-artifact-download.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 }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.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_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: rocm_bandwidth_test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)' parameters:
testExecutable: './rocm/bin/rocm-bandwidth-test' componentName: rocm_bandwidth_test
testParameters: '' testDir: '$(Agent.BuildDirectory)'
testPublishResults: false testExecutable: './rocm/bin/rocm-bandwidth-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testParameters: ''
parameters: testPublishResults: false
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
pipModules: ${{ parameters.pipModules }} parameters:
environment: test aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,145 +1,81 @@
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
- pkg-config - pkg-config
- python3-pip
- 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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: workspace:
${{ if eq(job.os, 'ubuntu2404') }}: clean: all
vmImage: 'ubuntu-24.04' steps:
${{ else }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
vmImage: 'ubuntu-22.04' 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:
variables: checkoutRepo: ${{ parameters.checkoutRepo }}
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: extraBuildFlags: >-
clean: all -DBUILD_TESTS=ON
steps: -DROCM_DEP_ROCMCORE=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
packageManager: ${{ job.packageManager }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml # parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml # aptPackages: ${{ parameters.aptPackages }}
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- checkout: none 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 }}
packageManager: ${{ job.packageManager }} - 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/gpu-diagnostics.yml
parameters: parameters:
os: ${{ job.os }} runRocminfo: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
runRocminfo: false componentName: rocm_smi_lib
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: '$(Agent.BuildDirectory)'
parameters: testExecutable: './rocm/share/rocm_smi/rsmitst_tests/rsmitst'
componentName: ${{ parameters.componentName }} testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: '$(Agent.BuildDirectory)' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testExecutable: 'sudo ./rocm/share/rocm_smi/rsmitst_tests/rsmitst' parameters:
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' aptPackages: ${{ parameters.aptPackages }}
os: ${{ job.os }} 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

@@ -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,90 @@ 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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: 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: registerROCmPackages: true
- 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/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: checkoutRef: ${{ parameters.checkoutRef }}
aptPackages: ${{ parameters.aptPackages }} dependencyList: ${{ parameters.rocmDependencies }}
packageManager: ${{ job.packageManager }} skipLlvmSymlink: true
registerROCmPackages: true - 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 }} -DROCRTST_BLD_TYPE=release
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
checkoutRef: ${{ parameters.checkoutRef }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
dependencyList: ${{ parameters.rocmDependencies }} # parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} # aptPackages: ${{ parameters.aptPackages }}
os: ${{ job.os }} # registerROCmPackages: true
${{ 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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
packageManager: ${{ job.packageManager }} aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true - 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
parameters: parameters:
os: ${{ job.os }} 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 }} parameters:
gpuTarget: ${{ job.target }} runRocminfo: false
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
${{ if parameters.triggerDownstreamJobs }}: parameters:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} componentName: rocminfo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: '$(Agent.BuildDirectory)'
parameters: testExecutable: './rocm/bin/rocminfo'
runRocminfo: false testParameters: ''
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testPublishResults: false
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
componentName: ${{ parameters.componentName }} parameters:
testDir: '$(Agent.BuildDirectory)' componentName: rocm_agent_enumerator
testExecutable: './rocm/bin/rocminfo' testDir: '$(Agent.BuildDirectory)'
testParameters: '' testExecutable: './rocm/bin/rocm_agent_enumerator'
testPublishResults: false testParameters: ''
os: ${{ job.os }} testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: rocm_agent_enumerator aptPackages: ${{ parameters.aptPackages }}
testDir: '$(Agent.BuildDirectory)' registerROCmPackages: true
testExecutable: './rocm/bin/rocm_agent_enumerator' environment: test
testParameters: '' gpuTarget: $(JOB_GPU_TARGET)
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,139 @@ 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:
- ${{ build }}_${{ job.target }} vmImage: ${{ variables.BASE_BUILD_POOL }}
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
vmImage: ${{ variables.BASE_BUILD_POOL }} gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
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
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 }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
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:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: # parameters:
componentName: ${{ parameters.componentName }} # aptPackages: ${{ parameters.aptPackages }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} # pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }} # gpuTarget: $(JOB_GPU_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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - task: Bash@3
checkoutRepo: ${{ parameters.checkoutRepo }} displayName: Add en_US.UTF-8 locale
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml targetType: inline
parameters: script: |
preTargetFilter: ${{ parameters.componentName }} sudo locale-gen en_US.UTF-8
gpuTarget: ${{ job.target }} sudo update-locale
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml locale -a
- 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/local-artifact-download.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- task: Bash@3 checkoutRef: ${{ parameters.checkoutRef }}
displayName: Add en_US.UTF-8 locale dependencyList: ${{ parameters.rocmDependencies }}
inputs: gpuTarget: $(JOB_GPU_TARGET)
targetType: inline - task: Bash@3
script: | displayName: Add ROCm binaries to PATH
sudo locale-gen en_US.UTF-8 inputs:
sudo update-locale targetType: inline
locale -a script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- task: Bash@3 - task: Bash@3
displayName: Add ROCm binaries to PATH displayName: Add ROCm compilers to PATH
inputs: inputs:
targetType: inline targetType: inline
script: | script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml extraBuildFlags: >-
parameters: -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
extraBuildFlags: >- -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_BUILD_TYPE=Release
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DENABLE_TESTS=ON
-DCMAKE_BUILD_TYPE=Release -DINSTALL_TESTS=ON
-DENABLE_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
-DINSTALL_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml componentName: rocprofiler-compute
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: $(Build.BinariesDirectory)/libexec/rocprofiler-compute
parameters: testExecutable: ROCM_PATH=$(Agent.BuildDirectory)/rocm ctest
componentName: ${{ parameters.componentName }} - task: Bash@3
testDir: $(Build.BinariesDirectory)/libexec/rocprofiler-compute displayName: Remove ROCm binaries from PATH
testExecutable: ROCM_PATH=$(Agent.BuildDirectory)/rocm ctest condition: always()
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml inputs:
parameters: targetType: inline
aptPackages: ${{ parameters.aptPackages }} script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
pipModules: ${{ parameters.pipModules }} - task: Bash@3
environment: test displayName: Remove ROCm compilers from PATH
gpuTarget: ${{ job.target }} 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/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,104 +1,51 @@
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:
- ${{ build }}_${{ job.os }} vmImage: ${{ variables.BASE_BUILD_POOL }}
pool: workspace:
${{ if eq(job.os, 'ubuntu2404') }}: clean: all
vmImage: 'ubuntu-24.04' steps:
${{ else }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
vmImage: 'ubuntu-22.04' 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:
variables: checkoutRepo: ${{ parameters.checkoutRepo }}
- group: common - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: /.azuredevops/variables-global.yml parameters:
workspace: componentName: rocprofiler-register
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml componentName: rocprofiler-register-tests
parameters: extraBuildFlags: >-
aptPackages: ${{ parameters.aptPackages }} -DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory)
packageManager: ${{ job.packageManager }} cmakeBuildDir: 'tests/build'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml installEnabled: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} componentName: rocprofiler-register
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} testDir: 'tests/build'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
os: ${{ job.os }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
useAmdclang: false # parameters:
extraBuildFlags: >- # aptPackages: ${{ parameters.aptPackages }}
-DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory) # environment: combined
-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,124 @@ 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:
- ${{ build }}_${{ job.os}}_${{ job.target }} vmImage: ${{ variables.BASE_BUILD_POOL }}
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
pool: ${{ variables.MEDIUM_BUILD_POOL }} matrix:
${{ if eq(job.os, 'almalinux8') }}: gfx942:
container: JOB_GPU_TARGET: gfx942
image: rocmexternalcicd.azurecr.io/manylinux228:latest gfx90a:
endpoint: ContainerService3 JOB_GPU_TARGET: gfx90a
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
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: Add Python site-packages binaries to path
dependencyList: ${{ parameters.rocmDependencies }} inputs:
os: ${{ job.os }} targetType: inline
gpuTarget: ${{ job.target }} script: |
aggregatePipeline: ${{ parameters.aggregatePipeline }} USER_BASE=$(python3 -m site --user-base)
${{ if parameters.triggerDownstreamJobs }}: echo "##vso[task.prependpath]$USER_BASE/bin"
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- task: Bash@3 parameters:
displayName: Add Python site-packages binaries to path extraBuildFlags: >-
inputs: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
targetType: inline -DROCPROFILER_BUILD_TESTS=ON
script: | -DROCPROFILER_BUILD_SAMPLES=ON
USER_BASE=$(python3 -m site --user-base) -DROCPROFILER_BUILD_RELEASE=ON
echo "##vso[task.prependpath]$USER_BASE/bin" -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml multithreadFlag: -- -j4
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
componentName: ${{ parameters.componentName }} parameters:
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DROCPROFILER_BUILD_TESTS=ON gpuTarget: $(JOB_GPU_TARGET)
-DROCPROFILER_BUILD_SAMPLES=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DROCPROFILER_BUILD_RELEASE=ON # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DGPU_TARGETS=${{ job.target }} # parameters:
-GNinja # aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml # pipModules: ${{ parameters.pipModules }}
parameters: # gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} # registerROCmPackages: true
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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 }}
packageManager: ${{ job.packageManager }} pipModules: ${{ parameters.pipModules }}
registerROCmPackages: true registerROCmPackages: true
- 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:
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} 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)
os: ${{ job.os }} - task: Bash@3
gpuTarget: ${{ job.target }} displayName: Add Python site-packages binaries to path
${{ if parameters.triggerDownstreamJobs }}: inputs:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} targetType: inline
- task: Bash@3 script: |
displayName: Add Python and ROCm binaries to path USER_BASE=$(python3 -m site --user-base)
inputs: echo "##vso[task.prependpath]$USER_BASE/bin"
targetType: inline - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
script: | parameters:
USER_BASE=$(python3 -m site --user-base) extraBuildFlags: >-
echo "##vso[task.prependpath]$USER_BASE/bin" -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" -DROCPROFILER_BUILD_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DROCPROFILER_BUILD_SAMPLES=ON
parameters: -DROCPROFILER_BUILD_RELEASE=ON
componentName: ${{ parameters.componentName }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
os: ${{ job.os }} multithreadFlag: -- -j16
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DROCPROFILER_BUILD_TESTS=ON componentName: rocprofiler-sdk
-DROCPROFILER_BUILD_SAMPLES=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DROCPROFILER_BUILD_RELEASE=ON parameters:
-DGPU_TARGETS=${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
-GNinja 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: registerROCmPackages: true
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,192 @@ 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 }} gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
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 }} registerROCmPackages: true
registerROCmPackages: true - 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
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/dependencies-rocm.yml checkoutRef: ${{ parameters.checkoutRef }}
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} - task: Bash@3
gpuTarget: ${{ job.target }} displayName: ROCm symbolic link
aggregatePipeline: ${{ parameters.aggregatePipeline }} inputs:
- task: Bash@3 targetType: inline
displayName: Add ROCm binaries to PATH script: |
inputs: sudo rm -rf /opt/rocm
targetType: inline sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
script: | - task: Bash@3
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" displayName: Add ROCm binaries to PATH
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml targetType: inline
parameters: script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html - task: Bash@3
extraBuildFlags: >- displayName: Add ROCm compilers to PATH
-DROCPROFSYS_BUILD_TESTING=ON inputs:
-DROCPROFSYS_BUILD_DYNINST=ON targetType: inline
-DROCPROFSYS_BUILD_LIBUNWIND=ON script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
-DROCPROFSYS_DISABLE_EXAMPLES="openmp-target" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DDYNINST_BUILD_TBB=ON parameters:
-DDYNINST_BUILD_ELFUTILS=ON # build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
-DDYNINST_BUILD_LIBIBERTY=ON extraBuildFlags: >-
-DDYNINST_BUILD_BOOST=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCPROFSYS_USE_PAPI=ON -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DROCPROFSYS_USE_MPI=ON -DROCPROFSYS_BUILD_TESTING=ON
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/include/rocjpeg -DROCPROFSYS_BUILD_DYNINST=ON
-DGPU_TARGETS=${{ job.target }} -DROCPROFSYS_BUILD_LIBUNWIND=ON
-GNinja -DROCPROFSYS_DISABLE_EXAMPLES="openmp-target"
componentName: ${{ parameters.componentName }} -DDYNINST_BUILD_TBB=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DDYNINST_BUILD_ELFUTILS=ON
parameters: -DDYNINST_BUILD_LIBIBERTY=ON
gpuTarget: ${{ job.target }} -DDYNINST_BUILD_BOOST=ON
componentName: ${{ parameters.componentName }} -DROCPROFSYS_USE_PAPI=ON
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} -DROCPROFSYS_USE_MPI=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: multithreadFlag: -- -j32
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
componentName: ${{ parameters.componentName }} 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-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
registerROCmPackages: true parameters:
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
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 gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
clean: all JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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 }}
registerROCmPackages: true registerROCmPackages: true
- 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.target }} gpuTarget: $(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: - task: Bash@3
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} displayName: ROCm symbolic link
- task: Bash@3 inputs:
displayName: Add ROCm binaries to PATH targetType: inline
inputs: script: |
targetType: inline sudo rm -rf /opt/rocm
script: | sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" - task: Bash@3
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" displayName: Add ROCm binaries to PATH
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml inputs:
parameters: targetType: inline
cmakeSourceDir: $(Agent.BuildDirectory)/s/projects/rocprofiler-systems script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html - task: Bash@3
extraBuildFlags: >- displayName: Add ROCm compilers to PATH
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocprofiler-systems inputs:
-DROCPROFSYS_USE_PYTHON=ON 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
- task: Bash@3 -DDYNINST_BUILD_LIBIBERTY=ON
displayName: Set up rocprofiler-systems env -DDYNINST_BUILD_BOOST=ON
inputs: -DROCPROFSYS_USE_PAPI=ON
targetType: inline -DROCPROFSYS_USE_MPI=ON
script: source $(Agent.BuildDirectory)/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh -DGPU_TARGETS=$(JOB_GPU_TARGET)
workingDirectory: $(Agent.BuildDirectory)/rocprofiler-systems/share/rocprofiler-systems multithreadFlag: -- -j32
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - task: Bash@3
parameters: displayName: Set up rocprofiler-systems env
componentName: ${{ parameters.componentName }} inputs:
testDir: $(Agent.BuildDirectory)/s/build/tests/ targetType: inline
testParameters: '--output-on-failure' script: source share/rocprofiler-systems/setup-env.sh
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml workingDirectory: build
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml componentName: rocprofiler-systems
parameters: - task: Bash@3
gpuTarget: ${{ job.target }} displayName: Remove ROCm binaries from PATH
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml condition: always()
parameters: inputs:
aptPackages: ${{ parameters.aptPackages }} targetType: inline
pipModules: ${{ parameters.pipModules }} script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
environment: test - task: Bash@3
registerROCmPackages: true displayName: Remove ROCm compilers from PATH
gpuTarget: ${{ job.target }} condition: always()
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin 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)
- 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,127 @@ 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: gfx90a:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx90a
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 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:
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 }}
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-aqlprofile.yml -DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules;$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
os: ${{ job.os }} -DENABLE_LDCONFIG=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml -DUSE_PROF_API=1
parameters: -DGPU_TARGETS=$(JOB_GPU_TARGET)
checkoutRef: ${{ parameters.checkoutRef }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} multithreadFlag: -- -j32
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
os: ${{ job.os }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
${{ if parameters.triggerDownstreamJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
useAmdclang: false parameters:
extraBuildFlags: >- aptPackages: ${{ parameters.aptPackages }}
-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 pipModules: ${{ parameters.pipModules }}
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor" gpuTarget: $(JOB_GPU_TARGET)
-DROCM_PATH=$(Agent.BuildDirectory)/rocm extraEnvVars:
-DCMAKE_POSITION_INDEPENDENT_CODE=ON - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
-DENABLE_LDCONFIG=OFF - ROCM_PATH:::/home/user/workspace/rocm
-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 gfx90a:
- name: LD_LIBRARY_PATH JOB_GPU_TARGET: gfx90a
value: $(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests JOB_TEST_POOL: ${{ variables.GFX90A_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-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.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml displayName: Setup test environment
parameters: inputs:
os: ${{ job.os }} targetType: inline
- 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.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: rocprofilerV1
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test" ./run.sh
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testParameters: ''
parameters: testPublishResults: false
componentName: rocprofilerV1 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1 parameters:
testExecutable: ./run.sh componentName: rocprofilerV2
testParameters: '' testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests" share/rocprofiler/tests/runUnitTests
testPublishResults: false testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
os: ${{ job.os }} testDir: $(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters: parameters:
componentName: rocprofilerV2 aptPackages: ${{ parameters.aptPackages }}
testDir: $(Agent.BuildDirectory)/rocm pipModules: ${{ parameters.pipModules }}
testExecutable: share/rocprofiler/tests/runUnitTests environment: test
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' gpuTarget: $(JOB_GPU_TARGET)
os: ${{ job.os }} optSymLink: true
- 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,21 +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:
vmImage: ${{ variables.BASE_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
@@ -70,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: >-
@@ -86,50 +71,52 @@ jobs:
# parameters: # parameters:
# aptPackages: ${{ parameters.aptPackages }} # aptPackages: ${{ parameters.aptPackages }}
- ${{ 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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 }}
- 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: - 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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocr_debug_agent-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
extraBuildFlags: >- parameters:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip componentName: rocr_debug_agent-tests
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm extraBuildFlags: >-
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
cmakeSourceDir: '.' -DROCM_PATH=$(Agent.BuildDirectory)/rocm
installEnabled: false cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml cmakeSourceDir: '.'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml installEnabled: false
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: rocr_debug_agent - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml componentName: rocr_debug_agent
parameters: testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
environment: test parameters:
gpuTarget: ${{ job.target }} aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: $(JOB_GPU_TARGET)

View File

@@ -1,34 +1,10 @@
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:
@@ -37,7 +13,7 @@ parameters:
- graphviz - graphviz
- libdrm-amdgpu-dev - libdrm-amdgpu-dev
- ninja-build - ninja-build
- zlib1g-dev - python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -60,146 +36,107 @@ 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:
- group: common vmImage: ${{ variables.BASE_BUILD_POOL }}
- template: /.azuredevops/variables-global.yml workspace:
pool: clean: all
vmImage: ${{ variables.BASE_BUILD_POOL }} strategy:
${{ if eq(job.os, 'almalinux8') }}: matrix:
container: gfx942:
image: rocmexternalcicd.azurecr.io/manylinux228:latest JOB_GPU_TARGET: gfx942
endpoint: ContainerService3 gfx90a:
workspace: JOB_GPU_TARGET: gfx90a
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 }} registerROCmPackages: true
packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
registerROCmPackages: true - 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_BUILD_TYPE=release
os: ${{ job.os }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
${{ if parameters.triggerDownstreamJobs }}: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
# the linker flags will not affect ubuntu2204 builds as the paths do not exist -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -GNinja
os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
useAmdclang: false parameters:
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/lib64/cmake/hip gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
-DGPU_TARGETS=${{ job.target }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
-DCMAKE_POSITION_INDEPENDENT_CODE=ON # parameters:
-GNinja # aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml # pipModules: ${{ parameters.pipModules }}
parameters: # gpuTarget: $(JOB_GPU_TARGET)
componentName: ${{ parameters.componentName }} # registerROCmPackages: true
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: gfx90a:
clean: all JOB_GPU_TARGET: gfx90a
steps: JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
- 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 }}
packageManager: ${{ job.packageManager }} pipModules: ${{ parameters.pipModules }}
registerROCmPackages: true registerROCmPackages: true
- 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:
preTargetFilter: ${{ parameters.componentName }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
os: ${{ job.os }} - 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
os: ${{ job.os }} parameters:
${{ if parameters.triggerDownstreamJobs }}: componentName: roctracer
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }} testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml testParameters: ''
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testDir: $(Agent.BuildDirectory)
parameters: testPublishResults: false
componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh parameters:
testParameters: '' aptPackages: ${{ parameters.aptPackages }}
testDir: $(Agent.BuildDirectory) pipModules: ${{ parameters.pipModules }}
testPublishResults: false environment: test
os: ${{ job.os }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml registerROCmPackages: true
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:
@@ -50,151 +45,147 @@ 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:
- name: ROCM_PATH vmImage: ${{ variables.BASE_BUILD_POOL }}
value: $(Agent.BuildDirectory)/rocm workspace:
pool: clean: all
vmImage: ${{ variables.BASE_BUILD_POOL }} strategy:
workspace: matrix:
clean: all gfx942:
steps: JOB_GPU_TARGET: gfx942
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx90a:
parameters: JOB_GPU_TARGET: gfx90a
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_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang extraBuildFlags: >-
-DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DGPU_TARGETS=${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.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-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# gpuTarget: ${{ job.target }} # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# 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 gfx90a:
steps: JOB_GPU_TARGET: gfx90a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_TEST_POOL: ${{ variables.GFX90A_TEST_POOL }}
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/local-artifact-download.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
gpuTarget: ${{ job.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_GPU_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.target }} checkoutRef: ${{ parameters.checkoutRef }}
# Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md dependencyList: ${{ parameters.rocmTestDependencies }}
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: Build and install Turbo JPEG # Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md
inputs: - task: Bash@3
targetType: 'inline' displayName: Build and install Turbo JPEG
script: | inputs:
sudo apt-get install nasm targetType: 'inline'
sudo apt-get install wget script: |
git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git sudo apt-get install nasm
cd libjpeg-turbo sudo apt-get install wget
mkdir build git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git
cd build cd libjpeg-turbo
cmake -DCMAKE_INSTALL_PREFIX=/usr \ mkdir build
-DCMAKE_BUILD_TYPE=RELEASE \ cd build
-DENABLE_STATIC=FALSE \ cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=RELEASE \
-DWITH_JPEG8=TRUE \ -DENABLE_STATIC=FALSE \
.. -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
make -j$nproc -DWITH_JPEG8=TRUE \
sudo make install ..
- task: Bash@3 make -j$nproc
displayName: Build and install Nifti sudo make install
inputs: - task: Bash@3
targetType: 'inline' displayName: Build and install Nifti
script: | inputs:
git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git targetType: 'inline'
cd nifti_clib script: |
mkdir build git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git
cd build cd nifti_clib
cmake .. mkdir build
sudo make -j$nproc install cd build
- task: Bash@3 cmake ..
displayName: Build rpp tests sudo make -j$nproc install
inputs: - task: Bash@3
targetType: 'inline' displayName: Build rpp tests
script: | inputs:
mkdir rpp-tests targetType: 'inline'
cd rpp-tests script: |
cmake $(Agent.BuildDirectory)/rocm/share/rpp/test \ sudo rm -rf /opt/rocm
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \ sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang mkdir rpp-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml cd rpp-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml cmake /opt/rocm/share/rpp/test \
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \
componentName: rpp -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
testExecutable: 'CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testDir: 'rpp-tests' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: componentName: rpp
aptPackages: ${{ parameters.aptPackages }} testExecutable: 'export PATH=$(Agent.BuildDirectory)/rocm/llvm/bin:$PATH; CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest'
pipModules: ${{ parameters.pipModules }} testDir: 'rpp-tests'
environment: test - script: sudo rm /opt/rocm
gpuTarget: ${{ job.target }} condition: always()
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
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,41 @@ 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 - name: printDiskSpace
type: boolean type: boolean
default: true 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', '') }}"
${{ parameters.extraBuildFlags }}
${{ parameters.cmakeSourceDir }}
- ${{ if parameters.printDiskSpace }}: - ${{ if parameters.printDiskSpace }}:
- script: df -h - script: df -h
displayName: Disk space before build 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 }}
${{ if ne(parameters.os, 'almalinux8') }}:
cmakeArgs: >-
--build ${{ parameters.cmakeTargetDir }}
${{ iif(ne(parameters.customBuildTarget, ''), format('--target {0}', parameters.customBuildTarget), '') }}
${{ parameters.multithreadFlag }}
- ${{ if parameters.printDiskSpace }}: - ${{ if parameters.printDiskSpace }}:
- script: df -h - script: df -h
displayName: Disk space after build 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

View File

@@ -0,0 +1,10 @@
# replace cmake from apt install with newest version using snap install
steps:
- task: Bash@3
displayName: update cmake
inputs:
targetType: inline
script: |
sudo apt purge cmake -y
sudo snap install cmake --classic
hash -r

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