Compare commits

..

5 Commits

Author SHA1 Message Date
Peter Park
17d04124c1 update links to vllm perf validation doc 2024-10-30 15:52:12 -04:00
Daniel Su
4b8fdf1ae3 External CI: various fixes (#3963) 2024-10-30 15:52:12 -04:00
Joseph Macaranas
c88f3996dc External CI: Add aqlprofile to Tensile test dependencies (#3961) 2024-10-30 15:52:12 -04:00
Peter Park
5b53802c54 add suggestions to vllm perf validation doc 2024-10-30 14:08:35 -04:00
Peter Park
bdeef73263 add vllm performance validation doc 2024-10-30 12:51:40 -04:00
341 changed files with 12904 additions and 35246 deletions

View File

@@ -23,40 +23,8 @@ ROCm-CI Azure DevOps Pipelines contains markup language files that orchestrate b
- [YAML schema](https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/?view=azure-pipelines&viewFallbackFrom=azure-devops) - [YAML schema](https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/?view=azure-pipelines&viewFallbackFrom=azure-devops)
- [Azure Pipelines Task Index](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/?view=azure-pipelines) - [Azure Pipelines Task Index](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/?view=azure-pipelines)
## VMSS Setup
The Azure VMSS used for build jobs have docker installed during provisioning through the Azure Portal's settings.
Select the VMSS, then go to Settings, Operating system.
In the Custom Data section, select to Modify Custom Data. Enter the code block below and Apply.
```bash
#cloud-config
bootcmd:
- mkdir -p /etc/systemd/system/walinuxagent.service.d
- echo "[Unit]\nAfter=cloud-final.service" > /etc/systemd/system/walinuxagent.service.d/override.conf
- sed "s/After=multi-user.target//g" /lib/systemd/system/cloud-final.service > /etc/systemd/system/cloud-final.service
- systemctl daemon-reload
apt:
sources:
docker.list:
source: deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
packages:
- docker-ce
- docker-ce-cli
groups:
- docker
runcmd:
- usermod -aG docker $USER
- systemctl restart docker
- systemctl enable docker
```
## Disclaimer ## Disclaimer
The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions, and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard versionchanges, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. Any computer system has risks of security vulnerabilities that cannot be completely prevented or mitigated.AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes.THIS INFORMATION IS PROVIDED AS IS.” AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS, OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY RELIANCE, DIRECT, INDIRECT, SPECIAL, OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. AMD, the AMD Arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions, and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard versionchanges, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. Any computer system has risks of security vulnerabilities that cannot be completely prevented or mitigated.AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes.THIS INFORMATION IS PROVIDED AS IS.” AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS, OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY RELIANCE, DIRECT, INDIRECT, SPECIAL, OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. AMD, the AMD Arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
© 2024 Advanced Micro Devices, Inc. All Rights Reserved.

View File

@@ -8,29 +8,29 @@ resources:
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/aomp name: ROCm/aomp
ref: amd-mainline ref: amd-mainline-open
- 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: amd-mainline ref: amd-mainline-open
- repository: flang_repo - repository: flang_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/flang name: ROCm/flang
ref: amd-mainline ref: amd-mainline-open
- 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: amd-mainline ref: amd-mainline-open
pipelines: pipelines:
- pipeline: rocr-runtime_pipeline - pipeline: rocr-runtime_pipeline
source: \ROCR-Runtime source: \ROCR-Runtime
trigger: trigger:
branches: branches:
include: include:
- amd-mainline - amd-master
# this job will only be triggered after successful build sequence of llvm-project and ROCR-Runtime # this job will only be triggered after successful build sequence of llvm-project and ROCR-Runtime
trigger: none trigger: none

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

@@ -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,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:
@@ -77,137 +72,126 @@ 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: AMDMIGraphX_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
# half version should be fixed to 5.6.0 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
buildType: specific # half version should be fixed to 5.6.0
definitionId: ${{ variables.HALF560_PIPELINE_ID }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
buildId: ${{ variables.HALF560_BUILD_ID }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencySource: fixed
parameters: fixedComponentName: half
checkoutRef: ${{ parameters.checkoutRef }} fixedPipelineIdentifier: ${{ variables.HALF560_PIPELINE_ID }}
dependencyList: ${{ parameters.rocmDependencies }} skipLibraryLinking: true
gpuTarget: ${{ job.target }} skipLlvmSymlink: true
aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: dependencyList: ${{ parameters.rocmDependencies }}
extraBuildFlags: >- gpuTarget: $(JOB_GPU_TARGET)
-DCMAKE_BUILD_TYPE=Release # CI case: download latest default branch build
-DGPU_TARGETS=${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
-DAMDGPU_TARGETS=${{ job.target }} dependencySource: staging
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include dependencySource: tag-builds
-DBUILD_TESTING=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml -DBUILD_TESTING=ON
parameters: -GNinja
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
pipModules: ${{ parameters.pipModules }} parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: AMDMIGraphX_testing
- job: AMDMIGraphX_test_${{ job.target }} dependsOn: AMDMIGraphX
dependsOn: AMDMIGraphX_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: MIGRAPHX_TRACE_BENCHMARKING
eq(${{ parameters.aggregatePipeline }}, False) value: 1
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: MIGRAPHX_TRACE_BENCHMARKING matrix:
value: 1 gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/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 parameters:
# half version should be fixed to 5.6.0 ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
buildType: specific dependencySource: tag-builds
definitionId: ${{ variables.HALF560_PIPELINE_ID }} # half version should be fixed to 5.6.0
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: dependencySource: fixed
checkoutRef: ${{ parameters.checkoutRef }} fixedComponentName: half
dependencyList: ${{ parameters.rocmTestDependencies }} fixedPipelineIdentifier: ${{ variables.HALF560_PIPELINE_ID }}
gpuTarget: ${{ job.target }} skipLibraryLinking: true
- task: CMake@1 skipLlvmSymlink: true
displayName: MIGraphXTest CMake Flags - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
inputs: parameters:
cmakeArgs: >- dependencyList: ${{ parameters.rocmTestDependencies }}
-DCMAKE_BUILD_TYPE=Release gpuTarget: $(JOB_GPU_TARGET)
-DGPU_TARGETS=${{ job.target }} # CI case: download latest default branch build
-DAMDGPU_TARGETS=${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip dependencySource: staging
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm # manual build case: triggered by ROCm/ROCm repo
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include ${{ elseif ne(parameters.checkoutRef, '') }}:
-DBUILD_TESTING=ON dependencySource: tag-builds
-DMIGRAPHX_ENABLE_C_API_TEST=ON - task: CMake@1
.. displayName: MIGraphXTest CMake Flags
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml cmakeArgs: >-
parameters: -DCMAKE_BUILD_TYPE=Release
componentName: AMDMIGraphX -DGPU_TARGETS=$(JOB_GPU_TARGET)
testExecutable: make -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
testParameters: -j$(nproc) check -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
testPublishResults: false -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
parameters: -DBUILD_TESTING=ON
aptPackages: ${{ parameters.aptPackages }} -DMIGRAPHX_ENABLE_C_API_TEST=ON
pipModules: ${{ parameters.pipModules }} ..
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
extraEnvVars: parameters:
- MIGRAPHX_TRACE_BENCHMARKING:::1 componentName: AMDMIGraphX
testExecutable: make
testParameters: -j$(nproc) check
testPublishResults: false

View File

@@ -5,22 +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:
- cmake
- libnuma-dev - libnuma-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
- python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -70,15 +62,18 @@ jobs:
checkoutRepo: hipother_repo checkoutRepo: hipother_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependenciesAMD }} dependencyList: ${{ parameters.rocmDependenciesAMD }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
# compile clr # compile clr
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: clr componentName: clr
cmakeBuildDir: '$(Build.SourcesDirectory)/clr/build' cmakeBuildDir: 'clr/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/clr'
extraBuildFlags: >- extraBuildFlags: >-
-DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP -DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP
-DHIP_PLATFORM=amd -DHIP_PLATFORM=amd
@@ -87,19 +82,9 @@ jobs:
-DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin -DHIPCC_BIN_DIR=$(Agent.BuildDirectory)/rocm/bin
-DCLR_BUILD_HIP=ON -DCLR_BUILD_HIP=ON
-DCLR_BUILD_OCL=ON -DCLR_BUILD_OCL=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
artifactName: amd
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
artifactName: amd artifactName: amd
- 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: amd
# HIP with Nvidia backend # HIP with Nvidia backend
- job: hip_clr_combined_nvidia - job: hip_clr_combined_nvidia
@@ -130,17 +115,20 @@ jobs:
checkoutRepo: hipother_repo checkoutRepo: hipother_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependenciesNvidia }} dependencyList: ${{ parameters.rocmDependenciesNvidia }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- script: 'ls -1R $(Agent.BuildDirectory)/rocm' - script: 'ls -1R $(Agent.BuildDirectory)/rocm'
displayName: 'Artifact listing' displayName: 'Artifact listing'
# compile clr # compile clr
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: clr componentName: clr
cmakeBuildDir: '$(Build.SourcesDirectory)/clr/build' cmakeBuildDir: 'clr/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/clr'
extraBuildFlags: >- extraBuildFlags: >-
-DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP -DHIP_COMMON_DIR=$(Build.SourcesDirectory)/HIP
-DHIP_PLATFORM=nvidia -DHIP_PLATFORM=nvidia
@@ -148,13 +136,6 @@ jobs:
-DCLR_BUILD_HIP=ON -DCLR_BUILD_HIP=ON
-DCLR_BUILD_OCL=OFF -DCLR_BUILD_OCL=OFF
-DHIPNV_DIR=$(Build.SourcesDirectory)/hipother/hipnv -DHIPNV_DIR=$(Build.SourcesDirectory)/hipother/hipnv
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
artifactName: nvidia 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

@@ -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:
@@ -42,9 +37,9 @@ jobs:
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo mkdir --parents --mode=0755 /etc/apt/keyrings
sudo dpkg -i cuda-keyring_1.1-1_all.deb wget -q -O- https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-archive-keyring.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/cuda-archive-keyring.gpg > /dev/null
sudo rm -f cuda-keyring_1.1-1_all.deb echo "deb [signed-by=/etc/apt/trusted.gpg.d/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" | sudo tee /etc/apt/sources.list.d/cuda-ubuntu2204-x86_64.list
sudo apt update sudo apt update
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
@@ -73,7 +68,6 @@ jobs:
parameters: parameters:
componentName: upstream-llvm componentName: upstream-llvm
cmakeBuildDir: $(Pipeline.Workspace)/llvm-project/llvm/build cmakeBuildDir: $(Pipeline.Workspace)/llvm-project/llvm/build
cmakeSourceDir: $(Pipeline.Workspace)/llvm-project/llvm
installDir: $(Pipeline.Workspace)/llvm installDir: $(Pipeline.Workspace)/llvm
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
@@ -103,7 +97,6 @@ jobs:
-DCMAKE_PREFIX_PATH=$(Pipeline.Workspace)/llvm;/usr/local/cuda/targets/x86_64-linux/lib -DCMAKE_PREFIX_PATH=$(Pipeline.Workspace)/llvm;/usr/local/cuda/targets/x86_64-linux/lib
-DLLVM_EXTERNAL_LIT=$(Pipeline.Workspace)/llvm-project/llvm/build/bin/llvm-lit -DLLVM_EXTERNAL_LIT=$(Pipeline.Workspace)/llvm-project/llvm/build/bin/llvm-lit
multithreadFlag: -- -j32 multithreadFlag: -- -j32
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
@@ -112,14 +105,3 @@ jobs:
testExecutable: make testExecutable: make
testParameters: test-hipify testParameters: test-hipify
testPublishResults: false testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: combined
registerCUDAPackages: true
extraCopyDirectories:
- llvm-project
extraEnvVars:
- UPSTREAM_LLVM_GIT_URL:::https://github.com/llvm/llvm-project.git
- UPSTREAM_LLVM_TAG:::llvmorg-18.1.2

View File

@@ -5,24 +5,23 @@ 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
- jq - libbz2-dev
- libdrm-dev - libdrm-dev
- libeigen3-dev
- libgmock-dev
- libgtest-dev
- libsqlite3-dev - libsqlite3-dev
- libstdc++-12-dev - libstdc++-12-dev
- libzstd-dev
- ninja-build - ninja-build
- nlohmann-json3-dev
- python3-pip - python3-pip
- python3-venv
- software-properties-common - software-properties-common
- zip - zstd
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -30,12 +29,14 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- half - rocMLIR
- rocRAND - rocRAND
- rocBLAS - rocBLAS
- hipBLAS - hipBLAS
- hipBLASLt - hipBLASLt
- hipBLAS-common - hipBLAS-common
- half
- composable_kernel
- rocm-cmake - rocm-cmake
- llvm-project - llvm-project
- ROCR-Runtime - ROCR-Runtime
@@ -47,6 +48,7 @@ parameters:
type: object type: object
default: default:
- clr - clr
- composable_kernel
- half - half
- hipBLAS - hipBLAS
- hipBLAS-common - hipBLAS-common
@@ -55,171 +57,157 @@ parameters:
- rocBLAS - rocBLAS
- rocm-cmake - rocm-cmake
- rocminfo - rocminfo
- rocMLIR
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- rocRAND - rocRAND
- 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: MIOpen
- job: MIOpen_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
- name: ROCM_PATH workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
pool: ${{ variables.HIGH_BUILD_POOL }} strategy:
workspace: matrix:
clean: all gfx942:
steps: JOB_GPU_TARGET: gfx942
- 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:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: # The default boost library from apt is 1.74, which does not satisfy MIOpen's build requirement (1.79+)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-boost.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} # CI case: download latest default branch build
aggregatePipeline: ${{ parameters.aggregatePipeline }} ${{ if eq(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: staging
displayName: Build and install other dependencies # manual build case: triggered by ROCm/ROCm repo
inputs: ${{ elseif ne(parameters.checkoutRef, '') }}:
targetType: inline dependencySource: tag-builds
workingDirectory: $(Build.SourcesDirectory) - 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)/boost
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps --generator Ninja -DAMDGPU_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/artifact-upload.yml
-DGPU_TARGETS=${{ job.target }} parameters:
-DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF gpuTarget: $(JOB_GPU_TARGET)
-DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTING=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- miopen-deps
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: MIOpen_testing
- job: MIOpen_test_${{ job.target }} dependsOn: MIOpen
timeoutInMinutes: 180 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: MIOpen_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'], ','), variables['Build.DefinitionName'])), workspace:
eq(${{ parameters.aggregatePipeline }}, False) clean: all
) strategy:
variables: matrix:
- group: common gfx942:
- template: /.azuredevops/variables-global.yml JOB_GPU_TARGET: gfx942
- name: ROCM_PATH JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
value: $(Agent.BuildDirectory)/rocm steps:
pool: ${{ job.target }}_test_pool - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all aptPackages: ${{ parameters.aptPackages }}
steps: pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
pipModules: ${{ parameters.pipModules }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml # The default boost library from apt is 1.74, which does not satisfy MIOpen's build requirement (1.79+)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-boost.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/miopen-get-ck-build.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
gpuTarget: ${{ job.target }} dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: staging
displayName: Build and install other dependencies ${{ elseif ne(parameters.checkoutRef, '') }}:
inputs: dependencySource: tag-builds
targetType: inline # MIOpen depends on a specific version of frugally-deep which is forked here: https://github.com/ROCm/frugally-deep
workingDirectory: $(Build.SourcesDirectory) # https://github.com/ROCm/frugally-deep/blob/master/INSTALL.md
script: | - task: Bash@3
sed -i '/composable_kernel/d' requirements.txt displayName: Add Python site-packages binaries to path
mkdir -p $(Agent.BuildDirectory)/miopen-deps inputs:
export CXX=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ targetType: inline
export CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang script: |
cmake -P install_deps.cmake --prefix $(Agent.BuildDirectory)/miopen-deps USER_BASE=$(python3 -m site --user-base)
- task: CMake@1 echo "##vso[task.prependpath]$USER_BASE/bin"
displayName: 'MIOpen Test CMake Flags' - task: Bash@3
inputs: displayName: Install FunctionalPlus
cmakeArgs: >- inputs:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Agent.BuildDirectory)/miopen-deps targetType: inline
-DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm script: cget install Dobiasd/FunctionalPlus
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - task: Bash@3
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang displayName: Remove Python site-packages binaries from path
-DMIOPEN_BACKEND=HIP inputs:
-DMIOPEN_TEST_FLAGS=" --disable-verification-cache" targetType: inline
-DCMAKE_BUILD_TYPE=release script: |
-DBUILD_DEV=OFF USER_BASE=$(python3 -m site --user-base)
-DMIOPEN_USE_MLIR=ON echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$USER_BASE/bin;;' -e 's;^/;;' -e 's;/$;;')"
-DMIOPEN_GPU_SYNC=OFF - task: Bash@3
.. displayName: git clone frugally-deep
- task: Bash@3 inputs:
displayName: 'MIOpen Test Build' targetType: inline
inputs: script: git clone https://github.com/ROCm/frugally-deep --depth=1 --shallow-submodules
targetType: inline workingDirectory: $(Build.SourcesDirectory)
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmake --build . --target tests -- -j$(nproc) parameters:
workingDirectory: $(Build.SourcesDirectory)/build componentName: frugally-deep
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml cmakeBuildDir: $(Build.SourcesDirectory)/frugally-deep/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml installDir: $(Build.SourcesDirectory)/bin
parameters: extraBuildFlags: -DCMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/cget/cget/pkg/Dobiasd__FunctionalPlus/install
componentName: MIOpen - task: CMake@1
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "test_rnn_seq_api|GPU_Conv2dTuningAsm_FP32"' displayName: 'MIOpen Test CMake Flags'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml inputs:
parameters: cmakeArgs: >-
aptPackages: ${{ parameters.aptPackages }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Build.SourcesDirectory)/cget/cget/pkg/Dobiasd__FunctionalPlus/install;$(Agent.BuildDirectory)/boost
pipModules: ${{ parameters.pipModules }} -DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm
environment: test -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
extraCopyDirectories: -DMIOPEN_BACKEND=HIP
- miopen-deps -DMIOPEN_TEST_FLAGS=" --disable-verification-cache"
-DCMAKE_BUILD_TYPE=release
-DBUILD_DEV=OFF
-DMIOPEN_USE_MLIR=ON
-DMIOPEN_GPU_SYNC=OFF
..
- task: Bash@3
displayName: 'MIOpen Test Build'
inputs:
targetType: inline
script: |
cmake --build . --target tests -- -j$(nproc)
workingDirectory: $(Build.SourcesDirectory)/build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: MIOpen
reloadAMDGPU: true

View File

@@ -5,41 +5,44 @@ 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
- git
- wget - wget
- unzip - unzip
- libstdc++-12-dev
- pkg-config - pkg-config
- protobuf-compiler
- libprotoc-dev
- ffmpeg - ffmpeg
- libavcodec-dev - libavcodec-dev
- libavformat-dev - libavformat-dev
- libavutil-dev - libavutil-dev
- libswscale-dev - libswscale-dev
- build-essential
- libgtk2.0-dev
- libavcodec-dev
- libavformat-dev
- libswscale-dev
- libtbb2
- libtbb-dev
- libjpeg-dev
- libpng-dev
- libtiff-dev
- libdc1394-dev
- libgmp-dev - libgmp-dev
- libomp-dev
- libopencv-dev - libopencv-dev
- protobuf-compiler
- libprotoc-dev
- python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
- future==1.0.0 - future==0.18.2
- pytz==2022.1 - pytz==2022.1
- numpy==1.23 - numpy==1.21
- google==3.0.0 - google==3.0.0
- protobuf==3.12.4 - protobuf==3.12.4
- onnx==1.12.0 - onnx==1.12.0
- nnef==1.0.7
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -70,115 +73,95 @@ 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: MIVisionX_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 }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_BUILD_TYPE=Release dependencySource: staging
-DROCM_PATH=$(Agent.BuildDirectory)/rocm # manual build case: triggered by ROCm/ROCm repo
-DROCM_DEP_ROCMCORE=ON ${{ elseif ne(parameters.checkoutRef, '') }}:
-GNinja dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
gpuTarget: ${{ job.target }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DROCM_DEP_ROCMCORE=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: MIVisionX_testing
- job: MIVisionX_test_${{ job.target }} dependsOn: MIVisionX
dependsOn: MIVisionX_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:
- name: LD_LIBRARY_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm/lib:$(Agent.BuildDirectory)/rocm/include/mivisionx/VX JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: parameters:
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: Build MIVisionX tests ${{ if eq(parameters.checkoutRef, '') }}:
inputs: dependencySource: staging
targetType: inline ${{ elseif ne(parameters.checkoutRef, '') }}:
script: | dependencySource: tag-builds
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral # anything in /opt may be persistent across runs
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm # so we need to remove the symlink if it already exists
mkdir mivisionx-tests - script: |
cd mivisionx-tests sudo rm -f /opt/rocm
cmake $(Agent.BuildDirectory)/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 /opt/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: MIVisionX
aptPackages: ${{ parameters.aptPackages }} testDir: 'mivisionx-tests'
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
optSymLink: true

View File

@@ -5,22 +5,13 @@ 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
- g++ - g++
- libdrm-dev - libdrm-dev
- libelf-dev - libelf-dev
- libnuma-dev - libnuma-dev
- ninja-build
- pkg-config
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -33,17 +24,8 @@ parameters:
- rocm_smi_lib - rocm_smi_lib
- rocprofiler-register - rocprofiler-register
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: ROCR_Runtime_build - job: ROCR_Runtime
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -61,107 +43,141 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- 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
-DBUILD_SHARED_LIBS=ON -DBUILD_SHARED_LIBS=ON
-DCMAKE_BUILD_TYPE=Release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: ROCR_Runtime_testing
- job: ROCR_Runtime_test_${{ job.target }} dependsOn: ROCR_Runtime
dependsOn: ROCR_Runtime_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - task: Bash@3
- task: Bash@3 displayName: Install libhwloc5
displayName: Install libhwloc5 inputs:
inputs: targetType: 'inline'
targetType: 'inline' script: |
script: | wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc5_1.11.12-3_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc5_1.11.12-3_amd64.deb wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc-dev_1.11.12-3_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/h/hwloc/libhwloc-dev_1.11.12-3_amd64.deb sudo apt install -y --allow-downgrades ./libhwloc5_1.11.12-3_amd64.deb ./libhwloc-dev_1.11.12-3_amd64.deb
sudo apt install -y --allow-downgrades ./libhwloc5_1.11.12-3_amd64.deb ./libhwloc-dev_1.11.12-3_amd64.deb - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
runRocminfo: false ${{ elseif ne(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: tag-builds
displayName: Build kfdtest - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
continueOnError: true parameters:
inputs: checkoutRepo: ${{ parameters.checkoutRepo }}
targetType: 'inline' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest parameters:
script: | runRocminfo: false
mkdir build && cd build - task: Bash@3
cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm .. displayName: Build kfdtest
make continueOnError: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml inputs:
parameters: targetType: 'inline'
componentName: kfdtest workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest
testExecutable: BIN_DIR=$(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh script: |
testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes' mkdir build && cd build
testDir: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/scripts cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ..
- task: Bash@3 make
displayName: Build rocrtst - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
continueOnError: true parameters:
inputs: componentName: kfdtest
targetType: 'inline' testExecutable: BIN_DIR=$(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/build ./run_kfdtest.sh
workingDirectory: $(Build.SourcesDirectory)/rocrtst/suites/test_common testParameters: '-p core --gtest_output=xml:./test_output.xml --gtest_color=yes'
script: | testDir: $(Build.SourcesDirectory)/libhsakmt/tests/kfdtest/scripts
BASE_CLANG_DIR=$(Agent.BuildDirectory)/rocm/llvm/lib/clang - task: Bash@3
export NEWEST_CLANG_VER=$(ls -1 $BASE_CLANG_DIR | sort -V | tail -n 1) displayName: Build rdmatest app
mkdir build && cd build continueOnError: true
cmake .. \ inputs:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm \ targetType: 'inline'
-DTARGET_DEVICES=${{ job.target }} \ workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/rdma/simple/app
-DROCM_DIR=$(Agent.BuildDirectory)/rocm \ script: |
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin \ cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DLIBHSAKMT_PATH=$(Agent.BuildDirectory)/rocm -DDRM_AMDGPU_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include .
-DOPENCL_INC_DIR=$BASE_CLANG_DIR/$NEWEST_CLANG_VER/include cmake --build .
make - task: Bash@3
make rocrtst_kernels displayName: Build rdmatest driver
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml continueOnError: true
parameters: inputs:
componentName: rocrtst targetType: 'inline'
testExecutable: ./rocrtst64 workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/rdma/simple/drv
testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests:rocrtstFunc.Memory_Max_Mem" --gtest_output=xml:./test_output.xml --gtest_color=yes' script: |
testDir: $(Build.SourcesDirectory)/rocrtst/suites/test_common/build/${{ job.target }} sed -i 's/HSAKMT_PAGE_SHIFT/PAGE_SHIFT/g' amdp2ptest.c
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml sed -i 's/"MIT"/"GPL"/' amdp2ptest.c
parameters: RDMA_HEADER_DIR=/usr/src/amdgpu-*/include make all
aptPackages: ${{ parameters.aptPackages }} - task: Bash@3
environment: test displayName: Install rdmatest driver
gpuTarget: ${{ job.target }} continueOnError: true
# docker image will be missing libhwloc5 inputs:
targetType: 'inline'
workingDirectory: $(Build.SourcesDirectory)/libhsakmt/tests/rdma/simple/drv
script: |
sudo rmmod amdp2ptest.ko
sudo insmod amdp2ptest.ko
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rdmatest
testExecutable: yes | ./rdma_test
testParameters: ''
testDir: $(Build.SourcesDirectory)/libhsakmt/tests/rdma/simple/app
testPublishResults: false
- task: Bash@3
displayName: Build rocrtst
continueOnError: true
inputs:
targetType: 'inline'
workingDirectory: $(Build.SourcesDirectory)/rocrtst/suites/test_common
script: |
sudo rm -rf $(Agent.BuildDirectory)/external/llvm-project
mkdir -p $(Agent.BuildDirectory)/external/llvm-project/clang/lib
sudo ln -s $(Agent.BuildDirectory)/rocm/llvm/lib/clang/20/include $(Agent.BuildDirectory)/external/llvm-project/clang/lib/Headers
mkdir build && cd build
cmake .. \
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm \
-DTARGET_DEVICES=$(JOB_GPU_TARGET) \
-DROCM_DIR=$(Agent.BuildDirectory)/rocm \
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin \
-DOPENCL_DIR=$(Agent.BuildDirectory)/rocm/llvm/bin
make
make rocrtst_kernels
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocrtst
testExecutable: ./rocrtst64
testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests" --gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: $(Build.SourcesDirectory)/rocrtst/suites/test_common/build/$(JOB_GPU_TARGET)

View File

@@ -16,7 +16,8 @@ jobs:
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
pool: ${{ variables.LOW_BUILD_POOL }} pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -28,5 +29,4 @@ jobs:
parameters: parameters:
checkoutRepo: ${{ parameters.checkoutRepo }} checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml

View File

@@ -5,17 +5,11 @@ 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:
@@ -43,18 +37,17 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- 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
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

View File

@@ -5,17 +5,11 @@ 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
# 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
@@ -23,7 +17,6 @@ parameters:
- libgmp-dev - libgmp-dev
- liblzma-dev - liblzma-dev
- libmpfr-dev - libmpfr-dev
- pkg-config
- ncurses-dev - ncurses-dev
- texinfo - texinfo
- zlib1g-dev - zlib1g-dev
@@ -37,26 +30,22 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: ROCgdb - job: ROCgdb
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)
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
steps: steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters: parameters:
@@ -66,11 +55,20 @@ jobs:
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
parameters:
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml
parameters: parameters:
configureFlags: >- configureFlags: >-
@@ -94,90 +92,26 @@ jobs:
--with-rocm-dbgapi=$(Agent.BuildDirectory)/rocm --with-rocm-dbgapi=$(Agent.BuildDirectory)/rocm
LDFLAGS="-Wl,--enable-new-dtags,-rpath=$(Agent.BuildDirectory)/rocm/lib" LDFLAGS="-Wl,--enable-new-dtags,-rpath=$(Agent.BuildDirectory)/rocm/lib"
makeCallPrefix: LD_RUN_PATH='${ORIGIN}/../lib' makeCallPrefix: LD_RUN_PATH='${ORIGIN}/../lib'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - task: Bash@3
displayName: Setup test environment
- ${{ each job in parameters.jobMatrix.testJobs }}: inputs:
- job: ROCgdb_test_${{ job.target }} targetType: inline
dependsOn: ROCgdb script: |
condition: sudo rm -rf /opt/rocm
and(succeeded(), sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), echo "##vso[task.prependpath]/opt/rocm/bin"
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
eq(${{ parameters.aggregatePipeline }}, False) - task: Bash@3
) displayName: check-gdb
variables: continueOnError: true
- group: common inputs:
- template: /.azuredevops/variables-global.yml targetType: inline
- name: PKG_CONFIG_PATH script: make check-gdb TESTS=gdb.rocm/simple.exp
value: $(Agent.BuildDirectory)/rocm/share/pkgconfig workingDirectory: $(Build.SourcesDirectory)
pool: ${{ job.target }}_test_pool - task: Bash@3
workspace: displayName: print gdb log
clean: all inputs:
steps: targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml script: find -name gdb.log -exec cat {} \;
parameters: workingDirectory: $(Build.SourcesDirectory)
aptPackages: ${{ parameters.aptPackages }}
- 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
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-autotools.yml
parameters:
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: 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,29 +5,20 @@ 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
- libdrm-dev
- libyaml-cpp-dev - libyaml-cpp-dev
- libpci-dev - libpci-dev
- libpci3 - libpci3
- libgst-dev - libgst-dev
- libgtest-dev - libgtest-dev
- git - git
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- amdsmi
- aomp
- clr - clr
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -43,8 +34,6 @@ parameters:
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
- amdsmi
- aomp
- clr - clr
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
@@ -58,116 +47,96 @@ 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: 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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DROCM_PATH=$(Agent.BuildDirectory)/rocm dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/llvm/include dependencySource: tag-builds
-DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCPACK_PACKAGING_INSTALL_PREFIX=$(Build.BinariesDirectory)
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
# gpuTarget: ${{ job.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 steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: ROCmValidationSuite ${{ if eq(parameters.checkoutRef, '') }}:
testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/${{ job.confDir }}/gst_single.conf dependencySource: staging
testParameters: '' ${{ elseif ne(parameters.checkoutRef, '') }}:
testDir: $(Agent.BuildDirectory) dependencySource: tag-builds
testPublishResults: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} componentName: ROCmValidationSuite
environment: test testExecutable: $(Agent.BuildDirectory)/rocm/bin/rvs -c $(Agent.BuildDirectory)/rocm/share/rocm-validation-suite/conf/MI300X/gst_single.conf
gpuTarget: ${{ job.target }} testParameters: ''
testDir: $(Agent.BuildDirectory)
testPublishResults: false

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,22 +30,11 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: Tensile_build - job: Tensile
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool: pool:
vmImage: ${{ variables.BASE_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
@@ -66,16 +50,21 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml ${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- task: Bash@3 - task: Bash@3
displayName: Create wheel file displayName: Create wheel file
inputs: inputs:
targetType: inline targetType: inline
script: python3 setup.py bdist_wheel script: python3 setup.py bdist_wheel
workingDirectory: $(Build.SourcesDirectory) workingDirectory: $(Build.SourcesDirectory)
env:
ROCM_PATH: $(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters: parameters:
sourceDir: $(Build.SourcesDirectory)/dist sourceDir: $(Build.SourcesDirectory)/dist
@@ -87,90 +76,100 @@ jobs:
retryCountOnTaskFailure: 3 retryCountOnTaskFailure: 3
inputs: inputs:
targetPath: $(Build.ArtifactStagingDirectory) targetPath: $(Build.ArtifactStagingDirectory)
- task: Bash@3
displayName: Save pipeline artifact file names - job: Tensile_testing
dependsOn: Tensile
condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: $(JOB_TEST_POOL)
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: DownloadPipelineArtifact@2
displayName: 'Download Pipeline Wheel Files'
inputs:
itemPattern: '**/*.whl'
targetPath: $(Agent.BuildDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: $(JOB_GPU_TARGET)
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- task: Bash@3
displayName: pip install
inputs:
targetType: inline
script: find -name *.whl -exec pip install {} \;
workingDirectory: $(Agent.BuildDirectory)
- task: Bash@3
displayName: Setup test environment
inputs: inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline targetType: inline
script: | script: |
whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1) sudo rm -rf /opt/rocm
if [ -n "$whlFile" ]; then sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
echo $(basename "$whlFile") >> pipelineArtifacts.txt - task: Bash@3
fi displayName: Add Python site-packages binaries to path
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml inputs:
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml targetType: inline
# parameters: script: |
# aptPackages: ${{ parameters.aptPackages }} USER_BASE=$(python3 -m site --user-base)
# pipModules: ${{ parameters.pipModules }} echo "##vso[task.prependpath]$USER_BASE/bin"
- task: Bash@3
- ${{ each job in parameters.jobMatrix.testJobs }}: displayName: Add ROCm binaries to PATH
- job: Tensile_test_${{ job.target }} inputs:
timeoutInMinutes: 180 targetType: inline
dependsOn: Tensile_build script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
condition: - task: Bash@3
and(succeeded(), displayName: Add ROCm compilers to PATH
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), inputs:
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), targetType: inline
eq(${{ parameters.aggregatePipeline }}, False) script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
variables: - task: Bash@3
- group: common displayName: tox test
- template: /.azuredevops/variables-global.yml inputs:
- name: ROCM_PATH targetType: inline
value: $(Agent.BuildDirectory)/rocm script: tox run -v -e ci -- -m pre_checkin
pool: ${{ job.target }}_test_pool workingDirectory: $(Build.SourcesDirectory)
workspace: - task: Bash@3
clean: all displayName: Remove Python site-packages binaries from path
steps: inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml targetType: inline
parameters: script: |
aptPackages: ${{ parameters.aptPackages }} USER_BASE=$(python3 -m site --user-base)
pipModules: ${{ parameters.pipModules }} echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$USER_BASE/bin;;' -e 's;^/;;' -e 's;/$;;')"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - task: Bash@3
- task: DownloadPipelineArtifact@2 displayName: Remove ROCm binaries from PATH
displayName: 'Download Pipeline Wheel Files' inputs:
inputs: targetType: inline
itemPattern: '**/*.whl' script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
targetPath: $(Agent.BuildDirectory) - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml displayName: Remove ROCm compilers from PATH
parameters: inputs:
checkoutRepo: ${{ parameters.checkoutRepo }} targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml 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/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
- task: Bash@3
displayName: pip install
inputs:
targetType: inline
script: find -name *.whl -exec pip install {} \;
workingDirectory: $(Agent.BuildDirectory)
- 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
USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.prependpath]$USER_BASE/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3
displayName: tox test
inputs:
targetType: inline
script: tox run -v -e ci -- -m pre_checkin
workingDirectory: $(Build.SourcesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
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

@@ -1,142 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
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
type: object
default:
- cmake
- libnuma-dev
- ninja-build
- python3-pip
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- name: rocmTestDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- rocprofiler-register
- ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: TransferBench_build_${{ job.target }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.BASE_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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: TransferBench_test_${{ job.target }}
dependsOn: TransferBench_build_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: TransferBench All-to-all
testDir: '$(Agent.BuildDirectory)'
testExecutable: './rocm/bin/TransferBench'
testParameters: 'a2a'
testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: TransferBench Peer-to-peer
testDir: '$(Agent.BuildDirectory)'
testExecutable: './rocm/bin/TransferBench'
testParameters: 'p2p'
testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,31 +5,13 @@ 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
- libdrm-dev - libdrm-dev
- ninja-build
- python3-pip
- pkg-config
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: amdsmi_build - job: amdsmi
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -49,46 +31,34 @@ jobs:
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
-DBUILD_TESTS=ON -DBUILD_TESTS=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: amdsmi_testing
- job: amdsmi_test_${{ job.target }} dependsOn: amdsmi
dependsOn: amdsmi_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters:
parameters: runRocminfo: false
runRocminfo: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters:
parameters: componentName: amdsmi
componentName: amdsmi testDir: '$(Agent.BuildDirectory)'
testDir: '$(Agent.BuildDirectory)' testExecutable: './rocm/share/amd_smi/tests/amdsmitst'
testExecutable: './rocm/share/amd_smi/tests/amdsmitst' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
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:
@@ -42,9 +37,13 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- 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
@@ -55,9 +54,4 @@ jobs:
-DAOMP_VERSION_STRING=$(LATEST_RELEASE_TAG) -DAOMP_VERSION_STRING=$(LATEST_RELEASE_TAG)
-GNinja -GNinja
installDir: $(Build.BinariesDirectory)/llvm installDir: $(Build.BinariesDirectory)/llvm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

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
# 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
@@ -48,7 +43,9 @@ parameters:
- python3-dev - python3-dev
- libudev-dev - libudev-dev
- parallel - parallel
# Referencing comment snippet. # Referencing comment snippet below but excluding rocprofiler and roctracer.
# This is to remove need for separate build per gpu target.
# With our selected build flags, compilation and installation work fine without these two.
# #
# snippet from https://github.com/ROCm/aomp/blob/aomp-dev/bin/build_aomp.sh#L131-L134 # snippet from https://github.com/ROCm/aomp/blob/aomp-dev/bin/build_aomp.sh#L131-L134
# #
@@ -68,21 +65,10 @@ parameters:
- rocm-core - rocm-core
- rocminfo - rocminfo
- rocm_smi_lib - rocm_smi_lib
- rocprofiler
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- roctracer - roctracer
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: aomp - job: aomp
variables: variables:
@@ -111,149 +97,393 @@ jobs:
checkoutRepo: llvm-project_repo checkoutRepo: llvm-project_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
componentName: extras # manual build case: triggered by ROCm/ROCm repo
cmakeBuildDir: '$(Build.SourcesDirectory)/aomp-extras/build' ${{ elseif ne(parameters.checkoutRef, '') }}:
cmakeSourceDir: '$(Build.SourcesDirectory)/aomp-extras' dependencySource: tag-builds
installDir: '$(Build.BinariesDirectory)/llvm' # Because clang is not being rebuilt and to separate downloaded ROCm
extraBuildFlags: >- # dependencies from the new artifacts, we use temporary symbolic links
-DLLVM_DIR=$(Agent.BuildDirectory)/rocm/llvm # for the compilation and installation to go through.
-DCMAKE_BUILD_TYPE=Release - script: |
-DAOMP_STANDALONE_BUILD=0 sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
-DAOMP_VERSION_STRING=9.99.99 mkdir -p $(Build.BinariesDirectory)/bin
-GNinja ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/clang $(Build.BinariesDirectory)/bin/clang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/clang++ $(Build.BinariesDirectory)/bin/clang++
parameters: ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/llvm-config $(Build.BinariesDirectory)/bin/llvm-config
componentName: openmp ln -s $(Agent.BuildDirectory)/rocm/llvm $(Build.BinariesDirectory)/llvm
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm-project/openmp/build' displayName: Extra build environment setup
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm-project/openmp' # We follow the sequence described in the aomp repo instructions
installDir: '$(Build.BinariesDirectory)/llvm' # https://github.com/ROCm/aomp/blob/aomp-dev/docs/SOURCEINSTALL.md
extraBuildFlags: >- # But instead of calling build_aomp.sh directly, we have to split up the calls to build each component
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Build.BinariesDirectory)" # in order for the omp.h header file to be both be published as an artifact,
-DCMAKE_BUILD_TYPE=Release # and be found when building subsequent components.
-DOPENMP_TEST_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ # Environment variables specified per bash script were determined from looking through the
-DOPENMP_TEST_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang # individual scripts and iteratively testing compilation.
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ # Splitting up the build_aomp.sh call is also easier for debugging within Azure, as the former
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang # method leads to a giant build log compared to separate logs per script call.
-DOPENMP_ENABLE_LIBOMPTARGET=1 #
-DLIBOMP_COPY_EXPORTS=OFF # Components compiled and the order for non-standalone build found at
-DLIBOMP_OMPT_SUPPORT=ON # https://github.com/ROCm/aomp/blob/aomp-dev/bin/build_aomp.sh#L135-L143
-DLIBOMP_OMPD_SUPPORT=ON
-DCMAKE_SKIP_INSTALL_RPATH=TRUE
-DLLVM_MAIN_INCLUDE_DIR=$(Build.SourcesDirectory)/llvm-project/llvm/include
-DLIBOMP_FORTRAN_MODULES_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang
-DLIBOMP_MODULES_INSTALL_PATH=$(Build.BinariesDirectory)/llvm/include/flang/
-GNinja
- task: Bash@3 - task: Bash@3
displayName: 'ROCm symbolic link' displayName: Build Prereq
inputs: inputs:
targetType: inline filePath: $(Build.SourcesDirectory)/aomp/bin/build_prereq.sh
script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm env:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml AOMP_REPOS: $(Build.SourcesDirectory)
- task: Bash@3
displayName: Build extras
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_extras.sh
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_EXTRAS: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Install extras
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_extras.sh
arguments: install
env:
AOMP_REPOS: $(Build.SourcesDirectory)
AOMP_PROJECT_REPO_NAME: llvm-project
AOMP_STANDALONE_BUILD: 0
AOMP_USE_NINJA: 1
INSTALL_PREFIX: $(Build.BinariesDirectory)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_EXTRAS: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Build openmp
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_openmp.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 openmp
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_openmp.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)
CMAKE_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)/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)
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: Build flang-legacy
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang-legacy.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)
CMAKE_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-legacy
inputs:
filePath: $(Build.SourcesDirectory)/aomp/bin/build_flang-legacy.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 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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(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)
CMAKE_INSTALL_PREFIX: $(Build.BinariesDirectory)
LLVM_PROJECT_ROOT: $(Build.SourcesDirectory)/llvm-project
AOMP: $(Build.BinariesDirectory)
AOMP_INSTALL_DIR: $(Build.BinariesDirectory)
INSTALL_FLANG: $(Build.BinariesDirectory)
# Clean up build environment before publish artifact
- script: |
rm $(Build.BinariesDirectory)/bin/clang
rm $(Build.BinariesDirectory)/bin/clang++
rm $(Build.BinariesDirectory)/bin/llvm-config
rm $(Build.BinariesDirectory)/llvm
displayName: Remove temporary symbolic links
# 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: parameters:
componentName: offload sourceDir: $(Build.BinariesDirectory)
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm-project/offload/build' targetDir: $(Build.ArtifactStagingDirectory)
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm-project/offload' - task: DeleteFiles@1
installDir: '$(Build.BinariesDirectory)/llvm' displayName: 'Cleanup Binaries Directory'
extraBuildFlags: >- inputs:
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;$(Build.BinariesDirectory)" SourceFolder: '$(Build.BinariesDirectory)'
-DCMAKE_BUILD_TYPE=Release Contents: '/**/*'
-DOPENMP_TEST_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ RemoveDotFiles: true
-DOPENMP_TEST_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang++ parameters:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/clang sourceDir: $(Build.ArtifactStagingDirectory)
-DCMAKE_SKIP_INSTALL_RPATH=TRUE targetDir: $(Build.BinariesDirectory)/llvm
-DLLVM_MAIN_INCLUDE_DIR=$(Build.SourcesDirectory)/llvm-project/llvm/include - task: DeleteFiles@1
-DLIBOMPTARGET_LLVM_INCLUDE_DIRS=$(Build.SourcesDirectory)/llvm-project/llvm/include displayName: 'Cleanup Staging Directory'
-DCMAKE_EXE_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/llvm/lib" inputs:
-DCMAKE_SHARED_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/llvm/lib" SourceFolder: $(Build.ArtifactStagingDirectory)
-GNinja Contents: '/**/*'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml RemoveDotFiles: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - job: aomp_testing
dependsOn: aomp
condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: $(JOB_TEST_POOL)
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
steps:
- 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
- ${{ each job in parameters.jobMatrix.testJobs }}: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- job: aomp_test_${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependsOn: aomp parameters:
condition: dependencyList: ${{ parameters.rocmDependencies }}
and(succeeded(), ${{ if eq(parameters.checkoutRef, '') }}:
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), dependencySource: staging
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), ${{ elseif ne(parameters.checkoutRef, '') }}:
eq(${{ parameters.aggregatePipeline }}, False) dependencySource: tag-builds
) - task: Bash@3
variables: displayName: ROCm symbolic link
- group: common inputs:
- template: /.azuredevops/variables-global.yml targetType: inline
pool: ${{ job.target }}_test_pool script: |
workspace: sudo rm -rf /opt/rocm
clean: all sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
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/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml checkoutRepo: aomp-extras_repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml # these copy steps are from the aomp prototype script for test prep
parameters: - task: CopyFiles@2
checkoutRef: ${{ parameters.checkoutRef }} displayName: 'Copy AOMP contents'
dependencyList: ${{ parameters.rocmDependencies }} inputs:
- task: Bash@3 CleanTargetFolder: false
displayName: ROCm symbolic link SourceFolder: $(Build.SourcesDirectory)/aomp
inputs: Contents: |
targetType: inline **
script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm !**/.git/**
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml !**/.github/**
parameters: !**/.gitignore
checkoutRepo: ${{ parameters.checkoutRepo }} TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml retryCount: 3
parameters: - task: CopyFiles@2
checkoutRepo: aomp-extras_repo displayName: 'Copy FileCheck'
# these copy steps are from the aomp prototype script for test prep inputs:
- task: CopyFiles@2 CleanTargetFolder: false
displayName: 'Copy AOMP contents' SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin
inputs: Contents: FileCheck
CleanTargetFolder: false TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin
SourceFolder: $(Build.SourcesDirectory)/aomp retryCount: 3
Contents: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
** - task: Bash@3
!**/.git/** displayName: Test AOMP
!**/.github/** continueOnError: true
!**/.gitignore inputs:
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests targetType: inline
retryCount: 3 script: ./run_rocm_test.sh
- task: CopyFiles@2 workingDirectory: $(Build.SourcesDirectory)/aomp/bin
displayName: 'Copy FileCheck' env:
inputs: AOMP: $(Agent.BuildDirectory)/rocm/llvm
CleanTargetFolder: false AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test
SourceFolder: $(Agent.BuildDirectory)/rocm/llvm/bin AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test
Contents: FileCheck SKIP_TEST_PACKAGE: 1
TargetFolder: $(Agent.BuildDirectory)/rocm/share/openmp-extras/tests/bin MAINLINE_BUILD: 1
retryCount: 3 SUITE_LIST: smoke
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- task: Bash@3
displayName: Test AOMP
continueOnError: true
inputs:
targetType: inline
script: ./run_rocm_test.sh
workingDirectory: $(Build.SourcesDirectory)/aomp/bin
env:
AOMP: $(Agent.BuildDirectory)/rocm/llvm
AOMP_REPOS_TEST: $(Build.SourcesDirectory)/aomp-test
AOMP_TEST_DIR: $(Build.SourcesDirectory)/aomp-test
SKIP_TEST_PACKAGE: 1
MAINLINE_BUILD: 1
SUITE_LIST: smoke
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
optSymLink: 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:
@@ -32,134 +27,121 @@ parameters:
type: object type: object
default: default:
- clr - clr
- composable_kernel
- llvm-project - llvm-project
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: composable_kernel
- job: composable_kernel_build_${{ job.target }} timeoutInMinutes: 240
timeoutInMinutes: 240 variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: DAY_STRING
- name: DAY_STRING value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
value: $[format('{0:ddMMyyyy}', pipeline.startTime)] pool: ${{ variables.ULTRA_BUILD_POOL }}
pool: ${{ variables.ULTRA_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- script: | gpuTarget: $(JOB_GPU_TARGET)
mkdir -p $(CCACHE_DIR) # CI case: download latest default branch build
echo "##vso[task.prependpath]/usr/lib/ccache" ${{ if eq(parameters.checkoutRef, '') }}:
displayName: Update path for ccache dependencySource: staging
- task: Cache@2 # manual build case: triggered by ROCm/ROCm repo
displayName: Ccache caching ${{ elseif ne(parameters.checkoutRef, '') }}:
inputs: dependencySource: tag-builds
key: composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - script: |
path: $(CCACHE_DIR) mkdir -p $(CCACHE_DIR)
restoreKeys: | echo "##vso[task.prependpath]/usr/lib/ccache"
composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) displayName: Update path for ccache
composable_kernel | $(Agent.OS) | ${{ job.target }} - task: Cache@2
composable_kernel | $(Agent.OS) displayName: Ccache caching
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml inputs:
parameters: key: composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
extraBuildFlags: >- path: $(CCACHE_DIR)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ restoreKeys: |
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache composable_kernel | $(Agent.OS) | $(JOB_GPU_TARGET)
-DCMAKE_C_COMPILER_LAUNCHER=ccache composable_kernel | $(Agent.OS)
-DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DCK_BUILD_JIT_LIB=ON extraBuildFlags: >-
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -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 }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs"
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DCK_BUILD_JIT_LIB=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_POSITION_INDEPENDENT_CODE=ON
parameters: -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: composable_kernel_testing
- job: composable_kernel_test_${{ job.target }} dependsOn: composable_kernel
timeoutInMinutes: 180 condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
dependsOn: composable_kernel_build_${{ job.target }} variables:
condition: - group: common
and(succeeded(), - template: /.azuredevops/variables-global.yml
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - name: TEST_LOG_FILE
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), value: $(Pipeline.Workspace)/ckTestLog.log
eq(${{ parameters.aggregatePipeline }}, False) pool: $(JOB_TEST_POOL)
) workspace:
variables: clean: all
- group: common strategy:
- template: /.azuredevops/variables-global.yml matrix:
- name: TEST_LOG_FILE gfx942:
value: $(Pipeline.Workspace)/ckTestLog.log JOB_GPU_TARGET: gfx942
pool: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
steps: parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
checkoutRef: ${{ parameters.checkoutRef }} dependencySource: tag-builds
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml dependencyList: ${{ parameters.rocmTestDependencies }}
- task: Bash@3 gpuTarget: $(JOB_GPU_TARGET)
displayName: Iterate through test scripts ${{ if eq(parameters.checkoutRef, '') }}:
inputs: dependencySource: staging
targetType: inline ${{ elseif ne(parameters.checkoutRef, '') }}:
script: | dependencySource: tag-builds
for file in ./test_*; do - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
./$file | tee -a $(TEST_LOG_FILE) - task: Bash@3
done displayName: Iterate through test scripts
workingDirectory: $(Agent.BuildDirectory)/rocm/bin inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml targetType: inline
parameters: script: |
aptPackages: ${{ parameters.aptPackages }} for file in ./test_*; do
environment: test ./$file | tee -a $(TEST_LOG_FILE)
gpuTarget: ${{ job.target }} done
workingDirectory: $(Agent.BuildDirectory)/rocm/bin

View File

@@ -26,11 +26,7 @@ jobs:
parameters: parameters:
componentName: HIP componentName: HIP
pipelineId: $(HIP_PIPELINE_ID) pipelineId: $(HIP_PIPELINE_ID)
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
displayName: Copy HIP artifacts parameters:
inputs: sourceDir: $(Agent.BuildDirectory)/rocm
targetType: inline
script: cp -a $(Agent.BuildDirectory)/rocm/* $(Build.BinariesDirectory)/
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml

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,16 +39,19 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- 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
-DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# only run test03 because test11 has too many test cases, taking way too long # only run test03 because test11 has too many test cases, taking way too long
- task: Bash@3 - task: Bash@3
@@ -65,8 +63,3 @@ jobs:
make test03 make test03
./bin/test ./bin/test
workingDirectory: $(Build.SourcesDirectory)/test workingDirectory: $(Build.SourcesDirectory)/test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# environment: combined

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:
@@ -42,118 +37,108 @@ 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:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME
- name: HIP_ROCCLR_HOME value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
# compile hip-tests dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # CI case: download latest default branch build
parameters: ${{ if eq(parameters.checkoutRef, '') }}:
componentName: hip-tests dependencySource: staging
cmakeSourceDir: '../catch' # manual build case: triggered by ROCm/ROCm repo
customBuildTarget: build_tests ${{ elseif ne(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: tag-builds
-DHIP_PLATFORM=amd # compile hip-tests
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCM_PATH=$(Agent.BuildDirectory)/rocm parameters:
-DHIP_PATH=$(Agent.BuildDirectory)/rocm componentName: hip-tests
-DOFFLOAD_ARCH_STR="--offload-arch=${{ job.target }}" cmakeSourceDir: '../catch'
-GNinja customBuildTarget: build_tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -DHIP_PLATFORM=amd
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DHIP_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DOFFLOAD_ARCH_STR="--offload-arch=$(JOB_GPU_TARGET)"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hip_tests_testing
- job: hip_tests_test_${{ job.target }} timeoutInMinutes: 240
timeoutInMinutes: 240 dependsOn: hip_tests
dependsOn: hip_tests_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- task: Bash@3 parameters:
displayName: Symlink rocm_agent_enumerator dependencyList: ${{ parameters.rocmTestDependencies }}
inputs: gpuTarget: $(JOB_GPU_TARGET)
targetType: inline ${{ if eq(parameters.checkoutRef, '') }}:
script: | dependencySource: staging
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral ${{ elseif ne(parameters.checkoutRef, '') }}:
sudo mkdir -p /opt/rocm/bin dependencySource: tag-builds
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml displayName: Symlink rocm_agent_enumerator
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml inputs:
parameters: targetType: inline
componentName: hip_tests script: |
testDir: $(Agent.BuildDirectory)/rocm/share/hip sudo rm -rf /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml sudo mkdir -p /opt/rocm/bin
parameters: sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator /opt/rocm/bin/rocm_agent_enumerator
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
optSymLink: true componentName: hip_tests
testDir: $(Agent.BuildDirectory)/rocm/share/hip
reloadAMDGPU: true
- task: Bash@3
displayName: Clean up symlink
inputs:
targetType: inline
script: sudo rm -rf /opt/rocm

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:
@@ -46,22 +41,22 @@ jobs:
- 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 # CI case: download latest default branch build
parameters: - ${{ if eq(parameters.checkoutRef, '') }}:
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: tag-builds
- 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++
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# extraEnvVars:
# - ROCM_PATH:::/home/user/workspace/rocm

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:
@@ -21,10 +16,6 @@ parameters:
- libgtest-dev - libgtest-dev
- wget - wget
- python3-pip - python3-pip
- name: pipModules
type: object
default:
- pyyaml
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -56,111 +47,93 @@ parameters:
- rocSOLVER - rocSOLVER
- 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: hipBLAS
- job: hipBLAS_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # CI case: download latest default branch build
parameters: ${{ if eq(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: staging
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_BUILD_TYPE=Release ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: tag-builds
-DHIP_PLATFORM=amd - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DBUILD_CLIENTS_BENCHMARKS=OFF extraBuildFlags: >-
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCPACK_SET_DESTDIR=OFF -DCMAKE_BUILD_TYPE=Release
-GNinja -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DHIP_PLATFORM=amd
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: -DCPACK_SET_DESTDIR=OFF
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
pipModules: ${{ parameters.pipModules }}
installAOCL: true
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipBLAS_testing
- job: hipBLAS_test_${{ job.target }} dependsOn: hipBLAS
dependsOn: hipBLAS_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
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
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
checkoutRef: ${{ parameters.checkoutRef }} dependencySource: tag-builds
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- 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: ${{ if eq(parameters.checkoutRef, '') }}:
componentName: hipBLAS dependencySource: staging
testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
testDir: '$(Agent.BuildDirectory)/rocm/bin' - 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: hipBLAS
pipModules: ${{ parameters.pipModules }} testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test
environment: test testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/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:
@@ -27,8 +22,7 @@ parameters:
type: object type: object
default: default:
- joblib - joblib
- "packaging>=22.0" - packaging
- --upgrade
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -54,173 +48,146 @@ 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: hipBLASLt
- job: hipBLASLt_build_${{ job.target }} timeoutInMinutes: 300
timeoutInMinutes: 300 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: TENSILE_ROCM_ASSEMBLER_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
value: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - name: CMAKE_CXX_COMPILER
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH value: $(Agent.BuildDirectory)/rocm/bin/hipcc
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Agent.BuildDirectory)/rocm - name: TENSILE_ROCM_PATH
- name: DAY_STRING value: $(Agent.BuildDirectory)/rocm/bin/hipcc
value: $[format('{0:ddMMyyyy}', pipeline.startTime)] - name: PATH
pool: ${{ variables.ULTRA_BUILD_POOL }} value: $(Agent.BuildDirectory)/rocm/llvm/bin:$(Agent.BuildDirectory)/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
workspace: - name: DAY_STRING
clean: all value: $[format('{0:ddMMyyyy}', pipeline.startTime)]
steps: pool: ${{ variables.ULTRA_BUILD_POOL }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml workspace:
parameters: clean: all
aptPackages: ${{ parameters.aptPackages }} strategy:
pipModules: ${{ parameters.pipModules }} matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml gfx942:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml JOB_GPU_TARGET: gfx942
- 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: pipModules: ${{ parameters.pipModules }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
aggregatePipeline: ${{ parameters.aggregatePipeline }} parameters:
- task: Bash@3 checkoutRepo: ${{ parameters.checkoutRepo }}
displayName: Add ROCm binaries to PATH - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
inputs: parameters:
targetType: inline dependencyList: ${{ parameters.rocmDependencies }}
script: | gpuTarget: $(JOB_GPU_TARGET)
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" # CI case: download latest default branch build
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" ${{ if eq(parameters.checkoutRef, '') }}:
# Build and install gtest, lapack, hipBLAS-common dependencySource: staging
# $(Pipeline.Workspace)/deps is a temporary folder for the build process # manual build case: triggered by ROCm/ROCm repo
# $(Pipeline.Workspace)/s/deps is part of the hipBLASLt repo ${{ elseif ne(parameters.checkoutRef, '') }}:
- script: mkdir $(Pipeline.Workspace)/deps dependencySource: tag-builds
displayName: Create temp folder for external dependencies - script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
# hipBLASLt already has a CMake script for external deps, so we can just run that displayName: ROCm symbolic link
# https://github.com/ROCm/hipBLASLt/blob/develop/deps/CMakeLists.txt # Build and install gtest, lapack, hipBLAS-common
- script: cmake $(Pipeline.Workspace)/s/deps # $(Pipeline.Workspace)/deps is a temporary folder for the build process
displayName: Configure hipBLASLt external dependencies # $(Pipeline.Workspace)/s/deps is part of the hipBLASLt repo
workingDirectory: $(Pipeline.Workspace)/deps - script: mkdir $(Pipeline.Workspace)/deps
- script: make displayName: Create temp folder for external dependencies
displayName: Build hipBLASLt external dependencies # hipBLASLt already has a CMake script for external deps, so we can just run that
workingDirectory: $(Pipeline.Workspace)/deps # https://github.com/ROCm/hipBLASLt/blob/develop/deps/CMakeLists.txt
- script: sudo make install - script: cmake $(Pipeline.Workspace)/s/deps
displayName: Install hipBLASLt external dependencies displayName: Configure hipBLASLt external dependencies
workingDirectory: $(Pipeline.Workspace)/deps workingDirectory: $(Pipeline.Workspace)/deps
- script: | - script: make
mkdir -p $(CCACHE_DIR) displayName: Build hipBLASLt external dependencies
echo "##vso[task.prependpath]/usr/lib/ccache" workingDirectory: $(Pipeline.Workspace)/deps
displayName: Update path for ccache - script: sudo make install
- task: Cache@2 displayName: Install hipBLASLt external dependencies
displayName: Ccache caching workingDirectory: $(Pipeline.Workspace)/deps
inputs: - script: |
key: hipBLASLt | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ mkdir -p $(CCACHE_DIR)
path: $(CCACHE_DIR) echo "##vso[task.prependpath]/usr/lib/ccache"
restoreKeys: | displayName: Update path for ccache
hipBLASLt | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) - task: Cache@2
hipBLASLt | $(Agent.OS) | ${{ job.target }} displayName: Ccache caching
hipBLASLt | $(Agent.OS) inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml key: hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
parameters: path: $(CCACHE_DIR)
extraBuildFlags: >- restoreKeys: |
-DCMAKE_BUILD_TYPE=Release hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET) | $(DAY_STRING)
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm hipBLASLt | $(Agent.OS) | $(JOB_GPU_TARGET)
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ hipBLASLt | $(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: >-
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_BUILD_TYPE=Release
-DTensile_LOGIC= -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DTensile_CPU_THREADS= -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DTensile_LIBRARY_FORMAT=msgpack -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" -DCMAKE_C_COMPILER_LAUNCHER=ccache
-DBUILD_CLIENTS_TESTS=ON -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja -DTensile_LOGIC=
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DTensile_CPU_THREADS=
parameters: -DTensile_CODE_OBJECT_VERSION=default
gpuTarget: ${{ job.target }} -DTensile_LIBRARY_FORMAT=msgpack
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
parameters: -DBUILD_CLIENTS_TESTS=ON
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
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
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: hipBLASLt_test_${{ job.target }} - job: hipBLASLt_testing
timeoutInMinutes: 300 dependsOn: hipBLASLt
dependsOn: hipBLASLt_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:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: ${{ job.target }}_test_pool steps:
workspace: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
clean: all parameters:
steps: aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
pipModules: ${{ parameters.pipModules }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: parameters:
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
componentName: hipBLASLt ${{ elseif ne(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: tag-builds
testExecutable: './hipblaslt-test' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters:
parameters: componentName: hipBLASLt
aptPackages: ${{ parameters.aptPackages }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
pipModules: ${{ parameters.pipModules }} testExecutable: './hipblaslt-test'
environment: test testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
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:
@@ -36,100 +31,87 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- 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: hipCUB
- job: hipCUB_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DBUILD_TEST=ON dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DBUILD_TEST=ON
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipCUB_testing
- job: hipCUB_test_${{ job.target }} dependsOn: hipCUB
dependsOn: hipCUB_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipCUB ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: hipCUB
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub'

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:
@@ -45,111 +40,98 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocRAND - rocRAND
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipFFT
- job: hipFFT_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: 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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-DUSE_HIP_CLANG=ON extraBuildFlags: >-
-DHIP_COMPILER=clang -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DBUILD_CLIENTS_BENCHMARKS=OFF -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DUSE_HIP_CLANG=ON
gpuTarget: ${{ job.target }} -DHIP_COMPILER=clang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -DBUILD_CLIENTS_BENCHMARKS=OFF
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_SAMPLES=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipFFT_testing
- job: hipFFT_test_${{ job.target }} dependsOn: hipFFT
dependsOn: hipFFT_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipFFT ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './hipfft-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--test_prob 0.002 --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: hipFFT
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipfft-test'
testParameters: '--test_prob 0.002 --gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -17,7 +12,6 @@ parameters:
- ninja-build - ninja-build
- googletest - googletest
- git - git
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -36,107 +30,92 @@ 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: hipRAND
- job: hipRAND_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: 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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang # manual build case: triggered by ROCm/ROCm repo
-DBUILD_TEST=ON ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip dependencySource: tag-builds
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DAMDGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-GNinja -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
parameters: -DBUILD_TEST=ON
gpuTarget: ${{ job.target }} -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# gpuTarget: ${{ job.target }}
# extraEnvVars:
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipRAND_testing
- job: hipRAND_test_${{ job.target }} dependsOn: hipRAND
dependsOn: hipRAND_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipRAND ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: hipRAND
testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND'

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:
@@ -20,7 +15,6 @@ parameters:
- git - git
- googletest - googletest
- libgtest-dev - libgtest-dev
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -50,117 +44,101 @@ 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: hipSOLVER_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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
# build external gtest and lapack gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # CI case: download latest default branch build
parameters: ${{ if eq(parameters.checkoutRef, '') }}:
componentName: external dependencySource: staging
cmakeBuildDir: '$(Build.SourcesDirectory)/deps/build' # manual build case: triggered by ROCm/ROCm repo
cmakeSourceDir: '$(Build.SourcesDirectory)/deps' ${{ elseif ne(parameters.checkoutRef, '') }}:
installDir: '$(Pipeline.Workspace)/deps-install' dependencySource: tag-builds
extraBuildFlags: >- # build external gtest and lapack
-DBUILD_BOOST=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_GTEST=OFF parameters:
-GNinja componentName: external
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml cmakeBuildDir: 'deps/build'
parameters: installDir: '$(Pipeline.Workspace)/deps-install'
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install -DBUILD_BOOST=OFF
-DCMAKE_BUILD_TYPE=Release -DBUILD_GTEST=OFF
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -GNinja
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DUSE_CUDA=OFF extraBuildFlags: >-
-GNinja -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -DUSE_CUDA=OFF
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
# gpuTarget: ${{ job.target }}
# extraCopyDirectories:
# - deps-install
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipSOLVER_testing
- job: hipSOLVER_test_${{ job.target }} dependsOn: hipSOLVER
dependsOn: hipSOLVER_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipSOLVER ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './hipsolver-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: hipSOLVER
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipsolver-test'
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -21,7 +16,6 @@ parameters:
- git - git
- gfortran - gfortran
- libgtest-dev - libgtest-dev
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -45,115 +39,100 @@ 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: hipSPARSE
- job: hipSPARSE_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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_BUILD_TYPE=Release # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/ ${{ elseif ne(parameters.checkoutRef, '') }}:
-DBUILD_CLIENTS_TESTS=ON dependencySource: tag-builds
-DBUILD_CLIENTS_SAMPLES=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-GNinja parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
artifactName: hipSPARSE -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -DBUILD_CLIENTS_SAMPLES=OFF
artifactName: hipSPARSE -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
publish: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml artifactName: hipSPARSE
parameters: gpuTarget: $(JOB_GPU_TARGET)
sourceDir: $(Build.SourcesDirectory)/build/clients publish: false
contentsString: matrices/** - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: sourceDir: $(Build.SourcesDirectory)/build/clients
artifactName: testMatrices contentsString: matrices/**
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml artifactName: testMatrices
# parameters: gpuTarget: $(JOB_GPU_TARGET)
# aptPackages: ${{ parameters.aptPackages }}
# environment: test
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipSPARSE_testing
- job: hipSPARSE_test_${{ job.target }} dependsOn: hipSPARSE
dependsOn: hipSPARSE_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipSPARSE ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './hipsparse-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: hipSPARSE
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './hipsparse-test'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -33,11 +28,9 @@ parameters:
- hipSPARSE - hipSPARSE
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm_smi_lib
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -50,144 +43,118 @@ parameters:
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
testJobs:
- gfx942:
target: gfx942
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipSPARSELt
- job: hipSPARSELt_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: TENSILE_ROCM_ASSEMBLER_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang - name: CMAKE_CXX_COMPILER
- name: CMAKE_CXX_COMPILER value: $(Agent.BuildDirectory)/rocm/llvm/bin/hipcc
value: $(Agent.BuildDirectory)/rocm/llvm/bin/hipcc - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler - name: PATH
- name: PATH 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:$(Agent.BuildDirectory)/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- 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 pipModules: ${{ parameters.pipModules }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
# Build and install gtest and lapack gpuTarget: $(JOB_GPU_TARGET)
# $(Pipeline.Workspace)/deps is a temporary folder for the build process # CI case: download latest default branch build
# $(Pipeline.Workspace)/s/deps is part of the hipSPARSELt repo ${{ if eq(parameters.checkoutRef, '') }}:
- script: mkdir $(Pipeline.Workspace)/deps dependencySource: staging
displayName: Create temp folder for external dependencies # manual build case: triggered by ROCm/ROCm repo
# hipSPARSELt already has a CMake script for external deps, so we can just run that ${{ elseif ne(parameters.checkoutRef, '') }}:
# https://github.com/ROCm/hipSPARSELt/blob/develop/deps/CMakeLists.txt dependencySource: tag-builds
- script: cmake $(Pipeline.Workspace)/s/deps # Build and install gtest and lapack
displayName: Configure 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: make - script: mkdir $(Pipeline.Workspace)/deps
displayName: Build 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
- script: sudo make install # https://github.com/ROCm/hipSPARSELt/blob/develop/deps/CMakeLists.txt
displayName: Install hipSPARSELt external dependencies - script: cmake $(Pipeline.Workspace)/s/deps
workingDirectory: $(Pipeline.Workspace)/deps displayName: Configure hipSPARSELt external dependencies
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml workingDirectory: $(Pipeline.Workspace)/deps
parameters: - script: make
extraBuildFlags: >- displayName: Build hipSPARSELt external dependencies
-DCMAKE_BUILD_TYPE=Release workingDirectory: $(Pipeline.Workspace)/deps
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - script: sudo make install
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang displayName: Install hipSPARSELt external dependencies
-DCMAKE_Fortran_COMPILER=f95 workingDirectory: $(Pipeline.Workspace)/deps
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DTensile_LOGIC= parameters:
-DTensile_CPU_THREADS= extraBuildFlags: >-
-DTensile_LIBRARY_FORMAT=msgpack -DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DBUILD_CLIENTS_TESTS=ON -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-GNinja -DTensile_LOGIC=
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DTensile_CPU_THREADS=
parameters: -DTensile_CODE_OBJECT_VERSION=default
gpuTarget: ${{ job.target }} -DTensile_LIBRARY_FORMAT=msgpack
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm"
parameters: -DROCM_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
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
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipSPARSELt_testing
- job: hipSPARSELt_test_${{ job.target }} dependsOn: hipSPARSELt
dependsOn: hipSPARSELt_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmTestDependencies }} ${{ if eq(parameters.checkoutRef, '') }}:
gpuTarget: ${{ job.target }} dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml dependencySource: tag-builds
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
componentName: hipSPARSELt - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testDir: '$(Agent.BuildDirectory)/rocm/bin' parameters:
testExecutable: './hipsparselt-test' componentName: hipSPARSELt
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*' testDir: '$(Agent.BuildDirectory)/rocm/bin'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testExecutable: './hipsparselt-test'
parameters: testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*'
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:
@@ -35,103 +30,90 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: hipTensor
- job: hipTensor_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ # manual build case: triggered by ROCm/ROCm repo
-DROCM_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_BUILD_TYPE=Release dependencySource: tag-builds
-DHIPTENSOR_BUILD_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-GNinja extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DHIPTENSOR_BUILD_TESTS=ON
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml multithreadFlag: -- -j32
- 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 }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipTensor_testing
- job: hipTensor_test_${{ job.target }} timeoutInMinutes: 90
timeoutInMinutes: 90 dependsOn: hipTensor
dependsOn: hipTensor_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: hipTensor ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor' dependencySource: staging
testParameters: '-E ".*-extended" --output-on-failure --force-new-ctest-process --output-junit test_output.xml' ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml dependencySource: tag-builds
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
environment: test parameters:
gpuTarget: ${{ job.target }} componentName: hipTensor
testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor'
testParameters: '-E ".*-extended" -VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml'

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,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: hipfort
- job: hipfort_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DROCM_PATH=$(Agent.BuildDirectory)/rocm dependencySource: staging
-DCMAKE_BUILD_TYPE=Release # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory) dependencySource: tag-builds
-DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_Fortran_FLAGS="-Mfree -fPIC" parameters:
-DCMAKE_Fortran_FLAGS_DEBUG="" extraBuildFlags: >-
-DHIPFORT_COMPILER_FLAGS="-cpp" -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar -DCMAKE_BUILD_TYPE=Release
-DHIPFORT_RANLIB=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ranlib -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/llvm
-DAMDGPU_TARGETS=${{ job.target }} -DHIPFORT_INSTALL_DIR=$(Build.BinariesDirectory)
-DBUILD_TESTING=ON -DHIPFORT_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/flang
-GNinja -DCMAKE_Fortran_FLAGS="-Mfree -fPIC"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_Fortran_FLAGS_DEBUG=""
parameters: -DHIPFORT_COMPILER_FLAGS="-cpp"
gpuTarget: ${{ job.target }} -DHIPFORT_AR=$(Agent.BuildDirectory)/rocm/llvm/bin/llvm-ar
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.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-links.yml -GNinja
- 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 }}
installLatestCMake: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: hipfort_testing
- job: hipfort_test_${{ job.target }} dependsOn: hipfort
dependsOn: hipfort_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRepo: ${{ parameters.checkoutRepo }} gpuTarget: $(JOB_GPU_TARGET)
- task: Bash@3 ${{ if eq(parameters.checkoutRef, '') }}:
displayName: 'ROCm symbolic link' dependencySource: staging
inputs: ${{ elseif ne(parameters.checkoutRef, '') }}:
targetType: inline dependencySource: tag-builds
script: | - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
# Assuming that /opt is no longer persistent across runs, test environments are fully ephemeral parameters:
sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm checkoutRepo: ${{ parameters.checkoutRepo }}
workingDirectory: $(Build.SourcesDirectory) - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml displayName: 'ROCm symbolic link'
- task: Bash@3 inputs:
displayName: 'Test hipfort' targetType: inline
inputs: script: |
targetType: inline sudo rm -rf /opt/rocm
script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
workingDirectory: $(Build.SourcesDirectory)/test workingDirectory: $(Build.SourcesDirectory)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
parameters: - task: Bash@3
aptPackages: ${{ parameters.aptPackages }} displayName: 'Test hipfort'
environment: test inputs:
gpuTarget: ${{ job.target }} targetType: inline
optSymLink: true script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all
workingDirectory: $(Build.SourcesDirectory)/test

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,9 +27,7 @@ jobs:
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
- name: HIP_DEVICE_LIB_PATH - name: HIP_DEVICE_LIB_PATH
value: '$(Build.BinariesDirectory)/amdgcn/bitcode' value: '$(Build.BinariesDirectory)/amdgcn/bitcode'
- name: HIP_PATH pool: ${{ variables.MEDIUM_BUILD_POOL }}
value: '$(Agent.BuildDirectory)/rocm'
pool: ${{ variables.ULTRA_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
@@ -47,17 +40,21 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
skipLlvmSymlink: true skipLlvmSymlink: true
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: rocm-llvm componentName: rocm-llvm
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_PREFIX_PATH="$(Build.BinariesDirectory)/llvm;$(Build.BinariesDirectory)" -DCMAKE_PREFIX_PATH="$(Build.BinariesDirectory)/llvm;$(Build.BinariesDirectory)"
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;mlir;flang -DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;mlir
-DLLVM_ENABLE_RUNTIMES=compiler-rt;libunwind;libcxx;libcxxabi -DLLVM_ENABLE_RUNTIMES=compiler-rt;libunwind;libcxx;libcxxabi
-DCLANG_ENABLE_AMDCLANG=ON -DCLANG_ENABLE_AMDCLANG=ON
-DLLVM_TARGETS_TO_BUILD=AMDGPU;X86 -DLLVM_TARGETS_TO_BUILD=AMDGPU;X86
@@ -83,8 +80,7 @@ jobs:
-DROCM_LLVM_BACKWARD_COMPAT_LINK=$(Build.BinariesDirectory)/llvm -DROCM_LLVM_BACKWARD_COMPAT_LINK=$(Build.BinariesDirectory)/llvm
-DROCM_LLVM_BACKWARD_COMPAT_LINK_TARGET=./lib/llvm -DROCM_LLVM_BACKWARD_COMPAT_LINK_TARGET=./lib/llvm
-GNinja -GNinja
cmakeBuildDir: '$(Build.SourcesDirectory)/llvm/build' cmakeBuildDir: 'llvm/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/llvm'
installDir: '$(Build.BinariesDirectory)/llvm' installDir: '$(Build.BinariesDirectory)/llvm'
# use llvm-lit to run unit tests for llvm, clang, and lld # use llvm-lit to run unit tests for llvm, clang, and lld
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
@@ -92,7 +88,7 @@ jobs:
componentName: check-llvm componentName: check-llvm
testDir: 'llvm/build' testDir: 'llvm/build'
testExecutable: './bin/llvm-lit' testExecutable: './bin/llvm-lit'
testParameters: '-q --xunit-xml-output=llvm_test_output.xml --filter-out="live-debug-values-spill-tracking" ./test' testParameters: '-q --xunit-xml-output=llvm_test_output.xml ./test'
testOutputFile: llvm_test_output.xml testOutputFile: llvm_test_output.xml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
@@ -122,17 +118,14 @@ jobs:
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build" -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build"
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/device-libs/build' cmakeBuildDir: 'amd/device-libs/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/device-libs'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: comgr componentName: comgr
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build;$(Build.SourcesDirectory)/amd/device-libs/build" -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build;$(Build.SourcesDirectory)/amd/device-libs/build"
-DCOMGR_DISABLE_SPIRV=1
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/comgr/build' cmakeBuildDir: 'amd/comgr/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/comgr'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
componentName: comgr componentName: comgr
@@ -145,15 +138,5 @@ jobs:
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-DHIPCC_BACKWARD_COMPATIBILITY=OFF -DHIPCC_BACKWARD_COMPATIBILITY=OFF
cmakeBuildDir: '$(Build.SourcesDirectory)/amd/hipcc/build' cmakeBuildDir: 'amd/hipcc/build'
cmakeSourceDir: '$(Build.SourcesDirectory)/amd/hipcc'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: combined
extraEnvVars:
- HIP_DEVICE_LIB_PATH:::/home/user/workspace/bin/amdgcn/bitcode
- HIP_PATH:::/home/user/workspace/rocm

View File

@@ -0,0 +1,166 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
- name: aptPackages
type: object
default:
- cmake
- python3-pip
- name: pipModules
type: object
default:
- astunparse==1.6.2
- colorlover
- dash>=1.12.0
- matplotlib
- numpy>=1.17.5
- pandas>=1.4.3
- pymongo
- pyyaml
- tabulate
- tqdm
- dash-svg
- dash-bootstrap-components
- kaleido
- setuptools
- plotille
- mock
- pytest
- pytest-cov
- pytest-xdist
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocm-core
- rocminfo
- ROCR-Runtime
- rocprofiler
- rocprofiler-register
- roctracer
jobs:
- job: omniperf
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: $(JOB_GPU_TARGET)
# CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)
- job: omniperf_testing
dependsOn: omniperf
condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: PYTHON_VERSION
value: 3.10
pool: $(JOB_TEST_POOL)
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: $(JOB_GPU_TARGET)
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- task: Bash@3
displayName: Add ROCm binaries to PATH
inputs:
targetType: inline
script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- task: Bash@3
displayName: Add ROCm compilers to PATH
inputs:
targetType: inline
script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release
-DENABLE_TESTS=ON
-DINSTALL_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: omniperf
testDir: $(Build.BinariesDirectory)/libexec/omniperf
testExecutable: export OMNIPERF_ARCH_OVERRIDE="MI300X"; ctest
- 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;/$;;')"

View File

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

View File

@@ -5,39 +5,32 @@ 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
- git
- googletest
- libboost-program-options-dev
- libdrm-dev
- libfftw3-dev
- libnuma-dev
- libstdc++-12-dev
- ninja-build
- python3-pip - python3-pip
- cmake
- libboost-program-options-dev
- googletest
- libfftw3-dev
- git
- ninja-build
- libstdc++-12-dev
- libnuma-dev
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- rocm-cmake
- llvm-project
- ROCR-Runtime
- clr
- rocminfo
- rocm_smi_lib
- rocprofiler-register
- rocm-core
- HIPIFY
- aomp - aomp
- aomp-extras - aomp-extras
- clr
- HIPIFY
- llvm-project
- rocm-cmake
- rocm-core
- rocm_smi_lib
- rocminfo
- rocprofiler-register
- ROCR-Runtime
- roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -52,116 +45,99 @@ parameters:
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- 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: rccl
- job: rccl_build_${{ job.target }} variables:
timeoutInMinutes: 90 - group: common
variables: - template: /.azuredevops/variables-global.yml
- group: common - name: HIP_ROCCLR_HOME
- template: /.azuredevops/variables-global.yml value: $(Build.BinariesDirectory)/rocm
- name: HIP_ROCCLR_HOME pool: ${{ variables.MEDIUM_BUILD_POOL }}
value: $(Build.BinariesDirectory)/rocm workspace:
pool: ${{ variables.HIGH_BUILD_POOL }} clean: all
workspace: strategy:
clean: all matrix:
steps: gfx942:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml JOB_GPU_TARGET: gfx942
parameters: steps:
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml 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/dependencies-cmake-latest.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
submoduleBehaviour: recursive parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: submoduleBehaviour: recursive
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # CI case: download latest default branch build
parameters: ${{ if eq(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc ${{ elseif ne(parameters.checkoutRef, '') }}:
-DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include dependencySource: tag-builds
-DCMAKE_BUILD_TYPE=Release - script: chmod +x $(Agent.BuildDirectory)/rocm/bin/hipify-perl
-DROCM_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_TESTS=ON parameters:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake;$(Agent.BuildDirectory)/rocm/libexec/hipify extraBuildFlags: >-
-DAMDGPU_TARGETS=${{ job.target }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-GNinja -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DHALF_INCLUDE_DIR=$(Agent.BuildDirectory)/rocm/include
parameters: -DCMAKE_BUILD_TYPE=Release
gpuTarget: ${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_TESTS=ON
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
installLatestCMake: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rccl_testing
- job: rccl_test_${{ job.target }} timeoutInMinutes: 120
timeoutInMinutes: 120 dependsOn: rccl
dependsOn: rccl_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rccl ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './rccl-UnitTests' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: rccl
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rccl-UnitTests'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -24,25 +19,20 @@ parameters:
- libtool - libtool
- pkg-config - pkg-config
- libdrm-dev - libdrm-dev
- libnuma-dev
- libyaml-cpp-dev - libyaml-cpp-dev
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- amdsmi - amdsmi
- clr - clr
- hipBLAS-common
- hipBLASLt
- llvm-project - llvm-project
- rocBLAS - rocBLAS
- rocm-cmake - rocm-cmake
- rocm-core
- rocminfo - rocminfo
- rocm_smi_lib - rocm_smi_lib
- ROCmValidationSuite - ROCmValidationSuite
- rocprofiler - rocprofiler
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
@@ -58,138 +48,121 @@ 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: rdc_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
# Build grpc gpuTarget: $(JOB_GPU_TARGET)
- task: Bash@3 # CI case: download latest default branch build
displayName: 'git clone grpc' ${{ if eq(parameters.checkoutRef, '') }}:
inputs: dependencySource: staging
targetType: inline # manual build case: triggered by ROCm/ROCm repo
script: git clone -b v1.67.1 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules ${{ elseif ne(parameters.checkoutRef, '') }}:
workingDirectory: $(Build.SourcesDirectory) dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # Build grpc
parameters: - task: Bash@3
cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build displayName: 'git clone grpc'
cmakeSourceDir: $(Build.SourcesDirectory)/grpc inputs:
installDir: $(Build.SourcesDirectory)/bin targetType: inline
extraBuildFlags: >- script: git clone -b v1.61.0 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules
-DgRPC_INSTALL=ON workingDirectory: $(Build.SourcesDirectory)
-DgRPC_BUILD_TESTS=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_SHARED_LIBS=ON parameters:
-DCMAKE_INSTALL_LIBDIR=lib cmakeBuildDir: $(Build.SourcesDirectory)/grpc/build
-DCMAKE_BUILD_TYPE=Release installDir: $(Build.SourcesDirectory)/bin
-DAMDGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-GNinja -DgRPC_INSTALL=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DgRPC_BUILD_TESTS=OFF
parameters: -DBUILD_SHARED_LIBS=ON
extraBuildFlags: >- -DCMAKE_INSTALL_LIBDIR=lib
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_BUILD_TYPE=Release
-DGRPC_ROOT="$(Build.SourcesDirectory)/bin" -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DBUILD_RVS=ON -GNinja
-DBUILD_PROFILER=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_TESTS=ON parameters:
-DAMDGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DGRPC_ROOT="$(Build.SourcesDirectory)/bin"
gpuTarget: ${{ job.target }} -DBUILD_RVS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_PROFILER=ON
parameters: -DBUILD_TESTS=ON
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rdc_testing
- job: rdc_test_${{ job.target }} dependsOn: rdc
dependsOn: rdc_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:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
- name: ROCM_DIR steps:
value: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pool: ${{ job.target }}_test_pool parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - 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_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
gpuTarget: ${{ job.target }} ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: staging
displayName: Setup test environment ${{ elseif ne(parameters.checkoutRef, '') }}:
inputs: dependencySource: tag-builds
targetType: inline - task: Bash@3
script: | displayName: Setup test environment
sudo ln -s $(Agent.BuildDirectory)/rocm/bin/rdcd /usr/sbin/rdcd inputs:
echo $(Agent.BuildDirectory)/rocm/lib/rdc/grpc/lib | sudo tee /etc/ld.so.conf.d/grpc.conf targetType: inline
sudo ldconfig -v script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml sudo rm -rf /opt/rocm
- task: Bash@3 sudo rm -rf /usr/sbin/rdcd
displayName: Test rdc 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
$(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
--batch_mode - task: Bash@3
--start_rdcd displayName: Test rdc
--unauth_comm inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml targetType: inline
parameters: script: >-
aptPackages: ${{ parameters.aptPackages }} $(Agent.BuildDirectory)/rocm/share/rdc/rdctst_tests/rdctst
environment: test --batch_mode
gpuTarget: ${{ job.target }} --start_rdcd
extraPaths: /home/user/workspace/rocm/bin --unauth_comm

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:
- libavcodec-dev - libavcodec-dev
- libavformat-dev - libavformat-dev
- libavutil-dev - libavutil-dev
- libdlpack-dev
- libsndfile1-dev
- libswscale-dev - libswscale-dev
- libturbojpeg-dev - libturbojpeg-dev
- libjpeg-turbo-official=3.0.2-20240124 - libjpeg-turbo-official=3.0.2-20240124
@@ -43,15 +36,15 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- aomp
- clr
- half
- llvm-project
- MIVisionX
- rocDecode
- rocm-cmake - rocm-cmake
- llvm-project
- ROCR-Runtime - ROCR-Runtime
- clr
- rocDecode
- half
- rpp - rpp
- MIVisionX
- aomp
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -60,209 +53,182 @@ parameters:
- half - half
- llvm-project - llvm-project
- MIVisionX - MIVisionX
- rocDecode
- rocminfo - rocminfo
- rocprofiler-register - rocprofiler-register
- 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: vmImage: ${{ variables.BASE_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- task: Bash@3 gfx942:
displayName: 'Register libjpeg-turbo packages' JOB_GPU_TARGET: gfx942
inputs: steps:
targetType: inline - task: Bash@3
script: | displayName: 'Register libjpeg-turbo packages'
sudo mkdir --parents --mode=0755 /etc/apt/keyrings inputs:
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null targetType: inline
echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list script: |
sudo apt update sudo mkdir --parents --mode=0755 /etc/apt/keyrings
apt-cache show libjpeg-turbo-official | grep Version wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" | sudo tee /etc/apt/sources.list.d/libjpeg-turbo.list
parameters: sudo apt update
aptPackages: ${{ parameters.aptPackages }} apt-cache show libjpeg-turbo-official | grep Version
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
displayName: 'Clone PyBind11' parameters:
inputs: checkoutRepo: ${{ parameters.checkoutRepo }}
targetType: inline - task: Bash@3
script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11 displayName: 'Clone PyBind11'
workingDirectory: '$(Build.SourcesDirectory)' inputs:
- task: Bash@3 targetType: inline
displayName: 'Clone RapidJSON' script: git clone --depth 1 -b v2.11.1 https://github.com/pybind/pybind11
inputs: workingDirectory: '$(Build.SourcesDirectory)'
targetType: inline - task: Bash@3
script: git clone --depth 1 https://github.com/Tencent/rapidjson.git displayName: 'Clone RapidJSON'
workingDirectory: '$(Build.SourcesDirectory)' inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml targetType: inline
parameters: script: git clone --depth 1 https://github.com/Tencent/rapidjson.git
componentName: PyBind11 workingDirectory: '$(Build.SourcesDirectory)'
cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmakeSourceDir: '$(Build.SourcesDirectory)/pybind11' parameters:
customInstallPath: false componentName: PyBind11
installEnabled: false cmakeBuildDir: '$(Build.SourcesDirectory)/pybind11/build'
extraBuildFlags: >- customInstallPath: false
-DDOWNLOAD_CATCH=ON installEnabled: false
-DDOWNLOAD_EIGEN=ON extraBuildFlags: >-
-GNinja -DDOWNLOAD_CATCH=ON
- task: Bash@3 -DDOWNLOAD_EIGEN=ON
displayName: 'Install PyBind11' -GNinja
inputs: - task: Bash@3
targetType: inline displayName: 'Install PyBind11'
script: sudo cmake --build . --target install inputs:
workingDirectory: '$(Build.SourcesDirectory)/pybind11/build' targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml script: sudo cmake --build . --target install
parameters: workingDirectory: '$(Build.SourcesDirectory)/pybind11/build'
componentName: RapidJSON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build' parameters:
cmakeSourceDir: '$(Build.SourcesDirectory)/rapidjson' componentName: RapidJSON
customInstallPath: false cmakeBuildDir: '$(Build.SourcesDirectory)/rapidjson/build'
installEnabled: false customInstallPath: false
extraBuildFlags: >- installEnabled: false
-GNinja extraBuildFlags: >-
- task: Bash@3 -GNinja
displayName: 'Install RapidJSON' - task: Bash@3
inputs: displayName: 'Install RapidJSON'
targetType: inline inputs:
script: sudo cmake --build . --target install targetType: inline
workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build' script: sudo cmake --build . --target install
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build'
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
extraBuildFlags: >- # manual build case: triggered by ROCm/ROCm repo
-DROCM_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo dependencySource: tag-builds
-DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-GNinja -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo
parameters: -DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH
gpuTarget: ${{ job.target }} -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml gpuTarget: $(JOB_GPU_TARGET)
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# registerJPEGPackages: true
# gpuTarget: ${{ job.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: $(JOB_TEST_POOL)
- template: /.azuredevops/variables-global.yml workspace:
- name: ROCM_PATH clean: all
value: $(Agent.BuildDirectory)/rocm strategy:
- name: CMAKE_INCLUDE_PATH matrix:
value: $(Agent.BuildDirectory)/rocm/include/rocal gfx942:
pool: JOB_GPU_TARGET: gfx942
name: ${{ job.target }}_test_pool JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
workspace: steps:
clean: all - task: Bash@3
steps: displayName: 'Register libjpeg-turbo packages'
- task: Bash@3 inputs:
displayName: 'Register libjpeg-turbo packages' targetType: inline
inputs: script: |
targetType: inline sudo mkdir --parents --mode=0755 /etc/apt/keyrings
script: | wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null
sudo mkdir --parents --mode=0755 /etc/apt/keyrings 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
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null sudo apt update
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 apt-cache show libjpeg-turbo-official | grep Version
sudo apt update - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
apt-cache show libjpeg-turbo-official | grep Version parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml aptPackages: ${{ parameters.aptPackages }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
gpuTarget: ${{ job.target }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
checkoutRef: ${{ parameters.checkoutRef }} dependencySource: tag-builds
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
- task: Bash@3 dependencyList: ${{ parameters.rocmTestDependencies }}
displayName: Link libjpeg-turbo gpuTarget: $(JOB_GPU_TARGET)
inputs: ${{ if eq(parameters.checkoutRef, '') }}:
targetType: inline dependencySource: staging
script: | ${{ elseif ne(parameters.checkoutRef, '') }}:
echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf dependencySource: tag-builds
sudo ldconfig -v - task: Bash@3
- task: Bash@3 displayName: Link libjpeg-turbo
displayName: Build rocAL tests inputs:
inputs: targetType: inline
targetType: inline script: |
script: | echo /opt/libjpeg-turbo/lib64 | sudo tee /etc/ld.so.conf.d/libjpeg-turbo.conf
mkdir rocAL-tests sudo ldconfig -v
cd rocAL-tests - task: Bash@3
cmake $(Agent.BuildDirectory)/rocm/share/rocal/test displayName: Build rocAL tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml targetType: inline
parameters: script: |
componentName: rocAL mkdir rocAL-tests
testDir: rocAL-tests cd rocAL-tests
- task: Bash@3 cmake $(Agent.BuildDirectory)/rocm/share/rocal/test
displayName: Clean up libjpeg-turbo - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
condition: always() - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
inputs: parameters:
targetType: inline componentName: rocAL
script: | testDir: rocAL-tests
sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf reloadAMDGPU: true
sudo ldconfig -v - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml displayName: Clean up libjpeg-turbo
parameters: inputs:
aptPackages: ${{ parameters.aptPackages }} targetType: inline
pipModules: ${{ parameters.pipModules }} script: |
registerJPEGPackages: true sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf
environment: test sudo ldconfig -v
gpuTarget: ${{ job.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:
@@ -20,7 +15,6 @@ parameters:
- git - git
- mpich - mpich
- ninja-build - ninja-build
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -51,110 +45,95 @@ 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: 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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_BUILD_TYPE=Release # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/ ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DBUILD_CLIENTS_BENCHMARKS=OFF extraBuildFlags: >-
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-GNinja -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/share/rocm/cmake/
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -DBUILD_CLIENTS_BENCHMARKS=OFF
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_SAMPLES=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# gpuTarget: ${{ job.target }}
# extraEnvVars:
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocALUTION_testing
- job: rocALUTION_test_${{ job.target }} dependsOn: rocALUTION
dependsOn: rocALUTION_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocALUTION ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './rocalution-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: rocALUTION
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocalution-test'
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -45,7 +40,6 @@ parameters:
- aomp-extras - aomp-extras
- hipBLAS-common - hipBLAS-common
- hipBLASLt - hipBLASLt
- roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -60,131 +54,110 @@ 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: rocBLAS
- job: rocBLAS_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: TENSILE_ROCM_ASSEMBLER_PATH
- name: TENSILE_ROCM_ASSEMBLER_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang - name: CMAKE_CXX_COMPILER
- name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH value: $(Agent.BuildDirectory)/rocm/bin/hipcc
value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler - name: TENSILE_ROCM_OFFLOAD_BUNDLER_PATH
- name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm/llvm/bin/clang-offload-bundler
value: $(Agent.BuildDirectory)/rocm pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.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-aocl.yml
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake dependencySource: staging
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_BUILD_TYPE=Release ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang++ dependencySource: tag-builds
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/amdclang - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DGPU_TARGETS=${{ job.target }} parameters:
-DTensile_CODE_OBJECT_VERSION=default extraBuildFlags: >-
-DTensile_LOGIC=asm_full -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake
-DTensile_SEPARATE_ARCHITECTURES=ON -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
-DTensile_LAZY_LIBRARY_LOADING=ON -DCMAKE_BUILD_TYPE=Release
-DTensile_LIBRARY_FORMAT=msgpack -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DBUILD_CLIENTS_BENCHMARKS=OFF -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
-DBUILD_CLIENTS_SAMPLES=OFF -DTensile_CODE_OBJECT_VERSION=default
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DTensile_LOGIC=asm_full
-GNinja -DTensile_SEPARATE_ARCHITECTURES=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DTensile_LAZY_LIBRARY_LOADING=ON
parameters: -DTensile_LIBRARY_FORMAT=msgpack
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_BENCHMARKS=OFF
parameters: -DBUILD_CLIENTS_SAMPLES=OFF
gpuTarget: ${{ job.target }} -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
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
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocBLAS_testing
- job: rocBLAS_test_${{ job.target }} dependsOn: rocBLAS
dependsOn: rocBLAS_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocBLAS ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './rocblas-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: rocBLAS
environment: test testDir: '$(Agent.BuildDirectory)/rocm/bin'
gpuTarget: ${{ job.target }} testExecutable: './rocblas-test'
testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes'

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:
@@ -25,7 +20,6 @@ parameters:
- libva-amdgpu-dev - libva-amdgpu-dev
- mesa-amdgpu-va-drivers - mesa-amdgpu-va-drivers
- libdrm-dev - libdrm-dev
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -45,100 +39,99 @@ parameters:
- rocprofiler-register - rocprofiler-register
- ROCR-Runtime - ROCR-Runtime
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocDecode_build - job: rocDecode
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool: pool:
vmImage: ${{ variables.BASE_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace: workspace:
clean: all clean: all
steps: steps:
# Since mesa-amdgpu-multimedia-devel is not directly available from apt, register it
- task: Bash@3
displayName: 'Register ROCm packages'
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/${{ variables.KEYRING_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/${{ variables.KEYRING_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
- 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 }}
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-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
# CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocDecode_testing
- job: rocDecode_test_${{ job.target }} dependsOn: rocDecode
dependsOn: rocDecode_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:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
pool: steps:
name: ${{ job.target }}_test_pool - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all 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/local-artifact-download.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
registerROCmPackages: true ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }}
dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: staging
displayName: Build rocDecode tests ${{ elseif ne(parameters.checkoutRef, '') }}:
inputs: dependencySource: tag-builds
targetType: inline # anything in /opt may be persistent across runs
script: | # so we need to remove the symlink if it already exists
mkdir rocDecode-tests - script: |
cd rocDecode-tests sudo rm -rf /opt/rocm
cmake $(Agent.BuildDirectory)/rocm/share/rocdecode/test sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml mkdir rocDecode-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml cd rocDecode-tests
parameters: cmake /opt/rocm/share/rocdecode/test
componentName: rocDecode - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testDir: 'rocDecode-tests' - 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 - script: sudo rm /opt/rocm
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:
@@ -46,111 +41,96 @@ 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: rocFFT
- job: rocFFT_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME
- name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm
value: $(Build.BinariesDirectory)/rocm pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_BUILD_TYPE=Release dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DUSE_HIP_CLANG=ON parameters:
-DHIP_COMPILER=clang extraBuildFlags: >-
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DBUILD_CLIENTS_BENCHMARKS=OFF -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DUSE_HIP_CLANG=ON
gpuTarget: ${{ job.target }} -DHIP_COMPILER=clang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_TESTS=ON
parameters: -DBUILD_CLIENTS_BENCHMARKS=OFF
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_SAMPLES=OFF
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }}
extraEnvVars:
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocFFT_testing
- job: rocFFT_test_${{ job.target }} dependsOn: rocFFT
dependsOn: rocFFT_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocFFT ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './rocfft-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--test_prob 0.004 --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: rocFFT
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocfft-test'
testParameters: '--test_prob 0.004 --gtest_output=xml:./test_output.xml --gtest_color=yes'

View File

@@ -1,152 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
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
type: object
default:
- cmake
- libdrm-dev
- libstdc++-12-dev
- libva-amdgpu-dev
- mesa-amdgpu-va-drivers
- ninja-build
- pkg-config
- python3-pip
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- rocm-core
- rocprofiler-register
- ROCR-Runtime
- name: rocmTestDependencies
type: object
default:
- clr
- llvm-project
- rocminfo
- rocprofiler-register
- ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: rocJPEG_build_${{ job.target }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: rocJPEG_test_${{ job.target }}
dependsOn: rocJPEG_build_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
eq(${{ parameters.aggregatePipeline }}, False)
)
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool:
name: ${{ job.target }}_test_pool
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }}
- task: Bash@3
displayName: Build rocJPEG tests
inputs:
targetType: inline
script: |
mkdir rocJPEG-tests
cd rocJPEG-tests
cmake $(Agent.BuildDirectory)/rocm/share/rocjpeg/test
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocJPEG
testDir: 'rocJPEG-tests'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}
registerROCmPackages: true

View File

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

View File

@@ -5,17 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
- name: sparseCheckout
type: boolean
default: false
- name: sparseCheckoutDir
type: string
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:
@@ -41,102 +30,87 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- 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: rocPRIM
- job: rocPRIM_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
sparseCheckout: ${{ parameters.sparseCheckout }} - 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 }} dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
extraBuildFlags: >- # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DBUILD_BENCHMARK=ON dependencySource: tag-builds
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-DBUILD_TEST=ON extraBuildFlags: >-
-GNinja -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DBUILD_BENCHMARK=ON
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_TEST=ON
parameters: -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocPRIM_testing
- job: rocPRIM_test_${{ job.target }} dependsOn: rocPRIM
dependsOn: rocPRIM_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocPRIM ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocPRIM
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim'

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,224 +22,169 @@ parameters:
- name: pipModules - name: pipModules
type: object type: object
default: default:
- hip-python --extra-index-url https://test.pypi.org/simple
- numpy
- pybind11 - pybind11
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- clr
- llvm-project
- rocDecode
- rocm-cmake - rocm-cmake
- rocm-core - llvm-project
- rocminfo
- ROCR-Runtime - ROCR-Runtime
- clr
- rocminfo
- rocm-core
- rocprofiler-register - rocprofiler-register
- rocDecode
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}: - job: rocPyDecode
- job: rocPyDecode_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 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 - task: Bash@3
parameters: displayName: 'pip install hip-python'
checkoutRepo: ${{ parameters.checkoutRepo }} inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml targetType: inline
parameters: script: pip install -i https://test.pypi.org/simple hip-python
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 }}
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
displayName: 'Save Python Package Paths' parameters:
inputs: dependencyList: ${{ parameters.rocmDependencies }}
targetType: inline gpuTarget: $(JOB_GPU_TARGET)
script: | # CI case: download latest default branch build
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" ${{ if eq(parameters.checkoutRef, '') }}:
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" dependencySource: staging
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" # manual build case: triggered by ROCm/ROCm repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
installEnabled: false - task: Bash@3
extraBuildFlags: >- displayName: 'ROCm symbolic link'
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) inputs:
-DCMAKE_BUILD_TYPE=Release targetType: inline
-DGPU_TARGETS=${{ job.target }} script: |
-DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory) sudo rm -rf /opt/rocm
-GNinja sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
- task: Bash@3 - task: Bash@3
displayName: 'rocPyDecode install' displayName: 'Set User Site Packages Path'
inputs: inputs:
targetType: inline targetType: inline
script: | script: echo "##vso[task.setvariable variable=USER_SITE;]$(python -m site --user-site)"
sudo cmake --build . --target install - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
sudo chown -R $(whoami):$(id -gn) $(Build.BinariesDirectory) parameters:
workingDirectory: $(Build.SourcesDirectory)/build extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(USER_SITE)/pybind11
gpuTarget: ${{ job.target }} -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory)
gpuTarget: ${{ job.target }} -GNinja
publish: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- task: Bash@3 parameters:
displayName: Create wheel file gpuTarget: $(JOB_GPU_TARGET)
inputs: publish: false
targetType: inline - task: Bash@3
script: | displayName: Create wheel file
export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip inputs:
sudo python3 setup.py bdist_wheel targetType: inline
sudo chown -R $(whoami):$(id -gn) $(find . -name "*.whl") script: |
workingDirectory: $(Build.SourcesDirectory) export ROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml export HIP_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include/hip
parameters: python3 setup.py bdist_wheel
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)
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 }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocPyDecode_testing
- job: rocPyDecode_test_${{ job.target }} dependsOn: rocPyDecode
dependsOn: rocPyDecode_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(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: steps:
name: ${{ job.target }}_test_pool - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
workspace: parameters:
clean: all aptPackages: ${{ parameters.aptPackages }}
steps: pipModules: ${{ parameters.pipModules }}
- task: Bash@3 - task: Bash@3
displayName: Ensure pybind11-dev is not installed displayName: 'pip install hip-python'
inputs: inputs:
targetType: inline targetType: inline
script: | script: pip install -i https://test.pypi.org/simple hip-python
if dpkg -l | grep -q pybind11-dev; then - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
echo "Removing pybind11-dev..." - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
sudo apt remove -y pybind11-dev parameters:
else gpuTarget: $(JOB_GPU_TARGET)
echo "pybind11-dev is not installed." - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
fi parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
aptPackages: ${{ parameters.aptPackages }} ${{ elseif ne(parameters.checkoutRef, '') }}:
pipModules: ${{ parameters.pipModules }} dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- task: DownloadPipelineArtifact@2 parameters:
displayName: 'Download Pipeline Wheel Files' dependencyList: ${{ parameters.rocmDependencies }}
inputs: gpuTarget: $(JOB_GPU_TARGET)
itemPattern: '**/*.whl' ${{ if eq(parameters.checkoutRef, '') }}:
targetPath: $(Agent.BuildDirectory) dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
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: - task: Bash@3
checkoutRef: ${{ parameters.checkoutRef }} displayName: Setup test environment
dependencyList: ${{ parameters.rocmDependencies }} inputs:
gpuTarget: ${{ job.target }} targetType: inline
setupHIPLibrarySymlinks: true script: |
- task: Bash@3 sudo rm -rf /opt/rocm
displayName: pip install sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
inputs: echo "##vso[task.setvariable variable=USER_SITE;]$(python3 -m site --user-site)"
targetType: inline cd $(Build.SourcesDirectory)
script: | sudo pip install .
pip uninstall -y rocPyDecode cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(USER_SITE)/pybind11 -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) .
find -name *.whl -exec pip install {} \; - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
workingDirectory: $(Agent.BuildDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- task: Bash@3 parameters:
displayName: Setup search paths componentName: rocPyDecode
inputs: testDir: $(Build.SourcesDirectory)
targetType: inline # sudo required for pip install but screws up permissions for next pipeline run
script: | - task: Bash@3
echo "##vso[task.setvariable variable=PYTHON_USER_SITE;]$(python3 -m site --user-site)" displayName: Clean up test environment
echo "##vso[task.setvariable variable=PYTHON_DIST_PACKAGES;]$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" condition: always()
echo "##vso[task.setvariable variable=PYBIND11_PATH;]$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" inputs:
- task: CMake@1 targetType: inline
displayName: 'rocPyDecode Test CMake Flags' script: |
inputs: sudo pip uninstall -y rocPyDecode
cmakeArgs: >- sudo rm -rf $(Build.SourcesDirectory)/*
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH)
-DCMAKE_BUILD_TYPE=Release
-DGPU_TARGETS=${{ job.target }}
..
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocPyDecode
testDir: $(Build.SourcesDirectory)/build
# sudo required for pip install but screws up permissions for next pipeline run
- task: Bash@3
displayName: Clean up test environment
condition: always()
inputs:
targetType: inline
script: |
pip uninstall -y rocPyDecode
pip uninstall -y hip-python
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}
pythonEnvVars: true
# note that this docker won't have hip-python installed via pip

View File

@@ -5,20 +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:
- cmake - cmake
- git - ninja-build
- googletest - googletest
- libgtest-dev - libgtest-dev
- ninja-build - git
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -36,104 +30,89 @@ 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: rocRAND
- job: rocRAND_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: 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 }} 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm dependencySource: staging
-DBUILD_TEST=ON # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ ${{ elseif ne(parameters.checkoutRef, '') }}:
-DAMDGPU_TARGETS=${{ job.target }} dependencySource: tag-builds
-GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters:
parameters: extraBuildFlags: >-
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_TEST=ON
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -GNinja
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
# parameters: parameters:
# aptPackages: ${{ parameters.aptPackages }} gpuTarget: $(JOB_GPU_TARGET)
# gpuTarget: ${{ job.target }}
# extraEnvVars:
# - HIP_ROCCLR_HOME:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocRAND_testing
- job: rocRAND_test_${{ job.target }} dependsOn: rocRAND
dependsOn: rocRAND_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocRAND ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocRAND
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND'

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,125 +46,109 @@ 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: rocSOLVER
- job: rocSOLVER_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
displayName: 'Clone lapack' parameters:
inputs: checkoutRepo: ${{ parameters.checkoutRepo }}
targetType: inline - task: Bash@3
script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack displayName: 'Clone lapack'
workingDirectory: '$(Build.SourcesDirectory)' inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml targetType: inline
parameters: script: git clone --depth 1 --branch v3.9.1 https://github.com/Reference-LAPACK/lapack
checkoutRef: ${{ parameters.checkoutRef }} workingDirectory: '$(Build.SourcesDirectory)'
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
componentName: lapack ${{ if eq(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: staging
-DCMAKE_BUILD_TYPE=Release # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls ${{ elseif ne(parameters.checkoutRef, '') }}:
-DBUILD_TESTING=OFF dependencySource: tag-builds
-DCBLAS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DLAPACKE=OFF parameters:
-GNinja componentName: lapack
cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build' extraBuildFlags: >-
cmakeSourceDir: '$(Build.SourcesDirectory)/lapack' -DCMAKE_BUILD_TYPE=Release
installDir: '$(Pipeline.Workspace)/deps-install' -DCMAKE_Fortran_FLAGS=-fno-optimize-sibling-calls
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml -DBUILD_TESTING=OFF
parameters: -DCBLAS=ON
extraBuildFlags: >- -DLAPACKE=OFF
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install -GNinja
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ cmakeBuildDir: '$(Build.SourcesDirectory)/lapack/build'
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang installDir: '$(Pipeline.Workspace)/deps-install'
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_CLIENTS_TESTS=ON parameters:
-DBUILD_CLIENTS_BENCHMARKS=OFF extraBuildFlags: >-
-DBUILD_CLIENTS_SAMPLES=OFF -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install
-GNinja -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_BENCHMARKS=OFF
parameters: -DBUILD_CLIENTS_SAMPLES=OFF
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
gpuTarget: ${{ job.target }}
extraCopyDirectories:
- deps-install
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocSOLVER_testing
- job: rocSOLVER_test_${{ job.target }} dependsOn: rocSOLVER
dependsOn: rocSOLVER_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocSOLVER ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin' dependencySource: staging
testExecutable: './rocsolver-test' ${{ elseif ne(parameters.checkoutRef, '') }}:
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes' dependencySource: tag-builds
- 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: rocSOLVER
gpuTarget: ${{ job.target }} testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocsolver-test'
testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes'

View File

@@ -5,11 +5,6 @@ parameters:
- name: checkoutRef - name: checkoutRef
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack
# and dependencies are pulled from same pipeline
- name: aggregatePipeline
type: boolean
default: false
- name: aptPackages - name: aptPackages
type: object type: object
default: default:
@@ -34,7 +29,6 @@ parameters:
- rocminfo - rocminfo
- rocPRIM - rocPRIM
- rocprofiler-register - rocprofiler-register
- roctracer
- name: rocmTestDependencies - name: rocmTestDependencies
type: object type: object
default: default:
@@ -48,123 +42,108 @@ 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: rocSPARSE
- job: rocSPARSE_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME
- name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm
value: $(Build.BinariesDirectory)/rocm pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc dependencySource: staging
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DROCM_PATH=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DAMDGPU_TARGETS=${{ job.target }} parameters:
-DBUILD_CLIENTS_SAMPLES=OFF extraBuildFlags: >-
-DBUILD_CLIENTS_TESTS=ON -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DBUILD_CLIENTS_BENCHMARKS=OFF -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DROCM_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
artifactName: rocSPARSE -DBUILD_CLIENTS_SAMPLES=OFF
gpuTarget: ${{ job.target }} -DBUILD_CLIENTS_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DBUILD_CLIENTS_BENCHMARKS=OFF
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip;$(Agent.BuildDirectory)/rocm/hip/cmake
artifactName: rocSPARSE -GNinja
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
publish: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml artifactName: rocSPARSE
parameters: gpuTarget: $(JOB_GPU_TARGET)
sourceDir: $(Build.SourcesDirectory)/build/clients publish: false
contentsString: matrices/** - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: sourceDir: $(Build.SourcesDirectory)/build/clients
artifactName: testMatrices contentsString: matrices/**
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml artifactName: testMatrices
parameters: gpuTarget: $(JOB_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }} - job: rocSPARSE_testing
extraEnvVars: timeoutInMinutes: 90
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm dependsOn: rocSPARSE
condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: $(JOB_TEST_POOL)
workspace:
clean: all
strategy:
matrix:
gfx942:
JOB_GPU_TARGET: gfx942
JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
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/local-artifact-download.yml
parameters:
gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters:
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: $(JOB_GPU_TARGET)
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocSPARSE
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocsparse-test'
testParameters: '--gtest_filter="*quick*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: rocSPARSE_test_${{ job.target }}
timeoutInMinutes: 90
dependsOn: rocSPARSE_build_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmTestDependencies }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocSPARSE
testDir: '$(Agent.BuildDirectory)/rocm/bin'
testExecutable: './rocsparse-test'
testParameters: '--gtest_filter="*quick*" --gtest_output=xml:./test_output.xml --gtest_color=yes'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
environment: test
gpuTarget: ${{ job.target }}

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,100 +35,87 @@ parameters:
- hipRAND - hipRAND
- rocprofiler-register - rocprofiler-register
- 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: rocThrust
- job: rocThrust_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-GNinja dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ # manual build case: triggered by ROCm/ROCm repo
-DROCM_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DBUILD_TEST=ON parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml extraBuildFlags: >-
parameters: -GNinja
gpuTarget: ${{ job.target }} -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -DBUILD_TEST=ON
- 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 }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocThrust_testing
- job: rocThrust_test_${{ job.target }} dependsOn: rocThrust
dependsOn: rocThrust_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocThrust ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocThrust
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust'

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:
@@ -17,7 +12,6 @@ parameters:
- cmake - cmake
- ninja-build - ninja-build
- libboost-program-options-dev - libboost-program-options-dev
- libdrm-dev
- libgtest-dev - libgtest-dev
- googletest - googletest
- libfftw3-dev - libfftw3-dev
@@ -50,105 +44,90 @@ 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: rocWMMA_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.HIGH_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} checkoutRepo: ${{ parameters.checkoutRepo }}
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_BUILD_TYPE=Release ${{ elseif ne(parameters.checkoutRef, '') }}:
-DROCWMMA_BUILD_TESTS=ON dependencySource: tag-builds
-DROCWMMA_BUILD_SAMPLES=OFF - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DGPU_TARGETS=${{ job.target }} parameters:
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON extraBuildFlags: >-
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
# gfx1030 not supported in documentation -DCMAKE_BUILD_TYPE=Release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DROCWMMA_BUILD_TESTS=ON
parameters: -DROCWMMA_BUILD_SAMPLES=OFF
gpuTarget: ${{ job.target }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -GNinja
parameters: # gfx1030 not supported in documentation
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml gpuTarget: $(JOB_GPU_TARGET)
parameters:
aptPackages: ${{ parameters.aptPackages }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocWMMA_testing
- job: rocWMMA_test_${{ job.target }} timeoutInMinutes: 90
timeoutInMinutes: 270 dependsOn: rocWMMA
dependsOn: rocWMMA_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
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 dependencyList: ${{ parameters.rocmTestDependencies }}
parameters: gpuTarget: $(JOB_GPU_TARGET)
componentName: rocWMMA ${{ if eq(parameters.checkoutRef, '') }}:
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma' dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocWMMA
testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma'

View File

@@ -5,26 +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:
- doxygen - doxygen
- doxygen-doc - doxygen-doc
- ninja-build - ninja-build
- python3-pip
- python3-sphinx - python3-sphinx
- name: pipModules - name: pipModules
type: object type: object
default: default:
- cget - cget
- cmake==3.20.5
- ninja - ninja
- rocm-docs-core
jobs: jobs:
- job: rocm_cmake - job: rocm_cmake
@@ -40,34 +32,19 @@ jobs:
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
- task: Bash@3
displayName: Add CMake to PATH
inputs:
targetType: inline
script: echo "##vso[task.prependpath]$(python3 -m site --user-base)/bin"
- 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/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- task: Bash@3 # extra steps for ctest suite
displayName: CTest setup - script: |
inputs: python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt
targetType: inline python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt
script: | git config --global user.email "you@example.com"
python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt git config --global user.name "Your Name"
python -m pip install -r $(Build.SourcesDirectory)/test/docsphinx/docs/.sphinx/requirements.txt displayName: "ctest setup"
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
componentName: rocm-cmake componentName: rocm-cmake
testParameters: '-E "pass-version-parent" --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# environment: combined

View File

@@ -5,17 +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
type: object
default:
- cmake
- ninja-build
- python3-pip
jobs: jobs:
- job: rocm_core - job: rocm_core
@@ -27,9 +16,6 @@ jobs:
workspace: workspace:
clean: all clean: all
steps: 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/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
@@ -43,11 +29,5 @@ jobs:
-DCPACK_GENERATOR=DEB -DCPACK_GENERATOR=DEB
-DCPACK_DEBIAN_PACKAGE_RELEASE="local.9999~99.99" -DCPACK_DEBIAN_PACKAGE_RELEASE="local.9999~99.99"
-DCPACK_RPM_PACKAGE_RELEASE="local.9999" -DCPACK_RPM_PACKAGE_RELEASE="local.9999"
-DROCM_VERSION="$(NEXT_RELEASE_VERSION)" -DROCM_VERSION="$(next-release)"
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

View File

@@ -5,18 +5,11 @@ 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
- libglfw3-dev - libglfw3-dev
- libtbb-dev
- ninja-build
- python3-pip - python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
@@ -69,123 +62,108 @@ parameters:
- rocThrust - rocThrust
- 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: rocm_examples
- job: rocm_examples_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
- 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 }} dependencyList: ${{ parameters.rocmDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml gpuTarget: $(JOB_GPU_TARGET)
parameters: # CI case: download latest default branch build
# https://github.com/ROCm/HIP/issues/2203 ${{ if eq(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: staging
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} parameters:
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc # https://github.com/ROCm/HIP/issues/2203
-GNinja extraBuildFlags: >-
- task: Bash@3 -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
displayName: Move rocm-examples binaries to rocm/examples -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
inputs: -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
targetType: inline -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
script: | -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
mkdir -p $(Build.BinariesDirectory)/examples -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples - task: Bash@3
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml displayName: Move rocm-examples binaries to rocm/examples
parameters: inputs:
gpuTarget: ${{ job.target }} targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml script: |
parameters: mkdir -p $(Build.BinariesDirectory)/examples
gpuTarget: ${{ job.target }} mv $(Build.BinariesDirectory)/bin/* $(Build.BinariesDirectory)/examples
- 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 }}
gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocm_examples_testing
- job: rocm_examples_test_${{ job.target }} dependsOn: rocm_examples
dependsOn: rocm_examples_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: TEST_LOG_FILE
eq(${{ parameters.aggregatePipeline }}, False) value: $(Pipeline.Workspace)/rocm-examplesTestLog.log
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: TEST_LOG_FILE matrix:
value: $(Pipeline.Workspace)/rocm-examplesTestLog.log gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- 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 parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
# https://github.com/ROCm/HIP/issues/2203 gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ dependencySource: staging
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DROCM_ROOT=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DAMDGPU_TARGETS=${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }} parameters:
-DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc # https://github.com/ROCm/HIP/issues/2203
-GNinja extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DROCM_ROOT=$(Agent.BuildDirectory)/rocm
componentName: rocm-examples -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
testDir: $(Build.SourcesDirectory)/build -DCMAKE_HIP_ARCHITECTURES=$(JOB_GPU_TARGET)
testParameters: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex "rocfft_callback"' -DCMAKE_EXE_LINKER_FLAGS=-fgpu-rdc
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
environment: test componentName: rocm-examples
gpuTarget: ${{ job.target }} testDir: $(Build.SourcesDirectory)/build
reloadAMDGPU: true

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
@@ -70,9 +55,13 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -80,55 +69,42 @@ jobs:
-DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules -DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/include;$(Agent.BuildDirectory)/rocm/include/hsa -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/rocm/include;$(Agent.BuildDirectory)/rocm/include/hsa
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# extraEnvVars:
# - ROCR_INC_DIR:::/home/user/workspace/rocm
# - ROCR_LIB_DIR:::/home/user/workspace/rocm
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocm_bandwidth_test_testing
- job: rocm_bandwidth_test_test_${{ job.target }} dependsOn: rocm_bandwidth_test
dependsOn: rocm_bandwidth_test_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmTestDependencies }} ${{ if eq(parameters.checkoutRef, '') }}:
gpuTarget: ${{ job.target }} dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml dependencySource: tag-builds
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 }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,31 +5,9 @@ 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
type: object
default:
- cmake
- libdrm-dev
- ninja-build
- pkg-config
- python3-pip
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocm_smi_lib_build - job: rocm_smi_lib
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -38,9 +16,6 @@ jobs:
workspace: workspace:
clean: all clean: all
steps: 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/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
@@ -50,46 +25,31 @@ jobs:
extraBuildFlags: >- extraBuildFlags: >-
-DBUILD_TESTS=ON -DBUILD_TESTS=ON
-DROCM_DEP_ROCMCORE=ON -DROCM_DEP_ROCMCORE=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocm_smi_lib_testing
- job: rocm_smi_lib_test_${{ job.target }} dependsOn: rocm_smi_lib
dependsOn: rocm_smi_lib_build condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml runRocminfo: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters:
parameters: componentName: rocm_smi_lib
runRocminfo: false testDir: '$(Agent.BuildDirectory)'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml testExecutable: './rocm/share/rocm_smi/rsmitst_tests/rsmitst'
parameters: testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
componentName: rocm_smi_lib
testDir: '$(Agent.BuildDirectory)'
testExecutable: './rocm/share/rocm_smi/rsmitst_tests/rsmitst'
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 }}

View File

@@ -5,19 +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
type: object
default:
- cmake
- libdrm-amdgpu-dev
- libdrm-dev
- ninja-build
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -29,15 +16,6 @@ parameters:
- ROCR-Runtime - ROCR-Runtime
- rocprofiler-register - rocprofiler-register
- name: jobMatrix
type: object
default:
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
jobs: jobs:
- job: rocminfo - job: rocminfo
variables: variables:
@@ -48,77 +26,66 @@ jobs:
workspace: workspace:
clean: all clean: all
steps: steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
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/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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
skipLlvmSymlink: true skipLlvmSymlink: true
# CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- 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
-DROCRTST_BLD_TYPE=release -DROCRTST_BLD_TYPE=release
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocminfo_testing
- job: rocminfo_test_${{ job.target }} dependsOn: rocminfo
dependsOn: rocminfo condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
registerROCmPackages: true dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml dependencySource: staging
parameters: ${{ elseif ne(parameters.checkoutRef, '') }}:
checkoutRef: ${{ parameters.checkoutRef }} dependencySource: tag-builds
dependencyList: ${{ parameters.rocmTestDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
gpuTarget: ${{ job.target }} 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: rocminfo
parameters: testDir: '$(Agent.BuildDirectory)'
componentName: rocminfo testExecutable: './rocm/bin/rocminfo'
testDir: '$(Agent.BuildDirectory)' testParameters: ''
testExecutable: './rocm/bin/rocminfo' testPublishResults: false
testParameters: '' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testPublishResults: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml componentName: rocm_agent_enumerator
parameters: testDir: '$(Agent.BuildDirectory)'
componentName: rocm_agent_enumerator testExecutable: './rocm/bin/rocm_agent_enumerator'
testDir: '$(Agent.BuildDirectory)' testParameters: ''
testExecutable: './rocm/bin/rocm_agent_enumerator' testPublishResults: false
testParameters: ''
testPublishResults: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
registerROCmPackages: true
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -1,220 +0,0 @@
parameters:
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
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
type: object
default:
- cmake
- libdw-dev
- libtbb-dev
- locales
- ninja-build
- python3-pip
- name: pipModules
type: object
default:
- astunparse==1.6.2
- colorlover
- "dash>=1.12.0"
- matplotlib
- "numpy>=1.17.5"
- "pandas>=1.4.3"
- pymongo
- pyyaml
- tabulate
- tqdm
- dash-svg
- dash-bootstrap-components
- kaleido
- setuptools
- plotille
- mock
- pytest
- pytest-cov
- pytest-xdist
- name: rocmDependencies
type: object
default:
- amdsmi
- clr
- llvm-project
- rocm-cmake
- rocm-core
- rocminfo
- rocm_smi_lib
- ROCR-Runtime
- rocprofiler
- rocprofiler-sdk
- rocprofiler-register
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- gfx942-staging:
name: gfx942_staging
target: gfx942
dependencySource: staging
- gfx942-mainline:
name: gfx942_mainline
target: gfx942
dependencySource: mainline
- gfx90a-staging:
name: gfx90a_staging
target: gfx90a
dependencySource: staging
- gfx90a-mainline:
name: gfx90a_mainline
target: gfx90a
dependencySource: mainline
testJobs:
- gfx942-staging:
name: gfx942_staging
target: gfx942
dependencySource: staging
- gfx942-mainline:
name: gfx942_mainline
target: gfx942
dependencySource: mainline
- gfx90a-staging:
name: gfx90a_staging
target: gfx90a
dependencySource: staging
- gfx90a-mainline:
name: gfx90a_mainline
target: gfx90a
dependencySource: mainline
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: rocprofiler_compute_build_${{ job.name }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: ${{ job.dependencySource }}
gpuTarget: ${{ job.target }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
artifactName: ${{ job.dependencySource }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
artifactName: ${{ job.dependencySource }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: rocprofiler_compute_test_${{ job.name }}
timeoutInMinutes: 120
dependsOn: rocprofiler_compute_build_${{ job.name }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
eq(${{ parameters.aggregatePipeline }}, False)
)
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: PYTHON_VERSION
value: 3.10
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 }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- task: Bash@3
displayName: Add en_US.UTF-8 locale
inputs:
targetType: inline
script: |
sudo locale-gen en_US.UTF-8
sudo update-locale
locale -a
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
postTargetFilter: ${{ job.dependencySource }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: ${{ job.dependencySource }}
gpuTarget: ${{ job.target }}
- 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:
extraBuildFlags: >-
-DCMAKE_HIP_ARCHITECTURES=${{ job.target }}
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_BUILD_TYPE=Release
-DENABLE_TESTS=ON
-DINSTALL_TESTS=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocprofiler-compute
testDir: $(Build.BinariesDirectory)/libexec/rocprofiler-compute
testExecutable: ROCM_PATH=$(Agent.BuildDirectory)/rocm ctest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
gpuTarget: ${{ job.target }}

View File

@@ -5,17 +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
type: object
default:
- cmake
- ninja-build
- python3-pip
jobs: jobs:
- job: rocprofiler_register - job: rocprofiler_register
@@ -27,9 +16,6 @@ jobs:
workspace: workspace:
clean: all clean: all
steps: 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/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters: parameters:
@@ -37,18 +23,15 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
componentName: rocprofiler-register componentName: rocprofiler-register
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
componentName: rocprofiler-register-tests
extraBuildFlags: >- extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory) -DCMAKE_PREFIX_PATH=$(Build.BinariesDirectory)
-DROCPROFILER_REGISTER_BUILD_TESTS=ON cmakeBuildDir: 'tests/build'
-DROCPROFILER_REGISTER_BUILD_SAMPLES=ON installEnabled: false
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters: parameters:
componentName: rocprofiler-register componentName: rocprofiler-register
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml testDir: 'tests/build'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# environment: combined

View File

@@ -5,23 +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:
- build-essential - cmake
- libdrm-amdgpu-dev - python3-pip
- libdrm-dev - libdrm-dev
- libdw-dev - libdw-dev
- libelf-dev - libelf-dev
- libva-dev
- ninja-build
- pkg-config
- python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -36,17 +27,14 @@ parameters:
- pandas - pandas
- perfetto - perfetto
- pycobertura - pycobertura
- "pytest>=6.2.5" - pytest
- pyyaml - pyyaml
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- aomp
- clr - clr
- llvm-project - llvm-project
- rccl - rccl
- rocDecode
- rocJPEG
- rocm-cmake - rocm-cmake
- rocm-core - rocm-core
- rocminfo - rocminfo
@@ -54,133 +42,52 @@ 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: rocprofilersdk
- job: rocprofiler_sdk_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 }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
registerROCmPackages: true 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 }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} ${{ if eq(parameters.checkoutRef, '') }}:
gpuTarget: ${{ job.target }} dependencySource: staging
aggregatePipeline: ${{ parameters.aggregatePipeline }} ${{ elseif ne(parameters.checkoutRef, '') }}:
- task: Bash@3 dependencySource: tag-builds
displayName: Add Python site-packages binaries to path - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
inputs: parameters:
targetType: inline dependencyList: ${{ parameters.rocmDependencies }}
script: | gpuTarget: $(JOB_GPU_TARGET)
USER_BASE=$(python3 -m site --user-base) # CI case: download latest default branch build
echo "##vso[task.prependpath]$USER_BASE/bin" ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml dependencySource: staging
parameters: # manual build case: triggered by ROCm/ROCm repo
extraBuildFlags: >- ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
-DROCPROFILER_BUILD_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DROCPROFILER_BUILD_SAMPLES=ON parameters:
-DROCPROFILER_BUILD_RELEASE=ON extraBuildFlags: >-
-DGPU_TARGETS=${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -DROCPROFILER_BUILD_TESTS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DROCPROFILER_BUILD_SAMPLES=OFF
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} multithreadFlag: -- -j2
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters: parameters:
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: rocprofiler_sdk_test_${{ job.target }}
dependsOn: rocprofiler_sdk_build_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])),
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 }}
registerROCmPackages: true
- 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
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
- task: Bash@3
displayName: Add Python and ROCm binaries to path
inputs:
targetType: inline
script: |
USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.prependpath]$USER_BASE/bin"
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCPROFILER_BUILD_TESTS=ON
-DROCPROFILER_BUILD_SAMPLES=ON
-DROCPROFILER_BUILD_RELEASE=ON
-DGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH}}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocprofiler-sdk
- 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,11 +6,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:
@@ -21,16 +16,9 @@ parameters:
- bzip2 - bzip2
- clang - clang
- cmake - cmake
- chrpath
- environment-modules - environment-modules
- ffmpeg
- g++-12 - g++-12
- libavcodec-dev
- libavformat-dev
- libavutil-dev
- libdrm-amdgpu-dev
- libdrm-dev - libdrm-dev
- libdw-dev
- libfabric-dev - libfabric-dev
- libiberty-dev - libiberty-dev
- libpapi-dev - libpapi-dev
@@ -38,11 +26,9 @@ parameters:
- libtool - libtool
- libopenmpi-dev - libopenmpi-dev
- m4 - m4
- ninja-build
- openmpi-bin - openmpi-bin
- pkg-config
- python3-pip
- software-properties-common - software-properties-common
- python3-pip
- texinfo - texinfo
- zlib1g-dev - zlib1g-dev
- name: pipModules - name: pipModules
@@ -54,181 +40,100 @@ parameters:
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
- amdsmi
- aomp
- clr - clr
- llvm-project - llvm-project
- rccl - rccl
- rocDecode
- rocJPEG
- rocm-core - rocm-core
- rocminfo
- rocm_smi_lib - rocm_smi_lib
- rocprofiler-register - rocminfo
- rocprofiler-sdk
- ROCR-Runtime - ROCR-Runtime
- rocprofiler
- 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_systems
- job: rocprofiler_systems_build_${{ job.target }} variables:
variables: - group: common
- group: common - template: /.azuredevops/variables-global.yml
- template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }}
- name: ROCM_PATH workspace:
value: $(Agent.BuildDirectory)/rocm clean: all
pool: ${{ variables.MEDIUM_BUILD_POOL }} strategy:
workspace: matrix:
clean: all gfx942:
steps: JOB_GPU_TARGET: gfx942
- 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 - 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-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: dependencyList: ${{ parameters.rocmDependencies }}
checkoutRef: ${{ parameters.checkoutRef }} gpuTarget: $(JOB_GPU_TARGET)
dependencyList: ${{ parameters.rocmDependencies }} # CI case: download latest default branch build
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencySource: staging
- task: Bash@3 # manual build case: triggered by ROCm/ROCm repo
displayName: Add ROCm binaries to PATH ${{ elseif ne(parameters.checkoutRef, '') }}:
inputs: dependencySource: tag-builds
targetType: inline - task: Bash@3
script: | displayName: ROCm symbolic link
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" inputs:
echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" targetType: inline
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml script: |
parameters: sudo rm -rf /opt/rocm
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
extraBuildFlags: >- - task: Bash@3
-DROCPROFSYS_BUILD_TESTING=ON displayName: Add ROCm binaries to PATH
-DROCPROFSYS_BUILD_DYNINST=ON inputs:
-DROCPROFSYS_BUILD_LIBUNWIND=ON targetType: inline
-DROCPROFSYS_DISABLE_EXAMPLES="openmp-target" script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin"
-DDYNINST_BUILD_TBB=ON - task: Bash@3
-DDYNINST_BUILD_ELFUTILS=ON displayName: Add ROCm compilers to PATH
-DDYNINST_BUILD_LIBIBERTY=ON inputs:
-DDYNINST_BUILD_BOOST=ON targetType: inline
-DROCPROFSYS_USE_PAPI=ON script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin"
-DROCPROFSYS_USE_MPI=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/include/rocjpeg parameters:
-DGPU_TARGETS=${{ job.target }} # build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
-GNinja extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DROCPROFSYS_BUILD_TESTING=ON
gpuTarget: ${{ job.target }} -DROCPROFSYS_BUILD_DYNINST=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DROCPROFSYS_BUILD_LIBUNWIND=ON
parameters: -DDYNINST_BUILD_TBB=ON
gpuTarget: ${{ job.target }} -DDYNINST_BUILD_ELFUTILS=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -DDYNINST_BUILD_LIBIBERTY=ON
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml -DDYNINST_BUILD_BOOST=ON
parameters: -DROCPROFSYS_USE_PAPI=ON
aptPackages: ${{ parameters.aptPackages }} -DROCPROFSYS_USE_MPI=ON
pipModules: ${{ parameters.pipModules }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} multithreadFlag: -- -j32
registerROCmPackages: true - task: Bash@3
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin displayName: Set up rocprofiler-systems env
inputs:
- ${{ each job in parameters.jobMatrix.testJobs }}: targetType: inline
- job: rocprofiler_systems_test_${{ job.target }} script: source share/rocprofiler-systems/setup-env.sh
dependsOn: rocprofiler_systems_build_${{ job.target }} workingDirectory: build
condition: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
and(succeeded(), parameters:
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), componentName: rocprofiler-systems
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - task: Bash@3
eq(${{ parameters.aggregatePipeline }}, False) displayName: Remove ROCm binaries from PATH
) inputs:
timeoutInMinutes: 180 targetType: inline
variables: script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/bin;;' -e 's;^/;;' -e 's;/$;;')"
- group: common - task: Bash@3
- template: /.azuredevops/variables-global.yml displayName: Remove ROCm compilers from PATH
- name: ROCM_PATH inputs:
value: $(Agent.BuildDirectory)/rocm targetType: inline
pool: script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')"
name: ${{ job.target }}_test_pool - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
workspace: parameters:
clean: all gpuTarget: $(JOB_GPU_TARGET)
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
registerROCmPackages: true
- 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
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
- 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:
# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html
extraBuildFlags: >-
-DROCPROFSYS_BUILD_TESTING=ON
-DROCPROFSYS_BUILD_DYNINST=ON
-DROCPROFSYS_BUILD_LIBUNWIND=ON
-DROCPROFSYS_DISABLE_EXAMPLES="openmp-target"
-DDYNINST_BUILD_TBB=ON
-DDYNINST_BUILD_ELFUTILS=ON
-DDYNINST_BUILD_LIBIBERTY=ON
-DDYNINST_BUILD_BOOST=ON
-DROCPROFSYS_USE_PAPI=ON
-DROCPROFSYS_USE_MPI=ON
-DCMAKE_CXX_FLAGS=-I$(Agent.BuildDirectory)/rocm/include/rocjpeg
-DGPU_TARGETS=${{ job.target }}
-GNinja
- task: Bash@3
displayName: Set up rocprofiler-systems env
inputs:
targetType: inline
script: source share/rocprofiler-systems/setup-env.sh
workingDirectory: build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:
componentName: rocprofiler-systems
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
environment: test
registerROCmPackages: true
gpuTarget: ${{ job.target }}
extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin

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:
@@ -47,125 +41,115 @@ 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: rocprofiler
- job: rocprofiler_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: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm - name: ROCM_PATH
- name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm
value: $(Agent.BuildDirectory)/rocm pool: ${{ variables.MEDIUM_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace:
workspace: clean: all
clean: all strategy:
steps: matrix:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml gfx942:
parameters: JOB_GPU_TARGET: gfx942
aptPackages: ${{ parameters.aptPackages }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml aptPackages: ${{ parameters.aptPackages }}
parameters: pipModules: ${{ parameters.pipModules }}
checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters:
parameters: checkoutRepo: ${{ parameters.checkoutRepo }}
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
dependencyList: ${{ parameters.rocmDependencies }} parameters:
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
aggregatePipeline: ${{ parameters.aggregatePipeline }} dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
extraBuildFlags: >- - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.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 dependencyList: ${{ parameters.rocmDependencies }}
-DENABLE_LDCONFIG=OFF gpuTarget: $(JOB_GPU_TARGET)
-DUSE_PROF_API=1 # CI case: download latest default branch build
-DGPU_TARGETS=${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
-DAMDGPU_TARGETS=${{ job.target }} dependencySource: staging
multithreadFlag: -- -j32 # manual build case: triggered by ROCm/ROCm repo
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters:
parameters: extraBuildFlags: >-
gpuTarget: ${{ job.target }} -DCMAKE_MODULE_PATH=$(Build.SourcesDirectory)/cmake_modules;$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml -DENABLE_LDCONFIG=OFF
parameters: -DUSE_PROF_API=1
aptPackages: ${{ parameters.aptPackages }} -DGPU_TARGETS=$(JOB_GPU_TARGET)
pipModules: ${{ parameters.pipModules }} -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} multithreadFlag: -- -j32
extraEnvVars: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- HIP_ROCCLR_HOME:::/home/user/workspace/rocm parameters:
- ROCM_PATH:::/home/user/workspace/rocm gpuTarget: $(JOB_GPU_TARGET)
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocprofiler_testing
- job: rocprofiler_test_${{ job.target }} dependsOn: rocprofiler
dependsOn: rocprofiler_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:
- name: ROCM_PATH JOB_GPU_TARGET: gfx942
value: $(Agent.BuildDirectory)/rocm JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
- name: LD_LIBRARY_PATH steps:
value: $(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
pool: ${{ job.target }}_test_pool parameters:
workspace: aptPackages: ${{ parameters.aptPackages }}
clean: all - 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_GPU_TARGET)
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
gpuTarget: ${{ job.target }} ${{ elseif ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters: parameters:
checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }}
dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
componentName: rocprofilerV1 - task: Bash@3
testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1 displayName: Setup test environment
testExecutable: ./run.sh inputs:
testParameters: '' targetType: inline
testPublishResults: false script: |
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml sudo rm -rf /opt/rocm
parameters: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
componentName: rocprofilerV2 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testDir: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testExecutable: share/rocprofiler/tests/runUnitTests parameters:
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' componentName: rocprofilerV1
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1/test" ./run.sh
parameters: testDir: $(Agent.BuildDirectory)/rocm/share/rocprofiler/tests-v1
aptPackages: ${{ parameters.aptPackages }} testParameters: ''
pipModules: ${{ parameters.pipModules }} testPublishResults: false
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocprofilerV2
testExecutable: LD_LIBRARY_PATH="$(Agent.BuildDirectory)/rocm/lib/rocprofiler:$(Agent.BuildDirectory)/rocm/share/rocprofiler/tests" share/rocprofiler/tests/runUnitTests
testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes'
testDir: $(Agent.BuildDirectory)/rocm

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:
@@ -19,7 +14,6 @@ parameters:
- libdw-dev - libdw-dev
- libstdc++-12-dev - libstdc++-12-dev
- python-is-python3 - python-is-python3
- python3-pip
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -40,17 +34,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: rocr_debug_agent_build - job: rocr_debug_agent
variables: variables:
- group: common - group: common
- template: /.azuredevops/variables-global.yml - template: /.azuredevops/variables-global.yml
@@ -68,9 +53,13 @@ jobs:
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 }}
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
${{ if eq(parameters.checkoutRef, '') }}:
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
${{ elseif ne(parameters.checkoutRef, '') }}:
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters: parameters:
extraBuildFlags: >- extraBuildFlags: >-
@@ -79,57 +68,54 @@ jobs:
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DROCM_PATH=$(Agent.BuildDirectory)/rocm -DROCM_PATH=$(Agent.BuildDirectory)/rocm
-GNinja -GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# 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 steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters:
parameters: dependencyList: ${{ parameters.rocmTestDependencies }}
componentName: rocr_debug_agent-tests gpuTarget: $(JOB_GPU_TARGET)
extraBuildFlags: >- ${{ if eq(parameters.checkoutRef, '') }}:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip dependencySource: staging
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DROCM_PATH=$(Agent.BuildDirectory)/rocm dependencySource: tag-builds
cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
cmakeSourceDir: '.' parameters:
installEnabled: false componentName: rocr_debug_agent-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml extraBuildFlags: >-
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake;$(Agent.BuildDirectory)/rocm/lib/cmake/hip
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
componentName: rocr_debug_agent -DROCM_PATH=$(Agent.BuildDirectory)/rocm
testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' cmakeBuildDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml cmakeSourceDir: '.'
parameters: installEnabled: false
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rocr_debug_agent
testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test'

View File

@@ -5,20 +5,13 @@ 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
- doxygen - doxygen
- graphviz - graphviz
- libdrm-amdgpu-dev
- ninja-build
- python3-pip
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -41,115 +34,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: roctracer
- job: roctracer_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: 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 }} steps:
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
registerROCmPackages: true 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 }} dependencyList: ${{ parameters.rocmDependencies }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml # CI case: download latest default branch build
parameters: ${{ if eq(parameters.checkoutRef, '') }}:
extraBuildFlags: >- dependencySource: staging
-DCMAKE_BUILD_TYPE=release # manual build case: triggered by ROCm/ROCm repo
-DROCM_PATH=$(Agent.BuildDirectory)/rocm ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip dependencySource: tag-builds
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DGPU_TARGETS=${{ job.target }} parameters:
-DAMDGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-GNinja -DCMAKE_BUILD_TYPE=release
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
gpuTarget: ${{ job.target }} -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DGPU_TARGETS=$(JOB_GPU_TARGET)
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: roctracer_testing
- job: roctracer_test_${{ job.target }} dependsOn: roctracer
dependsOn: roctracer_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), pool: $(JOB_TEST_POOL)
eq(${{ parameters.aggregatePipeline }}, False) workspace:
) clean: all
variables: strategy:
- group: common matrix:
- template: /.azuredevops/variables-global.yml gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
registerROCmPackages: true parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
parameters: parameters:
gpuTarget: ${{ job.target }} ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml dependencySource: staging
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ elseif ne(parameters.checkoutRef, '') }}:
parameters: dependencySource: tag-builds
checkoutRef: ${{ parameters.checkoutRef }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
dependencyList: ${{ parameters.rocmTestDependencies }} parameters:
gpuTarget: ${{ job.target }} dependencyList: ${{ parameters.rocmTestDependencies }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml gpuTarget: $(JOB_GPU_TARGET)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
componentName: roctracer ${{ elseif ne(parameters.checkoutRef, '') }}:
testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh dependencySource: tag-builds
testParameters: '' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
testDir: $(Agent.BuildDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
testPublishResults: false parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml componentName: roctracer
parameters: testExecutable: $(Agent.BuildDirectory)/rocm/share/roctracer/run_tests.sh
aptPackages: ${{ parameters.aptPackages }} testParameters: ''
pipModules: ${{ parameters.pipModules }} testDir: $(Agent.BuildDirectory)
environment: test testPublishResults: false
gpuTarget: ${{ job.target }}
registerROCmPackages: true

View File

@@ -5,22 +5,16 @@ 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:
- clang
- cmake - cmake
- imagemagick
- libopencv-dev - libopencv-dev
- libsndfile1-dev - libsndfile1-dev
- libstdc++-12-dev - libstdc++-12-dev
- imagemagick
- ninja-build - ninja-build
- python3-pip - clang
- name: pipModules - name: pipModules
type: object type: object
default: default:
@@ -34,7 +28,6 @@ parameters:
- clr - clr
- half - half
- llvm-project - llvm-project
- rocm-cmake
- rocminfo - rocminfo
- ROCR-Runtime - ROCR-Runtime
- name: rocmTestDependencies - name: rocmTestDependencies
@@ -50,151 +43,138 @@ 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 steps:
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
aptPackages: ${{ parameters.aptPackages }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
checkoutRepo: ${{ parameters.checkoutRepo }} parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml checkoutRepo: ${{ parameters.checkoutRepo }}
parameters: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
checkoutRef: ${{ parameters.checkoutRef }} parameters:
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }} gpuTarget: $(JOB_GPU_TARGET)
aggregatePipeline: ${{ parameters.aggregatePipeline }} # CI case: download latest default branch build
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
extraBuildFlags: >- # manual build case: triggered by ROCm/ROCm repo
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ ${{ elseif ne(parameters.checkoutRef, '') }}:
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang dependencySource: tag-builds
-DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
-DCMAKE_BUILD_TYPE=Release parameters:
-DGPU_TARGETS=${{ job.target }} extraBuildFlags: >-
-DROCM_PLATFORM_VERSION=$(NEXT_RELEASE_VERSION) -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-GNinja -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml -DROCM_PATH=$(Agent.BuildDirectory)/rocm
parameters: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
gpuTarget: ${{ job.target }} -DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml -DCMAKE_BUILD_TYPE=Release
parameters: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} -GNinja
- 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 }}
# pipModules: ${{ parameters.pipModules }}
# gpuTarget: ${{ job.target }}
- ${{ each job in parameters.jobMatrix.testJobs }}: - job: rpp_testing
- job: rpp_test_${{ job.target }} dependsOn: rpp
dependsOn: rpp_build_${{ job.target }} condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
condition: variables:
and(succeeded(), - group: common
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), - template: /.azuredevops/variables-global.yml
not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), - name: LD_LIBRARY_PATH
eq(${{ parameters.aggregatePipeline }}, False) value: $(Agent.BuildDirectory)/rocm/lib;$(Agent.BuildDirectory)/rocm/llvm/lib
) pool: $(JOB_TEST_POOL)
variables: workspace:
- group: common clean: all
- template: /.azuredevops/variables-global.yml strategy:
- name: ROCM_PATH matrix:
value: $(Agent.BuildDirectory)/rocm gfx942:
pool: ${{ job.target }}_test_pool JOB_GPU_TARGET: gfx942
workspace: JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }}
clean: all steps:
steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters:
parameters: aptPackages: ${{ parameters.aptPackages }}
aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }}
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters:
parameters: gpuTarget: $(JOB_GPU_TARGET)
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml ${{ if eq(parameters.checkoutRef, '') }}:
parameters: dependencySource: staging
checkoutRef: ${{ parameters.checkoutRef }} ${{ elseif ne(parameters.checkoutRef, '') }}:
dependencyList: ${{ parameters.rocmTestDependencies }} dependencySource: tag-builds
gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
# Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md parameters:
- task: Bash@3 dependencyList: ${{ parameters.rocmTestDependencies }}
displayName: Build and install Turbo JPEG gpuTarget: $(JOB_GPU_TARGET)
inputs: ${{ if eq(parameters.checkoutRef, '') }}:
targetType: 'inline' dependencySource: staging
script: | ${{ elseif ne(parameters.checkoutRef, '') }}:
sudo apt-get install nasm dependencySource: tag-builds
sudo apt-get install wget # Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md
git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git - task: Bash@3
cd libjpeg-turbo displayName: Build and install Turbo JPEG
mkdir build inputs:
cd build targetType: 'inline'
cmake -DCMAKE_INSTALL_PREFIX=/usr \ script: |
-DCMAKE_BUILD_TYPE=RELEASE \ sudo apt-get install nasm
-DENABLE_STATIC=FALSE \ sudo apt-get install wget
-DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \ git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git
-DWITH_JPEG8=TRUE \ cd libjpeg-turbo
.. mkdir build
make -j$nproc cd build
sudo make install cmake -DCMAKE_INSTALL_PREFIX=/usr \
- task: Bash@3 -DCMAKE_BUILD_TYPE=RELEASE \
displayName: Build and install Nifti -DENABLE_STATIC=FALSE \
inputs: -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
targetType: 'inline' -DWITH_JPEG8=TRUE \
script: | ..
git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git make -j$nproc
cd nifti_clib sudo make install
mkdir build - task: Bash@3
cd build displayName: Build and install Nifti
cmake .. inputs:
sudo make -j$nproc install targetType: 'inline'
- task: Bash@3 script: |
displayName: Build rpp tests git clone https://github.com/NIFTI-Imaging/nifti_clib.git
inputs: cd nifti_clib
targetType: 'inline' mkdir build
script: | cd build
mkdir rpp-tests cmake ..
cd rpp-tests sudo make -j$nproc install
cmake $(Agent.BuildDirectory)/rocm/share/rpp/test \ - task: Bash@3
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \ displayName: Build rpp tests
-DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang inputs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml targetType: 'inline'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml script: |
parameters: sudo rm -rf /opt/rocm
componentName: rpp sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm
testExecutable: 'CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest' mkdir rpp-tests
testDir: 'rpp-tests' cd rpp-tests
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml cmake /opt/rocm/share/rpp/test \
parameters: -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ \
aptPackages: ${{ parameters.aptPackages }} -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
environment: test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
gpuTarget: ${{ job.target }} parameters:
componentName: rpp
testExecutable: 'export PATH=$(Agent.BuildDirectory)/rocm/llvm/bin:$PATH; CC=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang CMAKE_VERBOSE_MAKEFILE=ON VERBOSE=1 ctest'
testDir: 'rpp-tests'
- script: sudo rm /opt/rocm

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

@@ -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)/googletest/build cmakeBuildDir: $(Agent.BuildDirectory)/googletest/build
cmakeSourceDir: $(Agent.BuildDirectory)/googletest
extraBuildFlags: >- extraBuildFlags: >-
-DGTEST_FORCE_SHARED_CRT=ON -DGTEST_FORCE_SHARED_CRT=ON
-DCMAKE_DEBUG_POSTFIX=d -DCMAKE_DEBUG_POSTFIX=d

View File

@@ -19,7 +19,7 @@ jobs:
pool: pool:
vmImage: ${{ variables.BASE_BUILD_POOL }} vmImage: ${{ variables.BASE_BUILD_POOL }}
container: container:
image: rocm/dev-ubuntu-22.04:${{ variables.LATEST_RELEASE_VERSION }} image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }}
workspace: workspace:
clean: all clean: all
steps: steps:

View File

@@ -68,16 +68,16 @@ parameters:
default: default:
- cmake - cmake
- astunparse - astunparse
- "expecttest>=0.2.1" - 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.8.0" - typing-extensions>=4.8.0
- "sympy>=1.13.0" - 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
@@ -142,10 +142,6 @@ parameters:
- binary_ufuncs - binary_ufuncs
- autograd - autograd
# - inductor/torchinductor takes too long # - inductor/torchinductor takes too long
# set to false to disable torchvision build and test
- name: includeVision
type: boolean
default: false
trigger: none trigger: none
pr: none pr: none
@@ -170,13 +166,15 @@ 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: AOTRITON_INSTALLED_PREFIX
value: /opt/rocm/aotriton
- name: DESIRED_PYTHON - name: DESIRED_PYTHON
value: 3.10 value: 3.10
- name: PYTORCH_ROOT - name: PYTORCH_ROOT
@@ -218,7 +216,6 @@ jobs:
dependencyList: ${{ parameters.rocmDependencies }} dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging 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:
@@ -240,12 +237,6 @@ 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:
@@ -253,6 +244,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:
@@ -265,21 +263,27 @@ 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 AOTriton Shared Library
inputs:
targetType: inline
script: sudo bash ./common/install_aotriton.sh /opt/rocm
workingDirectory: $(Build.SourcesDirectory)/pytorch/.ci/docker
- 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)
DESIRED_PYTHON=$(DESIRED_PYTHON) DESIRED_PYTHON=$(DESIRED_PYTHON)
PYTORCH_ROOT=$(PYTORCH_ROOT) PYTORCH_ROOT=$(PYTORCH_ROOT)
CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
AOTRITON_INSTALLED_PREFIX=$(AOTRITON_INSTALLED_PREFIX)
DESIRED_DEVTOOLSET=$(DESIRED_DEVTOOLSET) DESIRED_DEVTOOLSET=$(DESIRED_DEVTOOLSET)
TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET) 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)
@@ -292,74 +296,59 @@ jobs:
sourceDir: /remote/wheelhouserocm$(ROCM_VERSION) sourceDir: /remote/wheelhouserocm$(ROCM_VERSION)
contentsString: '*.whl' contentsString: '*.whl'
# common helper source for pytorch vision and audio # common helper source for pytorch vision and audio
- ${{ if eq(parameters.includeVision, true) }}: - task: Bash@3
- task: Bash@3 displayName: git clone pytorch test-infra
displayName: git clone pytorch test-infra inputs:
inputs: targetType: inline
targetType: inline script: git clone https://github.com/pytorch/test-infra.git --depth=1 --recurse-submodules
script: git clone https://github.com/pytorch/test-infra.git --depth=1 --recurse-submodules workingDirectory: $(Build.SourcesDirectory)
workingDirectory: $(Build.SourcesDirectory) - task: Bash@3
- task: Bash@3 displayName: install package helper
displayName: install package helper inputs:
inputs: targetType: inline
targetType: inline script: python3 -m pip install test-infra/tools/pkg-helpers
script: python3 -m pip install test-infra/tools/pkg-helpers workingDirectory: $(Build.SourcesDirectory)
workingDirectory: $(Build.SourcesDirectory) - task: Bash@3
- task: Bash@3 displayName: pytorch pkg helpers
displayName: pytorch pkg helpers inputs:
inputs: targetType: inline
targetType: inline script: CU_VERSION=${CU_VERSION} CHANNEL=${CHANNEL} python -m pytorch_pkg_helpers
script: CU_VERSION=${CU_VERSION} CHANNEL=${CHANNEL} python -m pytorch_pkg_helpers # get torch vision source and build
# get torch vision source and build - task: Bash@3
- task: Bash@3 displayName: git clone pytorch vision
displayName: git clone pytorch vision inputs:
inputs: targetType: inline
targetType: inline script: git clone https://github.com/pytorch/vision.git --depth=1 --recurse-submodules
script: git clone https://github.com/pytorch/vision.git --depth=1 --recurse-submodules workingDirectory: $(Build.SourcesDirectory)
workingDirectory: $(Build.SourcesDirectory) - task: Bash@3
- task: Bash@3 displayName: Build vision
displayName: Build vision inputs:
inputs: targetType: inline
targetType: inline script: >-
script: >- TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET)
TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET) TORCHVISION_PACKAGE_NAME=torchvision.$(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 workingDirectory: $(Build.SourcesDirectory)/vision
workingDirectory: $(Build.SourcesDirectory)/vision - task: Bash@3
- task: Bash@3 displayName: Relocate vision
displayName: Relocate vision inputs:
inputs: targetType: inline
targetType: inline script: python3 packaging/wheel/relocate.py
script: python3 packaging/wheel/relocate.py workingDirectory: $(Build.SourcesDirectory)/vision
workingDirectory: $(Build.SourcesDirectory)/vision - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-prepare-package.yml
parameters:
sourceDir: $(Build.SourcesDirectory)/vision/dist
contentsString: '*.whl'
clean: false
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters: parameters:
gpuTarget: $(JOB_GPU_TARGET) sourceDir: $(Build.SourcesDirectory)/vision/dist
contentsString: '*.whl'
clean: false
- task: PublishPipelineArtifact@1 - task: PublishPipelineArtifact@1
displayName: 'wheel file Publish' displayName: 'wheel file Publish'
retryCountOnTaskFailure: 3 retryCountOnTaskFailure: 3
inputs: inputs:
targetPath: $(Build.BinariesDirectory) targetPath: $(Build.BinariesDirectory)
- task: Bash@3
displayName: Save pipeline artifact file name
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
whlFile=$(find "$(Build.BinariesDirectory)" -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
- job: pytorch_testing - job: torchvision_testing
dependsOn: pytorch dependsOn: pytorch
condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName']))) condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName'])))
variables: variables:
@@ -390,12 +379,6 @@ jobs:
parameters: parameters:
aptPackages: ${{ parameters.aptPackages }} aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }} pipModules: ${{ parameters.pipModules }}
# pytorch tests require an updated version of click, even if requirements is not called outright
- task: Bash@3
displayName: 'pip update click'
inputs:
targetType: inline
script: pip install --upgrade click
- 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'
@@ -418,13 +401,12 @@ jobs:
targetType: inline targetType: inline
script: git clone https://github.com/pytorch/pytorch.git --depth=1 --recurse-submodules script: git clone https://github.com/pytorch/pytorch.git --depth=1 --recurse-submodules
workingDirectory: $(Build.SourcesDirectory) workingDirectory: $(Build.SourcesDirectory)
- ${{ if eq(parameters.includeVision, true) }}: - task: Bash@3
- task: Bash@3 displayName: git clone pytorch vision
displayName: git clone pytorch vision inputs:
inputs: targetType: inline
targetType: inline script: git clone https://github.com/pytorch/vision.git --depth=1 --recurse-submodules
script: git clone https://github.com/pytorch/vision.git --depth=1 --recurse-submodules workingDirectory: $(Build.SourcesDirectory)
workingDirectory: $(Build.SourcesDirectory)
- task: Bash@3 - task: Bash@3
displayName: Install Wheel Files displayName: Install Wheel Files
inputs: inputs:
@@ -469,7 +451,7 @@ jobs:
python3 -c 'import torch; x = torch.rand(5, 3); print(x)' python3 -c 'import torch; x = torch.rand(5, 3); print(x)'
# Test artifact build script has too many if statements for different environments # Test artifact build script has too many if statements for different environments
# Based off the snippet of interest for this environment, with some adjustments # Based off the snippet of interest for this environment, with some adjustments
# https://github.com/pytorch/pytorch/blob/main/.ci/pytorch/build.sh#L330-L371 # https://github.com/pytorch/pytorch/blob/main/.ci/pytorch/build.sh#L335-L375
# Removing in-line comments since it does not fit with the yaml markup # Removing in-line comments since it does not fit with the yaml markup
- task: Bash@3 - task: Bash@3
displayName: Build Pytorch Test Artifacts displayName: Build Pytorch Test Artifacts
@@ -528,14 +510,13 @@ jobs:
script: pytest test/test_${{ torchTest }}.py script: pytest test/test_${{ torchTest }}.py
# 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_torchvision.sh#L51 # https://github.com/ROCm/rocAutomation/blob/jenkins-pipelines/pytorch/pytorch_ci/test_torchvision.sh#L51
- ${{ if eq(parameters.includeVision, true) }}: - task: Bash@3
- task: Bash@3 displayName: Test vision/transforms
displayName: Test vision/transforms continueOnError: true
continueOnError: true inputs:
inputs: targetType: inline
targetType: inline script: pytest test/test_transforms.py
script: pytest test/test_transforms.py workingDirectory: $(Build.SourcesDirectory)/vision
workingDirectory: $(Build.SourcesDirectory)/vision
- task: Bash@3 - task: Bash@3
displayName: Uninstall Wheel Files displayName: Uninstall Wheel Files
inputs: inputs:

View File

@@ -1,14 +1,5 @@
parameters: parameters:
# using a parameter instead of a strategy matrix allows job variables to be eval'd at compile-time rather than runtime # currently excludes clr
- name: jobList
type: object
default:
- gfx942-staging:
target: gfx942
source: staging
- gfx90a-staging:
target: gfx90a
source: staging
- name: rocmDependencies - name: rocmDependencies
type: object type: object
default: default:
@@ -35,6 +26,7 @@ parameters:
- llvm-project - llvm-project
- MIOpen - MIOpen
- MIVisionX - MIVisionX
- omniperf
- rccl - rccl
- rdc - rdc
- rocAL - rocAL
@@ -44,7 +36,6 @@ parameters:
- rocDecode - rocDecode
- rocFFT - rocFFT
- ROCgdb - ROCgdb
- rocJPEG
- rocm-cmake - rocm-cmake
- rocm-core - rocm-core
- rocm-examples - rocm-examples
@@ -54,7 +45,6 @@ parameters:
- rocm_bandwidth_test - rocm_bandwidth_test
- rocm_smi_lib - rocm_smi_lib
- rocPRIM - rocPRIM
- rocprofiler-compute
- rocprofiler-register - rocprofiler-register
- rocprofiler-sdk - rocprofiler-sdk
- rocprofiler-systems - rocprofiler-systems
@@ -69,7 +59,6 @@ parameters:
- roctracer - roctracer
- rocWMMA - rocWMMA
- rpp - rpp
- TransferBench
trigger: none trigger: none
pr: none pr: none
@@ -82,59 +71,54 @@ schedules:
always: true always: true
jobs: jobs:
- ${{ each job in parameters.jobList }}: - job: rocm_nightly
- job: rocm_nightly_${{ job.target }}_${{ job.source }} 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:
- task: DeleteFiles@1 gfx942:
displayName: 'Cleanup checkout space' JOB_GPU_TARGET: gfx942
inputs: steps:
SourceFolder: '$(Agent.BuildDirectory)/s' - task: DeleteFiles@1
Contents: '**/*' displayName: 'Cleanup checkout space'
- task: DeleteFiles@1 inputs:
displayName: 'Cleanup Staging Area' SourceFolder: '$(Agent.BuildDirectory)/s'
inputs: Contents: '**/*'
SourceFolder: '$(Build.ArtifactStagingDirectory)' - task: DeleteFiles@1
Contents: '/**/*' displayName: 'Cleanup Staging Area'
RemoveDotFiles: true inputs:
- script: df -h SourceFolder: '$(Build.ArtifactStagingDirectory)'
displayName: System disk space before ROCm Contents: '/**/*'
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml RemoveDotFiles: true
parameters: - script: df -h
dependencySource: ${{ job.source }} displayName: System disk space before ROCm
dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
gpuTarget: ${{ job.target }} parameters:
skipLibraryLinking: true dependencyList: ${{ parameters.rocmDependencies }}
skipLlvmSymlink: true dependencySource: staging
- script: df -h skipLibraryLinking: true
displayName: System disk space after ROCm skipLlvmSymlink: true
- script: du -sh $(Agent.BuildDirectory)/rocm gpuTarget: $(JOB_GPU_TARGET)
displayName: Uncompressed ROCm size - script: df -h
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml displayName: System disk space after ROCm
- task: ArchiveFiles@2 - script: du -sh $(Agent.BuildDirectory)/rocm
displayName: Compress rocm-nightly displayName: Uncompressed ROCm size
inputs: - task: ArchiveFiles@2
rootFolderOrFile: $(Agent.BuildDirectory)/rocm displayName: Compress rocm-nightly
includeRootFolder: false inputs:
archiveType: tar rootFolderOrFile: $(Agent.BuildDirectory)/rocm
tarCompression: gz includeRootFolder: false
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_${{ job.target }}.tar.gz archiveType: tar
- script: du -sh $(Build.ArtifactStagingDirectory) tarCompression: gz
displayName: Compressed ROCm size archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_$(JOB_GPU_TARGET).tar.gz
- task: PublishPipelineArtifact@1 - script: du -sh $(Build.ArtifactStagingDirectory)
displayName: 'Publish ROCm Nightly Artifact' displayName: Compressed ROCm size
retryCountOnTaskFailure: 3 - task: PublishPipelineArtifact@1
inputs: displayName: 'Publish ROCm Nightly Artifact'
targetPath: '$(Build.ArtifactStagingDirectory)' retryCountOnTaskFailure: 3
- task: Bash@3 inputs:
displayName: Save pipeline artifact file name targetPath: '$(Build.ArtifactStagingDirectory)'
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_${{ job.target }}.tar.gz" >> pipelineArtifacts.txt
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml

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

@@ -1,29 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: checkoutRef
type: string
default: refs/tags/$(LATEST_RELEASE_TAG)
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
- repository: release_repo
type: github
endpoint: ROCm
name: ROCm/TransferBench
ref: ${{ parameters.checkoutRef }}
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_COMPONENT_PATH }}/TransferBench.yml
parameters:
checkoutRepo: release_repo
checkoutRef: ${{ parameters.checkoutRef }}

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

@@ -16,14 +16,14 @@ resources:
- repository: release_repo - repository: release_repo
type: github type: github
endpoint: ROCm endpoint: ROCm
name: ROCm/rocJPEG name: ROCm/omniperf
ref: ${{ parameters.checkoutRef }} ref: ${{ parameters.checkoutRef }}
trigger: none trigger: none
pr: none pr: none
jobs: jobs:
- template: ${{ variables.CI_COMPONENT_PATH }}/rocJPEG.yml - template: ${{ variables.CI_COMPONENT_PATH }}/omniperf.yml
parameters: parameters:
checkoutRepo: release_repo checkoutRepo: release_repo
checkoutRef: ${{ parameters.checkoutRef }} checkoutRef: ${{ parameters.checkoutRef }}

View File

@@ -1,29 +0,0 @@
variables:
- group: common
- template: /.azuredevops/variables-global.yml
parameters:
- name: checkoutRef
type: string
default: refs/tags/$(LATEST_RELEASE_TAG)
resources:
repositories:
- repository: pipelines_repo
type: github
endpoint: ROCm
name: ROCm/ROCm
- repository: release_repo
type: github
endpoint: ROCm
name: ROCm/rocprofiler-compute
ref: ${{ parameters.checkoutRef }}
trigger: none
pr: none
jobs:
- template: ${{ variables.CI_COMPONENT_PATH }}/rocprofiler-compute.yml
parameters:
checkoutRepo: release_repo
checkoutRef: ${{ parameters.checkoutRef }}

View File

@@ -6,54 +6,192 @@ parameters:
- name: pipelineId - name: pipelineId
type: string type: string
default: '' default: ''
- name: branchName - name: useDefaultBranch
type: string type: boolean
default: '$(Build.SourceBranchName)' # for tagged builds default: true
# useMainlineBranch only processed if useDefaultBranch is false
- name: useMainlineBranch
type: boolean
default: false
- name: latestFromBranch
type: boolean
default: true
- name: extractToMnt
type: boolean
default: false
- name: fileFilter - name: fileFilter
type: string type: string
default: '' default: ''
# set to true if doing full build of ROCm stack - name: defaultBranchList
# and dependencies are pulled from same pipeline type: object
- name: aggregatePipeline default:
type: boolean AMDMIGraphX: develop
default: false amdsmi: amd-staging
aomp-extras: aomp-dev
aomp: aomp-dev
clr: amd-staging
composable_kernel: develop
half: rocm
HIP: amd-staging
hip-tests: amd-staging
hipBLAS: develop
hipBLASLt: develop
hipBLAS-common: develop
hipCUB: develop
hipFFT: develop
hipfort: develop
HIPIFY: amd-staging
hipRAND: develop
hipSOLVER: develop
hipSPARSE: develop
hipSPARSELt: develop
hipTensor: develop
llvm-project: amd-staging
MIOpen: develop
MIVisionX: develop
omniperf: amd-staging
omnitrace: amd-staging
rccl: develop
rdc: amd-staging
rocAL: develop
rocALUTION: develop
rocBLAS: develop
ROCdbgapi : amd-staging
rocDecode: develop
rocFFT: develop
ROCgdb: amd-staging
rocm-cmake: develop
rocm-core: amd-staging
rocm-examples: develop
rocminfo: amd-staging
rocMLIR: develop
ROCmValidationSuite: master
rocm_bandwidth_test: master
rocm_smi_lib: amd-staging
rocPRIM: develop
rocprofiler: amd-staging
rocprofiler-register: amd-staging
rocprofiler-sdk: amd-staging
rocprofiler-systems: amd-staging
rocPyDecode: develop
ROCR-Runtime: amd-staging
rocRAND: develop
rocr_debug_agent: amd-staging
rocSOLVER: develop
rocSPARSE: develop
rocThrust: develop
roctracer: amd-staging
rocWMMA: develop
rpp: develop
- name: mainlineBranchList
type: object
default:
AMDMIGraphX: mainline
amdsmi: amd-mainline
aomp-extras: amd-mainline-open
aomp: amd-mainline-open
clr: amd-mainline
composable_kernel: mainline
half: rocm
HIP: amd-mainline
hip-tests: amd-mainline
hipBLAS: mainline
hipBLASLt: mainline
hipBLAS-common: mainline
hipCUB: mainline
hipFFT: mainline
hipfort: mainline
HIPIFY: amd-mainline
hipRAND: mainline
hipSOLVER: mainline
hipSPARSE: mainline
hipSPARSELt: mainline
hipTensor: mainline
llvm-project: amd-mainline-open
MIOpen: mainline
MIVisionX: mainline
omniperf: amd-mainline
omnitrace: amd-mainline
rccl: mainline
rdc: amd-mainline
rocAL: master # needs the yaml file
rocALUTION: mainline
rocBLAS: mainline
ROCdbgapi : amd-mainline
rocDecode: mainline
rocFFT: mainline
ROCgdb: amd-mainline-rocgdb-15 #
rocm-cmake: mainline
rocm-core: amd-master
rocm-examples: develop # no mainline
rocminfo: amd-master
rocMLIR: mainline # needs the yaml file
ROCmValidationSuite: mainline
rocm_bandwidth_test: master
rocm_smi_lib: amd-mainline
rocPRIM: mainline
rocprofiler: amd-master
rocprofiler-register: amd-mainline
rocprofiler-sdk: amd-mainline
rocprofiler-systems: amd-mainline
rocPyDecode: mainline
ROCR-Runtime: amd-master
rocRAND: mainline
rocr_debug_agent: amd-mainline
rocSOLVER: mainline
rocSPARSE: mainline
rocThrust: mainline
roctracer: amd-master
rocWMMA: mainline
rpp: mainline
- name: allowPartiallySucceededBuilds
type: object
default:
- amdsmi
- aomp
- HIPIFY
- MIVisionX
- omniperf
- rccl
- rdc
- rocm-cmake
- rocm_smi_lib
- rocFFT
- rpp
# BELOW REQUIRED IF useDefaultBranch false
- name: branchName
type: string
default: '$(Build.SourceBranchName)' # for tagged builds
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 }}
inputs: inputs:
${{ if eq(parameters.aggregatePipeline, false) }}: buildType: 'specific'
buildType: 'specific' project: ROCm-CI
project: ROCm-CI definition: ${{ parameters.pipelineId }}
definition: ${{ parameters.pipelineId }} specificBuildWithTriggering: true
specificBuildWithTriggering: true itemPattern: '**/*${{ parameters.fileFilter }}*'
itemPattern: '**/*${{ parameters.fileFilter }}*' ${{ if eq(parameters.latestFromBranch, true) }}:
# aomp is a special case, since the trigger file is under ROCm/ROCm instead of the component repo ${{ if notIn(parameters.componentName, 'aomp') }}: # remove this once these pipelines are functional + up-to-date
${{ if notIn(parameters.componentName, 'aomp') }}:
buildVersionToDownload: latestFromBranch # default is 'latest' buildVersionToDownload: latestFromBranch # default is 'latest'
branchName: refs/heads/${{ parameters.branchName }} ${{ if eq(parameters.useDefaultBranch, true) }}:
allowPartiallySucceededBuilds: $(allowPartiallySucceededBuilds) branchName: refs/heads/${{ parameters.defaultBranchList[parameters.componentName] }}
targetPath: '$(Pipeline.Workspace)/d' ${{ elseif eq(parameters.useMainlineBranch, true) }}:
branchName: refs/heads/${{ parameters.mainlineBranchList[parameters.componentName] }}
${{ else }}: ${{ else }}:
buildType: 'current' branchName: ${{ parameters.branchName }}
itemPattern: '**/${{ parameters.componentName }}*${{ parameters.fileFilter }}*' ${{ if containsValue(parameters.allowPartiallySucceededBuilds, parameters.componentName) }}:
allowPartiallySucceededBuilds: $(allowPartiallySucceededBuilds) allowPartiallySucceededBuilds: true
targetPath: '$(Pipeline.Workspace)/d' targetPath: '$(Pipeline.Workspace)/d'
- task: ExtractFiles@1 - task: ExtractFiles@1
displayName: Extract ${{ parameters.componentName }} displayName: Extract ${{ parameters.componentName }}
inputs: inputs:
archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz' archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz'
destinationFolder: '$(Agent.BuildDirectory)/rocm' ${{ if parameters.extractToMnt }}:
destinationFolder: '/mnt/rocm'
${{ else }}:
destinationFolder: '$(Agent.BuildDirectory)/rocm'
cleanDestinationFolder: false cleanDestinationFolder: false
overwriteExistingFiles: true overwriteExistingFiles: true
- task: DeleteFiles@1 - task: DeleteFiles@1

View File

@@ -1,32 +0,0 @@
# Every publish artifact call should be coupled with a script that
# prints out the artifact name to a common text file
# This template parses that text file line by line and prints out the download URL
# for each artifact, so that they are easily accessible to the public
# replace trailing '=' with their count in the encoded string
steps:
- task: Bash@3
displayName: "!! Download Links !!"
condition: always()
continueOnError: true
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
URL_BEGIN="https://artprodcus3.artifacts.visualstudio.com/"
URL_MIDDLE="/_apis/artifact/"
URL_END="/content?format=file&subPath=%2F"
FORMATTED_JOB_NAME=$(echo $(Agent.JobName) | sed 's/ /./g; s/[-_]//g')
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)
PADDING_COUNT=$(echo -n "${ENCODED_STRING}" | awk -F= '{print NF-1}')
if [ "$PADDING_COUNT" -gt 0 ]; then
FINAL_ENCODED_STRING=$(echo -n "${ENCODED_STRING}" | sed "s/=*$/${PADDING_COUNT}/")
else
FINAL_ENCODED_STRING="${ENCODED_STRING}0"
fi
while IFS= read -r fileName; do
echo "File Name:"
echo "$fileName"
printf "Download Link:\n%s%s/%s%s%s%s%s\n\n" "${URL_BEGIN}" "${DOWNLOAD_ORGANIZATION_ID}" "${DOWNLOAD_PROJECT_ID}" "${URL_MIDDLE}" "${FINAL_ENCODED_STRING}" "${URL_END}" "${fileName}"
done < pipelineArtifacts.txt
rm pipelineArtifacts.txt

View File

@@ -20,23 +20,16 @@ steps:
includeRootFolder: false includeRootFolder: false
archiveType: 'tar' archiveType: 'tar'
tarCompression: 'gz' tarCompression: 'gz'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.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:
SourceFolder: '$(Build.BinariesDirectory)' SourceFolder: '$(Build.BinariesDirectory)'
Contents: '/**/*' Contents: '/**/*'
RemoveDotFiles: true RemoveDotFiles: true
- task: Bash@3
displayName: Save pipeline artifact file name
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.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:

View File

@@ -10,10 +10,10 @@ parameters:
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: ''
@@ -32,9 +32,6 @@ parameters:
- name: installEnabled - name: installEnabled
type: boolean type: boolean
default: true default: true
- name: printDiskSpace
type: boolean
default: true
steps: steps:
# create workingDirectory if it does not exist and change into it # create workingDirectory if it does not exist and change into it
@@ -46,10 +43,9 @@ steps:
${{ if eq(parameters.customInstallPath, true) }}: ${{ if eq(parameters.customInstallPath, true) }}:
cmakeArgs: -DCMAKE_INSTALL_PREFIX=${{ parameters.installDir }} ${{ parameters.extraBuildFlags }} ${{ parameters.cmakeSourceDir }} cmakeArgs: -DCMAKE_INSTALL_PREFIX=${{ parameters.installDir }} ${{ parameters.extraBuildFlags }} ${{ parameters.cmakeSourceDir }}
${{ else }}: ${{ else }}:
cmakeArgs: ${{ parameters.extraBuildFlags }} ${{ parameters.cmakeSourceDir }} cmakeArgs: ${{ parameters.extraBuildFlags }} ..
- ${{ 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
@@ -61,9 +57,8 @@ steps:
${{ else }}: ${{ else }}:
cmakeArgs: '--build ${{ parameters.cmakeTargetDir }} --target ${{ parameters.customBuildTarget }} ${{ parameters.multithreadFlag }}' cmakeArgs: '--build ${{ parameters.cmakeTargetDir }} --target ${{ parameters.customBuildTarget }} ${{ parameters.multithreadFlag }}'
retryCountOnTaskFailure: 10 retryCountOnTaskFailure: 10
- ${{ 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 eq(parameters.installEnabled, true) }}: - ${{ if eq(parameters.installEnabled, true) }}:

View File

@@ -4,12 +4,6 @@ parameters:
- name: checkoutRepo - name: checkoutRepo
type: string type: string
default: 'self' default: 'self'
- name: sparseCheckout
type: boolean
default: false
- 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
@@ -21,13 +15,3 @@ steps:
clean: true clean: true
submodules: ${{ parameters.submoduleBehaviour }} submodules: ${{ parameters.submoduleBehaviour }}
retryCountOnTaskFailure: 3 retryCountOnTaskFailure: 3
fetchFilter: blob:none
${{ if eq(parameters.sparseCheckout, true) }}:
sparseCheckoutDirectories: ${{ parameters.sparseCheckoutDir }}
path: sparse
- ${{ if eq(parameters.sparseCheckout, true) }}:
- task: Bash@3
displayName: Symlink sparse checkout
inputs:
targetType: inline
script: ln -s $(Agent.BuildDirectory)/sparse/${{ parameters.sparseCheckoutDir }} $(Agent.BuildDirectory)/s

View File

@@ -1,16 +1,29 @@
parameters:
- name: dependencySource
type: string
default: staging
values:
- staging
- tag-builds
- name: repositoryUrl
type: object
default:
staging: https://repo.radeon.com/rocm/apt/latest/pool/main/h/hsa-amd-aqlprofile/ # end slash is important for curl!
tag-builds: https://repo.radeon.com/rocm/apt/$(TAGGED_RELEASE)/pool/main/h/hsa-amd-aqlprofile/
steps: steps:
- task: Bash@3 - task: Bash@3
displayName: Get aqlprofile package name displayName: Get aqlprofile package name
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
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") export packageName=$(curl -s ${{ parameters.repositoryUrl[parameters.dependencySource] }} | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb")
echo "##vso[task.setvariable variable=packageName;isreadonly=true]$packageName" echo "##vso[task.setvariable variable=packageName;isreadonly=true]$packageName"
- task: Bash@3 - task: Bash@3
displayName: 'Download aqlprofile' displayName: 'Download aqlprofile'
inputs: inputs:
targetType: inline targetType: inline
script: wget -nv https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION)/pool/main/h/hsa-amd-aqlprofile/$(packageName) script: wget -nv ${{ parameters.repositoryUrl[parameters.dependencySource] }}$(packageName)
workingDirectory: '$(Pipeline.Workspace)' workingDirectory: '$(Pipeline.Workspace)'
- task: Bash@3 - task: Bash@3
displayName: 'Extract aqlprofile' displayName: 'Extract aqlprofile'

View File

@@ -6,5 +6,5 @@ steps:
targetType: inline targetType: inline
script: | script: |
sudo apt purge cmake -y sudo apt purge cmake -y
sudo snap install cmake --classic --channel=3.31/stable sudo snap install cmake --classic
hash -r hash -r

View File

@@ -6,40 +6,13 @@ parameters:
- name: pipModules - name: pipModules
type: object type: object
default: [] default: []
- name: registerROCmPackages
type: boolean
default: false
steps: steps:
- ${{ if eq(parameters.registerROCmPackages, true) }}:
- task: Bash@3
displayName: 'Register AMDGPU & ROCm repos'
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
# firefox takes time to upgrade and is not needed for CI workloads, hold version
- task: Bash@3
continueOnError: true
displayName: 'sudo apt-mark hold firefox'
inputs:
targetType: inline
script: sudo apt-mark hold firefox
- task: Bash@3 - task: Bash@3
displayName: 'sudo apt-get update' displayName: 'sudo apt-get update'
inputs: inputs:
targetType: inline targetType: inline
script: | script: sudo DEBIAN_FRONTEND=noninteractive apt-get --yes update
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
- task: Bash@3 - task: Bash@3
displayName: 'sudo apt-get upgrade' displayName: 'sudo apt-get upgrade'
inputs: inputs:
@@ -55,10 +28,10 @@ steps:
displayName: 'sudo apt-get install ...' displayName: 'sudo apt-get install ...'
inputs: inputs:
targetType: inline targetType: inline
script: sudo DEBIAN_FRONTEND=noninteractive apt-get --yes --fix-missing install ${{ join(' ', parameters.aptPackages) }} script: sudo DEBIAN_FRONTEND=noninteractive apt-get --yes install ${{ join(' ', parameters.aptPackages) }}
- ${{ if gt(length(parameters.pipModules), 0) }}: - ${{ if gt(length(parameters.pipModules), 0) }}:
- task: Bash@3 - task: Bash@3
displayName: 'pip install ...' displayName: 'pip install ...'
inputs: inputs:
targetType: inline targetType: inline
script: pip install -v --force-reinstall ${{ join(' ', parameters.pipModules) }} script: pip install -v ${{ join(' ', parameters.pipModules) }}

View File

@@ -1,21 +1,156 @@
# download and install rocm dependencies through pipeline builds in the project # download and install rocm dependencies through pipeline builds in the project
# REQUIRED
parameters: parameters:
- name: checkoutRef
type: string
default: ''
- name: dependencySource # optional, overrides checkoutRef
type: string
default: null
values:
- null # empty strings aren't allowed as values, use null instead
- staging
- mainline
- name: dependencyList - name: dependencyList
type: object type: object
default: [] default: []
- name: gpuTarget - name: dependencySource
type: string
default: staging
values:
- staging
- mainline
- tag-builds
- fixed
- name: extractToMnt
type: boolean
default: false
# required values for fixed selection
- name: fixedPipelineIdentifier
type: string
default: 0
- name: fixedComponentName
type: string type: string
default: '' default: ''
- name: latestFromBranch
type: boolean
default: true
# match case of the repo in this object for the left side of the maps
# should not need to replace these parameters
- name: stagingPipelineIdentifiers
type: object
default:
AMDMIGraphX: $(AMDMIGRAPHX_PIPELINE_ID)
amdsmi: $(AMDSMI_PIPELINE_ID)
aomp-extras: $(AOMP_EXTRAS_PIPELINE_ID)
aomp: $(AOMP_PIPELINE_ID)
clr: $(CLR_PIPELINE_ID)
composable_kernel: $(COMPOSABLE_KERNEL_PIPELINE_ID)
half: $(HALF_PIPELINE_ID)
HIP: $(HIP_PIPELINE_ID)
hip-tests: $(HIP_TESTS_PIPELINE_ID)
hipBLAS: $(HIPBLAS_PIPELINE_ID)
hipBLAS-common: $(HIPBLAS_COMMON_PIPELINE_ID)
hipBLASLt: $(HIPBLASLT_PIPELINE_ID)
hipCUB: $(HIPCUB_PIPELINE_ID)
hipFFT: $(HIPFFT_PIPELINE_ID)
hipfort: $(HIPFORT_PIPELINE_ID)
HIPIFY: $(HIPIFY_PIPELINE_ID)
hipRAND: $(HIPRAND_PIPELINE_ID)
hipSOLVER: $(HIPSOLVER_PIPELINE_ID)
hipSPARSE: $(HIPSPARSE_PIPELINE_ID)
hipSPARSELt: $(HIPSPARSELT_PIPELINE_ID)
hipTensor: $(HIPTENSOR_PIPELINE_ID)
llvm-project: $(LLVM_PROJECT_PIPELINE_ID)
MIOpen: $(MIOpen_PIPELINE_ID)
MIVisionX: $(MIVISIONX_PIPELINE_ID)
omniperf: $(OMNIPERF_PIPELINE_ID)
omnitrace: $(OMNITRACE_PIPELINE_ID)
rccl: $(RCCL_PIPELINE_ID)
rdc: $(RDC_PIPELINE_ID)
rocAL: $(ROCAL_PIPELINE_ID)
rocALUTION: $(ROCALUTION_PIPELINE_ID)
rocBLAS: $(ROCBLAS_PIPELINE_ID)
ROCdbgapi: $(ROCDBGAPI_PIPELINE_ID)
rocDecode: $(ROCDECODE_PIPELINE_ID)
rocFFT: $(ROCFFT_PIPELINE_ID)
ROCgdb: $(ROCGDB_PIPELINE_ID)
rocm-cmake: $(ROCM_CMAKE_PIPELINE_ID)
rocm-core: $(ROCM_CORE_PIPELINE_ID)
rocm-examples: $(ROCM_EXAMPLES_PIPELINE_ID)
rocminfo: $(ROCMINFO_PIPELINE_ID)
rocMLIR: $(ROCMLIR_PIPELINE_ID)
ROCmValidationSuite: $(ROCMVALIDATIONSUITE_PIPELINE_ID)
rocm_bandwidth_test: $(ROCM_BANDWIDTH_TEST_PIPELINE_ID)
rocm_smi_lib: $(ROCM_SMI_LIB_PIPELINE_ID)
rocPRIM: $(ROCPRIM_PIPELINE_ID)
rocprofiler-register: $(ROCPROFILER_REGISTER_PIPELINE_ID)
rocprofiler-sdk: $(ROCPROFILER_SDK_PIPELINE_ID)
rocprofiler-systems: $(ROCPROFILER_SYSTEMS_PIPELINE_ID)
rocprofiler: $(ROCPROFILER_PIPELINE_ID)
rocPyDecode: $(ROCPYDECODE_PIPELINE_ID)
ROCR-Runtime: $(ROCR_RUNTIME_PIPELINE_ID)
rocRAND: $(ROCRAND_PIPELINE_ID)
rocr_debug_agent: $(ROCR_DEBUG_AGENT_PIPELINE_ID)
rocSOLVER: $(ROCSOLVER_PIPELINE_ID)
rocSPARSE: $(ROCSPARSE_PIPELINE_ID)
ROCT-Thunk-Interface: $(ROCT_THUNK_INTERFACE_PIPELINE_ID)
rocThrust: $(ROCTHRUST_PIPELINE_ID)
roctracer: $(ROCTRACER_PIPELINE_ID)
rocWMMA: $(ROCWMMA_PIPELINE_ID)
rpp: $(RPP_PIPELINE_ID)
- name: taggedPipelineIdentifiers
type: object
default:
AMDMIGraphX: $(AMDMIGRAPHX_TAGGED_PIPELINE_ID)
amdsmi: $(AMDSMI_TAGGED_PIPELINE_ID)
aomp-extras: $(AOMP_EXTRAS_TAGGED_PIPELINE_ID)
aomp: $(AOMP_TAGGED_PIPELINE_ID)
clr: $(CLR_TAGGED_PIPELINE_ID)
composable_kernel: $(COMPOSABLE_KERNEL_TAGGED_PIPELINE_ID)
half: $(HALF_TAGGED_PIPELINE_ID)
HIP: $(HIP_TAGGED_PIPELINE_ID)
hip-tests: $(HIP_TESTS_TAGGED_PIPELINE_ID)
hipBLAS: $(HIPBLAS_TAGGED_PIPELINE_ID)
hipBLAS-common: $(HIPBLAS_COMMON_TAGGED_PIPELINE_ID)
hipBLASLt: $(HIPBLASLT_TAGGED_PIPELINE_ID)
hipCUB: $(HIPCUB_TAGGED_PIPELINE_ID)
hipFFT: $(HIPFFT_TAGGED_PIPELINE_ID)
hipfort: $(HIPFORT_TAGGED_PIPELINE_ID)
HIPIFY: $(HIPIFY_TAGGED_PIPELINE_ID)
hipRAND: $(HIPRAND_TAGGED_PIPELINE_ID)
hipSOLVER: $(HIPSOLVER_TAGGED_PIPELINE_ID)
hipSPARSE: $(HIPSPARSE_TAGGED_PIPELINE_ID)
hipSPARSELt: $(HIPSPARSELT_TAGGED_PIPELINE_ID)
hipTensor: $(HIPTENSOR_TAGGED_PIPELINE_ID)
llvm-project: $(LLVM_PROJECT_TAGGED_PIPELINE_ID)
MIOpen: $(MIOpen_TAGGED_PIPELINE_ID)
MIVisionX: $(MIVISIONX_TAGGED_PIPELINE_ID)
omniperf: $(OMNIPERF_TAGGED_PIPELINE_ID)
omnitrace: $(OMNITRACE_TAGGED_PIPELINE_ID)
rccl: $(RCCL_TAGGED_PIPELINE_ID)
rdc: $(RDC_TAGGED_PIPELINE_ID)
rocAL: $(ROCAL_TAGGED_PIPELINE_ID)
rocALUTION: $(ROCALUTION_TAGGED_PIPELINE_ID)
rocBLAS: $(ROCBLAS_TAGGED_PIPELINE_ID)
ROCdbgapi: $(ROCDBGAPI_TAGGED_PIPELINE_ID)
rocDecode: $(ROCDECODE_TAGGED_PIPELINE_ID)
rocFFT: $(ROCFFT_TAGGED_PIPELINE_ID)
ROCgdb: $(ROCGDB_TAGGED_PIPELINE_ID)
rocm-cmake: $(ROCM_CMAKE_TAGGED_PIPELINE_ID)
rocm-core: $(ROCM_CORE_TAGGED_PIPELINE_ID)
rocm-examples: $(ROCM_EXAMPLES_TAGGED_PIPELINE_ID)
rocminfo: $(ROCMINFO_TAGGED_PIPELINE_ID)
rocMLIR: $(ROCMLIR_TAGGED_PIPELINE_ID)
ROCmValidationSuite: $(ROCMVALIDATIONSUITE_TAGGED_PIPELINE_ID)
rocm_bandwidth_test: $(ROCM_BANDWIDTH_TEST_TAGGED_PIPELINE_ID)
rocm_smi_lib: $(ROCM_SMI_LIB_TAGGED_PIPELINE_ID)
rocPRIM: $(ROCPRIM_TAGGED_PIPELINE_ID)
rocprofiler-register: $(ROCPROFILER_REGISTER_TAGGED_PIPELINE_ID)
rocprofiler-sdk: $(ROCPROFILER_SDK_TAGGED_PIPELINE_ID)
rocprofiler-systems: $(ROCPROFILER_SYSTEMS_PIPELINE_ID)
rocprofiler: $(ROCPROFILER_TAGGED_PIPELINE_ID)
rocPyDecode: $(ROCPYDECODE_TAGGED_PIPELINE_ID)
ROCR-Runtime: $(ROCR_RUNTIME_TAGGED_PIPELINE_ID)
rocRAND: $(ROCRAND_TAGGED_PIPELINE_ID)
rocr_debug_agent: $(ROCR_DEBUG_AGENT_TAGGED_PIPELINE_ID)
rocSOLVER: $(ROCSOLVER_TAGGED_PIPELINE_ID)
rocSPARSE: $(ROCSPARSE_TAGGED_PIPELINE_ID)
ROCT-Thunk-Interface: $(ROCT_THUNK_INTERFACE_TAGGED_PIPELINE_ID)
rocThrust: $(ROCTHRUST_TAGGED_PIPELINE_ID)
roctracer: $(ROCTRACER_TAGGED_PIPELINE_ID)
rocWMMA: $(ROCWMMA_TAGGED_PIPELINE_ID)
rpp: $(RPP_TAGGED_PIPELINE_ID)
# set to true if you're calling this template file multiple files in same pipeline # set to true if you're calling this template file multiple files in same pipeline
# only leave last call false to optimize sequence # only leave last call false to optimize sequence
- name: skipLibraryLinking - name: skipLibraryLinking
@@ -26,325 +161,51 @@ parameters:
- name: skipLlvmSymlink - name: skipLlvmSymlink
type: boolean type: boolean
default: false default: false
# set to true if dlopen calls for HIP libraries are causing failures # some ROCm components can specify GPU target and this will affect downloads
# because they do not follow shared library symlink convention - name: gpuTarget
- name: setupHIPLibrarySymlinks type: string
type: boolean default: ''
default: false # array of ROCm components that can specify GPU target or have dependency of such a component
# set to true if doing full build of ROCm stack # these components would have parallel build jobs per GPU target so they produce multiple artifacts
# and dependencies are pulled from same pipeline # only download artifact tied to the GPU target
- name: aggregatePipeline - name: componentsWithGPUTarget
type: boolean
default: false
- name: componentVarList
type: object type: object
default: default:
AMDMIGraphX: - AMDMIGraphX
pipelineId: $(AMDMIGRAPHX_PIPELINE_ID) - composable_kernel
stagingBranch: develop - hipBLASLt
mainlineBranch: master - hipCUB
hasGpuTarget: true - hipFFT
amdsmi: - hipRAND
pipelineId: $(AMDSMI_PIPELINE_ID) - hipSPARSELt
stagingBranch: amd-staging - hipTensor
mainlineBranch: amd-mainline - omnitrace
hasGpuTarget: false - rccl
aomp-extras: - rocALUTION
pipelineId: $(AOMP_EXTRAS_PIPELINE_ID) - rocBLAS
stagingBranch: aomp-dev - rocFFT
mainlineBranch: aomp-dev - rocm-examples
hasGpuTarget: false - rocPRIM
aomp: - rocprofiler-sdk
pipelineId: $(AOMP_PIPELINE_ID) - rocprofiler-systems
stagingBranch: aomp-dev - rocprofiler
mainlineBranch: amd-mainline - rocPyDecode
hasGpuTarget: false - rocRAND
clr: - rocSOLVER
pipelineId: $(CLR_PIPELINE_ID) - rocSPARSE
stagingBranch: amd-staging - rocThrust
mainlineBranch: amd-mainline - roctracer
hasGpuTarget: false - rocWMMA
composable_kernel: - rpp
pipelineId: $(COMPOSABLE_KERNEL_PIPELINE_ID) # list below do not have flag for gpu target but have dependencies of components that do, so build separately per gpu target
stagingBranch: develop - hipBLAS
mainlineBranch: mainline - hipSOLVER
hasGpuTarget: true - hipSPARSE
half: - MIOpen
pipelineId: $(HALF_PIPELINE_ID) - MIVision
stagingBranch: rocm - omniperf
mainlineBranch: rocm - rocAL
hasGpuTarget: false - ROCmValidationSuite
HIP:
pipelineId: $(HIP_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
hip-tests:
pipelineId: $(HIP_TESTS_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
hipBLAS:
pipelineId: $(HIPBLAS_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipBLASLt:
pipelineId: $(HIPBLASLT_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipBLAS-common:
pipelineId: $(HIPBLAS_COMMON_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
hipCUB:
pipelineId: $(HIPCUB_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipFFT:
pipelineId: $(HIPFFT_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipfort:
pipelineId: $(HIPFORT_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
HIPIFY:
pipelineId: $(HIPIFY_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
hipRAND:
pipelineId: $(HIPRAND_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipSOLVER:
pipelineId: $(HIPSOLVER_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipSPARSE:
pipelineId: $(HIPSPARSE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipSPARSELt:
pipelineId: $(HIPSPARSELT_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
hipTensor:
pipelineId: $(HIPTENSOR_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
llvm-project:
pipelineId: $(LLVM_PROJECT_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
MIOpen:
pipelineId: $(MIOpen_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: amd-master
hasGpuTarget: true
MIVisionX:
pipelineId: $(MIVISIONX_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: master
hasGpuTarget: true
omnitrace: # deprecated
pipelineId: $(OMNITRACE_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: true
rccl:
pipelineId: $(RCCL_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rdc:
pipelineId: $(RDC_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocAL:
pipelineId: $(ROCAL_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rocALUTION:
pipelineId: $(ROCALUTION_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rocBLAS:
pipelineId: $(ROCBLAS_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
ROCdbgapi:
pipelineId: $(ROCDBGAPI_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocDecode:
pipelineId: $(ROCDECODE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
rocFFT:
pipelineId: $(ROCFFT_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
ROCgdb:
pipelineId: $(ROCGDB_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline-rocgdb-15
hasGpuTarget: false
rocJPEG:
pipelineId: $(ROCJPEG_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
rocm-cmake:
pipelineId: $(ROCM_CMAKE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
rocm-core:
pipelineId: $(ROCM_CORE_PIPELINE_ID)
stagingBranch: master
mainlineBranch: amd-master
hasGpuTarget: false
rocm-examples:
pipelineId: $(ROCM_EXAMPLES_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: true
rocminfo:
pipelineId: $(ROCMINFO_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocMLIR:
pipelineId: $(ROCMLIR_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: false
ROCmValidationSuite:
pipelineId: $(ROCMVALIDATIONSUITE_PIPELINE_ID)
stagingBranch: master
mainlineBranch: master
hasGpuTarget: true
rocm_bandwidth_test:
pipelineId: $(ROCM_BANDWIDTH_TEST_PIPELINE_ID)
stagingBranch: master
mainlineBranch: master
hasGpuTarget: false
rocm_smi_lib:
pipelineId: $(ROCM_SMI_LIB_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocPRIM:
pipelineId: $(ROCPRIM_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rocprofiler:
pipelineId: $(ROCPROFILER_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-master
hasGpuTarget: true
rocprofiler-compute:
pipelineId: $(ROCPROFILER_COMPUTE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: amd-mainline
hasGpuTarget: true
rocprofiler-register:
pipelineId: $(ROCPROFILER_REGISTER_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocprofiler-sdk:
pipelineId: $(ROCPROFILER_SDK_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: true
rocprofiler-systems:
pipelineId: $(ROCPROFILER_SYSTEMS_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: true
rocPyDecode:
pipelineId: $(ROCPYDECODE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
ROCR-Runtime:
pipelineId: $(ROCR_RUNTIME_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocRAND:
pipelineId: $(ROCRAND_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rocr_debug_agent:
pipelineId: $(ROCR_DEBUG_AGENT_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: false
rocSOLVER:
pipelineId: $(ROCSOLVER_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rocSPARSE:
pipelineId: $(ROCSPARSE_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
ROCT-Thunk-Interface: # deprecated
pipelineId: $(ROCT_THUNK_INTERFACE_PIPELINE_ID)
stagingBranch: master
mainlineBranch: master
hasGpuTarget: false
rocThrust:
pipelineId: $(ROCTHRUST_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
roctracer:
pipelineId: $(ROCTRACER_PIPELINE_ID)
stagingBranch: amd-staging
mainlineBranch: amd-mainline
hasGpuTarget: true
rocWMMA:
pipelineId: $(ROCWMMA_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
rpp:
pipelineId: $(RPP_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
TransferBench:
pipelineId: $(TRANSFERBENCH_PIPELINE_ID)
stagingBranch: develop
mainlineBranch: mainline
hasGpuTarget: true
steps: steps:
# assuming artifact-download.yml template file in same directory # assuming artifact-download.yml template file in same directory
@@ -358,61 +219,47 @@ steps:
- template: artifact-download.yml - template: artifact-download.yml
parameters: parameters:
componentName: ${{ split(dependency, ':')[0] }} componentName: ${{ split(dependency, ':')[0] }}
pipelineId: ${{ parameters.componentVarList[split(dependency, ':')[0]].pipelineId }} extractToMnt: ${{ parameters.extractToMnt }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} ${{ if eq(parameters.dependencySource, 'staging') }}:
${{ if parameters.componentVarList[split(dependency, ':')[0]].hasGpuTarget }}: pipelineId: ${{ parameters.stagingPipelineIdentifiers[ split(dependency, ':')[0] ] }}
latestFromBranch: ${{ parameters.latestFromBranch }}
${{ elseif eq(parameters.dependencySource, 'mainline') }}:
pipelineId: ${{ parameters.stagingPipelineIdentifiers[ split(dependency, ':')[0] ] }}
useMainlineBranch: true
latestFromBranch: ${{ parameters.latestFromBranch }}
${{ elseif eq(parameters.dependencySource, 'tag-builds') }}:
pipelineId: ${{ parameters.taggedPipelineIdentifiers[ split(dependency, ':')[0] ] }}
latestFromBranch: false
${{ if containsValue( parameters.componentsWithGPUTarget, split(dependency, ':')[0] ) }}:
fileFilter: "${{ split(dependency, ':')[1] }}*${{ parameters.gpuTarget }}" fileFilter: "${{ split(dependency, ':')[1] }}*${{ parameters.gpuTarget }}"
# dependencySource = staging
${{ if eq(parameters.dependencySource, 'staging')}}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].stagingBranch }}
# dependencySource = mainline
${{ elseif eq(parameters.dependencySource, 'mainline')}}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].mainlineBranch }}
# checkoutRef = staging
${{ elseif eq(parameters.checkoutRef, parameters.componentVarList[variables['Build.DefinitionName']].stagingBranch) }}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].stagingBranch }}
# checkoutRef = mainline
${{ elseif eq(parameters.checkoutRef, parameters.componentVarList[variables['Build.DefinitionName']].mainlineBranch) }}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].mainlineBranch }}
# SourceBranchName = staging
${{ elseif eq(variables['Build.SourceBranchName'], parameters.componentVarlist[variables['Build.DefinitionName']].stagingBranch) }}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].stagingBranch }}
# SourceBranchName = mainline
${{ elseif eq(variables['Build.SourceBranchName'], parameters.componentVarlist[variables['Build.DefinitionName']].mainlineBranch) }}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].mainlineBranch }}
# default = staging
${{ else }}: ${{ else }}:
branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].stagingBranch }} fileFilter: ${{ split(dependency, ':')[1] }}
# no colon (:) found in this item in the list # no colon (:) found in this item in the list
- ${{ else }}: - ${{ else }}:
- template: artifact-download.yml - template: artifact-download.yml
parameters: parameters:
componentName: ${{ dependency }} componentName: ${{ dependency }}
pipelineId: ${{ parameters.componentVarList[dependency].pipelineId }} extractToMnt: ${{ parameters.extractToMnt }}
aggregatePipeline: ${{ parameters.aggregatePipeline }} ${{ if eq(parameters.dependencySource, 'staging') }}:
${{ if parameters.componentVarList[dependency].hasGpuTarget }}: pipelineId: ${{ parameters.stagingPipelineIdentifiers[dependency] }}
latestFromBranch: ${{ parameters.latestFromBranch }}
${{ elseif eq(parameters.dependencySource, 'mainline') }}:
pipelineId: ${{ parameters.stagingPipelineIdentifiers[dependency] }}
useMainlineBranch: true
latestFromBranch: ${{ parameters.latestFromBranch }}
${{ elseif eq(parameters.dependencySource, 'tag-builds') }}:
pipelineId: ${{ parameters.taggedPipelineIdentifiers[dependency] }}
latestFromBranch: false
${{ if containsValue( parameters.componentsWithGPUTarget, dependency ) }}:
fileFilter: ${{ parameters.gpuTarget }} fileFilter: ${{ parameters.gpuTarget }}
# dependencySource = staging # fixed case only accepts one component at a time, so no array input
${{ if eq(parameters.dependencySource, 'staging')}}: - ${{ if eq(parameters.dependencySource, 'fixed') }}:
branchName: ${{ parameters.componentVarList[dependency].stagingBranch }} - template: artifact-download.yml
# dependencySource = mainline parameters:
${{ elseif eq(parameters.dependencySource, 'mainline')}}: componentName: ${{ parameters.fixedComponentName }}
branchName: ${{ parameters.componentVarList[dependency].mainlineBranch }} pipelineId: ${{ parameters.fixedPipelineIdentifier }}
# checkoutRef = staging latestFromBranch: false
${{ elseif eq(parameters.checkoutRef, parameters.componentVarList[variables['Build.DefinitionName']].stagingBranch) }}: extractToMnt: ${{ parameters.extractToMnt }}
branchName: ${{ parameters.componentVarList[dependency].stagingBranch }}
# checkoutRef = mainline
${{ elseif eq(parameters.checkoutRef, parameters.componentVarList[variables['Build.DefinitionName']].mainlineBranch) }}:
branchName: ${{ parameters.componentVarList[dependency].mainlineBranch }}
# SourceBranchName = staging
${{ elseif eq(variables['Build.SourceBranchName'], parameters.componentVarlist[variables['Build.DefinitionName']].stagingBranch) }}:
branchName: ${{ parameters.componentVarList[dependency].stagingBranch }}
# SourceBranchName = mainline
${{ elseif eq(variables['Build.SourceBranchName'], parameters.componentVarlist[variables['Build.DefinitionName']].mainlineBranch) }}:
branchName: ${{ parameters.componentVarList[dependency].mainlineBranch }}
# default = staging
${{ else }}:
branchName: ${{ parameters.componentVarList[dependency].stagingBranch }}
# Set link to redirect llvm folder # Set link to redirect llvm folder
- ${{ if eq(parameters.skipLlvmSymlink, false) }}: - ${{ if eq(parameters.skipLlvmSymlink, false) }}:
- task: Bash@3 - task: Bash@3
@@ -428,51 +275,31 @@ steps:
for file in amdclang amdclang++ amdclang-cl amdclang-cpp amdflang amdlld aompcc mygpu mycpu offload-arch; do for file in amdclang amdclang++ amdclang-cl amdclang-cpp amdflang amdlld aompcc mygpu mycpu offload-arch; do
sudo ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/$file $(Agent.BuildDirectory)/rocm/bin/$file sudo ln -s $(Agent.BuildDirectory)/rocm/llvm/bin/$file $(Agent.BuildDirectory)/rocm/bin/$file
done done
# dlopen calls within a ctest or pytest sequence runs into issues when shared library symlink convention is not followed
# the convention is as follows:
# unversioned .so is a symlink to major version .so
# major version .so is a symlink to detailed version .so
# HIP libraries do not follow this convention, and each .so is a copy of each other
# changing the library structure to follow the symlink convention resolves some test failures
- ${{ if eq(parameters.setupHIPLibrarySymlinks, true) }}:
- task: Bash@3
displayName: Setup symlinks for hip libraries
inputs:
targetType: inline
workingDirectory: $(Agent.BuildDirectory)/rocm/lib
script: |
LIBRARIES=("libamdhip64" "libhiprtc-builtins" "libhiprtc")
for LIB_NAME in "${LIBRARIES[@]}"; do
VERSIONED_SO=$(ls ${LIB_NAME}.so.* 2>/dev/null | grep -E "${LIB_NAME}\.so\.[0-9]+\.[0-9]+\.[0-9]+(-.*)?" | sort -V | tail -n 1)
if [[ -z "$VERSIONED_SO" ]]; then
continue
fi
MAJOR_VERSION=$(echo "$VERSIONED_SO" | grep -oP "${LIB_NAME}\.so\.\K[0-9]+")
if [[ -e "${LIB_NAME}.so.${MAJOR_VERSION}" && ! -L "${LIB_NAME}.so.${MAJOR_VERSION}" ]]; then
rm -f "${LIB_NAME}.so.${MAJOR_VERSION}"
fi
if [[ -e "${LIB_NAME}.so" && ! -L "${LIB_NAME}.so" ]]; then
rm -f "${LIB_NAME}.so"
fi
ln -sf "$VERSIONED_SO" "${LIB_NAME}.so.${MAJOR_VERSION}"
ln -sf "${LIB_NAME}.so.${MAJOR_VERSION}" "${LIB_NAME}.so"
echo "Symlinks created for $LIB_NAME:"
ls -l ${LIB_NAME}.so*
done
- task: Bash@3 - task: Bash@3
displayName: 'List downloaded ROCm files' displayName: 'List downloaded ROCm files'
inputs: inputs:
targetType: inline targetType: inline
script: ls -la1R $(Agent.BuildDirectory)/rocm ${{ if eq(parameters.extractToMnt, true) }}:
script: ls -1R /mnt/rocm
${{ else }}:
script: ls -1R $(Agent.BuildDirectory)/rocm
- ${{ if eq(parameters.skipLibraryLinking, false) }}: - ${{ if eq(parameters.skipLibraryLinking, false) }}:
- task: Bash@3 - task: Bash@3
displayName: 'Link ROCm shared libraries' displayName: 'Link ROCm shared libraries'
inputs: inputs:
targetType: inline targetType: inline
# OS ignores if the ROCm lib folder shows up more than once # OS ignores if the ROCm lib folder shows up more than once
script: | ${{ if eq(parameters.extractToMnt, true) }}:
echo $(Agent.BuildDirectory)/rocm/lib | sudo tee /etc/ld.so.conf.d/rocm-ci.conf script: |
echo $(Agent.BuildDirectory)/rocm/llvm/lib | sudo tee -a /etc/ld.so.conf.d/rocm-ci.conf echo /mnt/rocm/lib | sudo tee /etc/ld.so.conf.d/rocm-ci.conf
sudo cat /etc/ld.so.conf.d/rocm-ci.conf echo /mnt/rocm/llvm/lib | sudo tee -a /etc/ld.so.conf.d/rocm-ci.conf
sudo ldconfig -v sudo cat /etc/ld.so.conf.d/rocm-ci.conf
ldconfig -p sudo ldconfig -v
ldconfig -p
${{ else }}:
script: |
echo $(Agent.BuildDirectory)/rocm/lib | sudo tee /etc/ld.so.conf.d/rocm-ci.conf
echo $(Agent.BuildDirectory)/rocm/llvm/lib | sudo tee -a /etc/ld.so.conf.d/rocm-ci.conf
sudo cat /etc/ld.so.conf.d/rocm-ci.conf
sudo ldconfig -v
ldconfig -p

View File

@@ -1,82 +0,0 @@
# This template creates and uploads a Docker image from the current environment
# It uses `docker commit` to do so, which can provide more accurate images than the standard template
# It requires the following conditions:
# - Job must be run inside a Docker container
# - The container's external name must be the same as the container's internal hostname
# - Docker must be installed inside said container and given sufficient permissions
# Currently, it is only usable for test jobs run on our self-managed systems
# Jobs run on Azure VMs will not be able to use this template (most if not all build jobs)
parameters:
- name: gpuTarget
type: string
default: ''
- name: environment
type: string
default: build
values:
- build
- test
- combined
- amd
- nvidia
- name: extraPaths
type: string
default: ''
- name: extraEnvVars
type: object
default: []
- name: forceDockerCreation
type: boolean
default: false
steps:
- task: Bash@3
displayName: Commit container and initialize Dockerfile
condition: or(and(failed(), not(contains(variables['DOCKER_SKIP_GFX'], variables['JOB_GPU_TARGET']))), ${{ eq(parameters.forceDockerCreation, true) }})
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
docker commit $(hostname) az-ci-temp-image:latest
echo "FROM az-ci-temp-image:latest" > Dockerfile
echo "RUN sudo groupmod -g $(getent group render | awk -F: '{print $3}') render" >> Dockerfile
echo "RUN sudo groupmod -g $(getent group docker | awk -F: '{print $3}') docker" >> Dockerfile
echo "ENV PATH='$PATH:${{ parameters.extraPaths }}'" >> Dockerfile
echo "ENTRYPOINT [\"/bin/bash\"]" >> Dockerfile
- ${{ each extraEnvVar in parameters.extraEnvVars }}:
- task: Bash@3
displayName: Add extra environment variables
condition: or(and(failed(), not(contains(variables['DOCKER_SKIP_GFX'], variables['JOB_GPU_TARGET']))), ${{ eq(parameters.forceDockerCreation, true) }})
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "ENV ${{ split(extraEnvVar, ':::')[0] }}='${{ split(extraEnvVar, ':::')[1] }}'" >> Dockerfile
- task: Bash@3
displayName: Print Dockerfile
condition: or(and(failed(), not(contains(variables['DOCKER_SKIP_GFX'], variables['JOB_GPU_TARGET']))), ${{ eq(parameters.forceDockerCreation, true) }})
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: cat Dockerfile
- task: Docker@2
displayName: Build and upload Docker image
condition: or(and(failed(), not(contains(variables['DOCKER_SKIP_GFX'], variables['JOB_GPU_TARGET']))), ${{ eq(parameters.forceDockerCreation, true) }})
inputs:
containerRegistry: 'ContainerService3'
${{ if ne(parameters.gpuTarget, '') }}:
repository: '$(Build.DefinitionName)-${{ parameters.environment }}-${{ parameters.gpuTarget }}'
${{ else }}:
repository: '$(Build.DefinitionName)-${{ parameters.environment }}'
Dockerfile: '$(Pipeline.Workspace)/Dockerfile'
buildContext: '$(Pipeline.Workspace)'
- task: Bash@3
condition: or(and(failed(), not(contains(variables['DOCKER_SKIP_GFX'], variables['JOB_GPU_TARGET']))), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: "!! Docker Image URL !!"
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
${{ if ne(parameters.gpuTarget, '') }}:
script: echo "rocmexternalcicd.azurecr.io/$(Build.DefinitionName)-${{ parameters.environment }}-${{ parameters.gpuTarget }}:$(Build.BuildId)" | tr '[:upper:]' '[:lower:]'
${{ else }}:
script: echo "rocmexternalcicd.azurecr.io/$(Build.DefinitionName)-${{ parameters.environment }}:$(Build.BuildId)" | tr '[:upper:]' '[:lower:]'

View File

@@ -1,354 +0,0 @@
parameters:
# this base set of packages should not be changed by calling script
# should be common across all pipelines
- name: baseAptPackages
type: object
default:
- build-essential
- ca-certificates
- curl
- file
- git
- gcc
- g++
- gpg
- kmod
- libdrm-dev
- libelf-dev
- libgtest-dev
- libhsakmt-dev
- libhwloc-dev
- libnuma-dev
- libstdc++-12-dev
- libtbb-dev
- lsb-release
- lsof
- ninja-build
- pkg-config
- python3-dev
- python3-pip
- wget
- zip
# optional array of additional apt packages to install
- name: aptPackages
type: object
default: []
# optional array of python modules to install
- name: pipModules
type: object
default: []
# optional array of workspace directories to install
# sources, binaries, and rocm directories are copied by default
- name: extraCopyDirectories
type: object
default: []
# optional string to specify gpuTarget for the docker image string
- name: gpuTarget
type: string
default: ''
# test environment involves gpu-related steps
# some jobs combine both build and test
# some jobs differentiate based on gpu vendor
- name: environment
type: string
default: build
values:
- build
- test
- combined
- amd
- nvidia
# optional boolean prerequisites before install extra apt packages
- name: registerROCmPackages
type: boolean
default: false
- name: registerCUDAPackages
type: boolean
default: false
- name: registerJPEGPackages
type: boolean
default: false
# optional boolean for special setup steps to accomodate some components
- name: installLatestCMake
type: boolean
default: false
- name: installAOCL
type: boolean
default: false
- name: aoclRepositoryUrl
type: string
default: https://download.amd.com/developer/eula/aocl/aocl-4-2
- name: aoclPackageName
type: string
default: aocl-linux-gcc-4.2.0_1_amd64.deb
- name: optSymLink
type: boolean
default: false
- name: pythonEnvVars
type: boolean
default: false
# optional string to add to PATH
- name: extraPaths
type: string
default: ''
# optional array of environment variables to set
# each array element expected to be in format of
# key:value
- name: extraEnvVars
type: object
default: []
# force the docker to be created, regardless of failure condition
- name: forceDockerCreation
type: boolean
default: false
- name: dockerSkipGfx
type: object
default:
- gfx90a
- gfx942
steps:
# these steps should only be run if there was a failure or warning
# dynamically write to a Dockerfile
# first is to do base setup of users, groups
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Create start of Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "FROM ubuntu:22.04" > Dockerfile
echo "ARG USERNAME=user" >> Dockerfile
echo "ARG USER_UID=1000" >> Dockerfile
echo "ARG USER_GID=\$USER_UID" >> Dockerfile
echo "RUN groupadd --gid \$USER_GID \$USERNAME" >> Dockerfile
echo "RUN useradd --uid \$USER_UID --gid \$USER_GID -m \$USERNAME" >> Dockerfile
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update" >> Dockerfile
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes install sudo" >> Dockerfile
echo "RUN echo \$USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/\$USERNAME" >> Dockerfile
echo "RUN chmod 0440 /etc/sudoers.d/\$USERNAME" >> Dockerfile
# for test jobs, setup GPU-related users and group
- ${{ if eq(parameters.environment, 'test') }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: GPU setup of Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN groupadd render" >> Dockerfile
echo "RUN usermod -aG render,video \$USERNAME" >> Dockerfile
# now install a common set of packages through apt
- ${{ if gt(length(parameters.baseAptPackages), 0) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Base Apt Packages to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes install ${{ join(' ', parameters.baseAptPackages) }}" >> Dockerfile
# iterate through possible apt repos that might need to be added to the docker container
- ${{ if eq(parameters.registerROCmPackages, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Register ROCm packages to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN mkdir --parents --mode=0755 /etc/apt/keyrings" >> Dockerfile
echo "RUN wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null" >> Dockerfile
echo "RUN echo \"deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$(REPO_RADEON_VERSION)/ubuntu jammy main\" | tee /etc/apt/sources.list.d/amdgpu.list" >> Dockerfile
echo "RUN echo \"deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$(REPO_RADEON_VERSION) jammy main\" | tee --append /etc/apt/sources.list.d/rocm.list" >> Dockerfile
echo "RUN printf 'Package: *\\nPin: release o=repo.radeon.com\\nPin-Priority: 600' > /etc/apt/preferences.d/rocm-pin-600" >> Dockerfile
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update" >> Dockerfile
- ${{ if eq(parameters.registerCUDAPackages, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Register CUDA packages to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb" >> Dockerfile
echo "RUN dpkg -i cuda-keyring_1.1-1_all.deb" >> Dockerfile
echo "RUN rm -f cuda-keyring_1.1-1_all.deb" >> Dockerfile
echo 'RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update' >> Dockerfile
- ${{ if eq(parameters.registerJPEGPackages, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Register libjpeg-turbo packages to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN mkdir --parents --mode=0755 /etc/apt/keyrings" >> Dockerfile
echo "RUN wget https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey -O - | gpg --dearmor | tee /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg > /dev/null" >> Dockerfile
echo "RUN 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" >> Dockerfile
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update" >> Dockerfile
# install AOCL to docker container, if needed
- ${{ if eq(parameters.installAOCL, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: aocl install to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN wget -nv ${{ parameters.aoclRepositoryUrl }}/${{ parameters.aoclPackageName }}" >> Dockerfile
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes install ./${{ parameters.aoclPackageName }}" >> Dockerfile
echo "RUN rm -f ${{ parameters.aoclPackageName }}" >> Dockerfile
# since apt repo list is updated, install the extra apt packages
- ${{ if gt(length(parameters.aptPackages), 0) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Extra Apt Packages to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes install ${{ join(' ', parameters.aptPackages) }}" >> Dockerfile
# install latest cmake to docker container, if needed
- ${{ if eq(parameters.installLatestCMake, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: latest cmake install to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "RUN DEBIAN_FRONTEND=noninteractive apt-get --yes purge cmake" >> Dockerfile
echo "RUN pip install cmake --upgrade" >> Dockerfile
# setup workspace where binaries, sources, and dependencies from the job will be copied to
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Workspace setup of Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "USER \$USERNAME" >> Dockerfile
echo "WORKDIR /home/user" >> Dockerfile
echo "RUN mkdir -p /home/user/workspace" >> Dockerfile
# pip install is done here as non-root
- ${{ if gt(length(parameters.pipModules), 0) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Extra Python Modules to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "RUN pip install -v ${{ join(' ', parameters.pipModules) }}" >> Dockerfile
# copy common directories
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Copy base directories to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
if [ -d "$(Agent.BuildDirectory)/rocm" ]; then
echo "COPY rocm /home/user/workspace/rocm" >> Dockerfile
fi
if [ -d "$(Build.SourcesDirectory)" ] && [ "$(Build.SourcesDirectory)" != "" ]; then
echo "COPY s /home/user/workspace/src" >> Dockerfile
fi
if [ -d "$(Build.BinariesDirectory)" ] && [ "$(Build.BinariesDirectory)" != "" ]; then
echo "COPY b /home/user/workspace/bin" >> Dockerfile
fi
# copy extra directories, if applicable to the job
- ${{ each extraCopyDirectory in parameters.extraCopyDirectories }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Copy ${{ extraCopyDirectory }} to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
if [ -d "${{ extraCopyDirectory }}" ]; then
echo "COPY ${{ extraCopyDirectory }} /home/user/workspace/${{ extraCopyDirectory }}" >> Dockerfile
fi
# setup ldconfig
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: ldconfig to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "USER root" >> Dockerfile
echo "RUN echo /home/user/workspace/rocm/lib | tee /etc/ld.so.conf.d/rocm-ci.conf" >> Dockerfile
echo "RUN echo /home/user/workspace/rocm/llvm/lib | tee -a /etc/ld.so.conf.d/rocm-ci.conf" >> Dockerfile
echo "RUN cat /etc/ld.so.conf.d/rocm-ci.conf" >> Dockerfile
echo "RUN ldconfig -v" >> Dockerfile
# create /opt/rocm symbolic link, if needed
- ${{ if eq(parameters.optSymLink, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: /opt/rocm symbolic link to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "USER root" >> Dockerfile
echo "RUN ln -s /home/user/workspace/rocm /opt/rocm" >> Dockerfile
# set environment variables needed for some python-based components
- ${{ if eq(parameters.pythonEnvVars, true) }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: python environment variables
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "USER root" >> Dockerfile
echo "ENV PYTHON_USER_SITE=$(python3 -m site --user-site)" >> Dockerfile
echo "ENV PYTHON_DIST_PACKAGES=$(python3 -c 'import sysconfig; print(sysconfig.get_paths()[\"purelib\"])')" >> Dockerfile
echo "ENV PYBIND11_PATH=$(python3 -c 'import pybind11; print(pybind11.get_cmake_dir())')" >> Dockerfile
# add to PATH environment variable
- ${{ if ne(parameters.extraPaths, '') }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Add to PATH in Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "ENV PATH='$PATH:${{ parameters.extraPaths }}'" >> Dockerfile
# set extra environment variables, if applicable to the job
# use ::: as delimiter to allow for colons to be in the environment variable values
- ${{ each extraEnvVar in parameters.extraEnvVars }}:
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Set ${{ extraEnvVar }} to Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: echo "ENV ${{ split(extraEnvVar, ':::')[0] }}='${{ split(extraEnvVar, ':::')[1] }}'" >> Dockerfile
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: Print Dockerfile
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: cat Dockerfile
- task: Docker@2
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
inputs:
containerRegistry: 'ContainerService3'
${{ if ne(parameters.gpuTarget, '') }}:
repository: '$(Build.DefinitionName)-${{ parameters.environment }}-${{ parameters.gpuTarget }}'
${{ else }}:
repository: '$(Build.DefinitionName)-${{ parameters.environment }}'
Dockerfile: '$(Pipeline.Workspace)/Dockerfile'
buildContext: '$(Pipeline.Workspace)'
- task: Bash@3
condition: or(and(failed(), ${{ not(containsValue(parameters.dockerSkipGfx, parameters.gpuTarget)) }}), ${{ eq(parameters.forceDockerCreation, true) }})
displayName: "!! Docker Image URL !!"
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
${{ if ne(parameters.gpuTarget, '') }}:
script: echo "rocmexternalcicd.azurecr.io/$(Build.DefinitionName)-${{ parameters.environment }}-${{ parameters.gpuTarget }}:$(Build.BuildId)" | tr '[:upper:]' '[:lower:]'
${{ else }}:
script: echo "rocmexternalcicd.azurecr.io/$(Build.DefinitionName)-${{ parameters.environment }}:$(Build.BuildId)" | tr '[:upper:]' '[:lower:]'

View File

@@ -1,34 +0,0 @@
parameters:
- name: repoName
type: string
default: ''
- name: eventType
type: string
default: ''
- name: azureBuildNumber
type: string
default: ''
- name: githubActionsToken
type: string
default: ''
steps:
- task: Bash@3
name: ghActionsPost
displayName: Post a request to a github repository with a repository_dispatch workflow
continueOnError: true
inputs:
targetType: inline
workingDirectory: $(Build.SourcesDirectory)
script: |
curl -L -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ parameters.githubActionsToken }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{ parameters.repoName }}/dispatches \
-d '{
"event_type": "${{ parameters.eventType }}",
"client_payload": {
"azure-job-id": "${{ parameters.azureBuildNumber }}"
}
}'

View File

@@ -11,44 +11,44 @@ steps:
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: $(Agent.BuildDirectory)/rocm/bin/rocminfo || true script: $(Agent.BuildDirectory)/rocm/bin/rocminfo
- task: Bash@3 - task: Bash@3
displayName: 'rocm_agent_enumerator' displayName: 'rocm_agent_enumerator'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator || true script: $(Agent.BuildDirectory)/rocm/bin/rocm_agent_enumerator
- task: Bash@3 - task: Bash@3
displayName: 'List DRI devices' displayName: 'List DRI devices'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: ls -la /dev/dri/ || true script: ls -la /dev/dri/by-path/
- task: Bash@3 - task: Bash@3
displayName: 'List amdgpu/rocm/mesa packages' displayName: 'List amdgpu/rocm/mesa packages'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: apt list --installed | grep -E 'amdgpu|rocm|mesa' || true script: apt list --installed | grep -E 'amdgpu|rocm|mesa'
- task: Bash@3 - task: Bash@3
displayName: 'List GPU processes' displayName: 'List GPU processes'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
ls /sys/class/kfd/kfd/proc/ || true ls /sys/class/kfd/kfd/proc/
sudo lsof | grep amdgpu || true sudo lsof | grep amdgpu
- task: Bash@3 - task: Bash@3
displayName: 'System snapshot' displayName: 'System snapshot'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: top -bn1 || true script: top -bn1
- task: Bash@3 - task: Bash@3
displayName: 'List dmesg' displayName: 'List dmesg'
continueOnError: true continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: | script: |
echo 'rocm-ci: $(Build.DefinitionName) $(System.DefinitionId)' | sudo tee /dev/kmsg || true echo 'rocm-ci: $(Build.DefinitionName) $(System.DefinitionId)' | sudo tee /dev/kmsg
sudo dmesg || true sudo dmesg

View File

@@ -1,16 +1,7 @@
# The default behaviour of this template is to download artifacts from previous jobs in the current pipeline
# It can be overridden to download any artifact from any pipeline, given the appropriate build/pipeline IDs
parameters: parameters:
- name: gpuTarget - name: gpuTarget
type: string type: string
default: '' default: ''
- name: preTargetFilter
type: string
default: ''
- name: postTargetFilter
type: string
default: ''
# Set buildType to specific to download artifacts from previous builds, useful for saving time when debugging # Set buildType to specific to download artifacts from previous builds, useful for saving time when debugging
- name: buildType - name: buildType
type: string type: string
@@ -18,8 +9,8 @@ parameters:
values: values:
- current - current
- specific - specific
# One of the below params must be set if buildType == specific # Must be set if buildType == specific
# Set definitionId to the pipeline ID or buildId to the specific build ID # Set definitionId to the pipeline ID and buildId to the specific build ID
- name: definitionId - name: definitionId
type: string type: string
default: 0 default: 0
@@ -37,18 +28,18 @@ steps:
project: ROCm-CI project: ROCm-CI
definition: ${{ parameters.definitionId }} definition: ${{ parameters.definitionId }}
buildId: ${{ parameters.buildId }} buildId: ${{ parameters.buildId }}
itemPattern: '**/*${{ parameters.preTargetFilter }}*${{ parameters.gpuTarget }}*${{ parameters.postTargetFilter }}*' itemPattern: '**/*${{ parameters.gpuTarget }}*'
targetPath: $(Pipeline.Workspace)/d targetPath: $(System.ArtifactsDirectory)
- task: ExtractFiles@1 - task: ExtractFiles@1
displayName: 'Extract Pipeline Build' displayName: 'Extract Pipeline Build'
inputs: inputs:
archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz' archiveFilePatterns: '$(System.ArtifactsDirectory)/**/*.tar.gz'
destinationFolder: '$(Agent.BuildDirectory)/rocm' destinationFolder: '$(Agent.BuildDirectory)/rocm'
cleanDestinationFolder: false cleanDestinationFolder: false
overwriteExistingFiles: true overwriteExistingFiles: true
- task: DeleteFiles@1 - task: DeleteFiles@1
displayName: 'Clean up Compressed Pipeline Build' displayName: 'Clean up Compressed Pipeline Build'
inputs: inputs:
SourceFolder: '$(Pipeline.Workspace)/d' SourceFolder: '$(System.ArtifactsDirectory)'
Contents: '/**/*.tar.xz' Contents: '/**/*.tar.xz'
RemoveDotFiles: true RemoveDotFiles: true

View File

@@ -1,161 +0,0 @@
parameters:
- name: artifactName
type: string
default: 'drop'
- name: gpuTarget
type: string
default: ''
steps:
- task: Bash@3
displayName: Create manifest.json
condition: always()
continueOnError: true
inputs:
targetType: inline
script: |
sudo apt-get install -y jq
# RESOURCES_REPOSITORIES is a runtime variable (not an env var!) that contains quotations and newlines
# So we need to save it to a file to properly preserve its formatting and contents
cat <<EOF > resources.repositories
$(RESOURCES_REPOSITORIES)
EOF
cat resources.repositories
IS_TAG_BUILD=$(jq 'has("release_repo")' resources.repositories)
IS_AOMP_BUILD=$(jq 'has("aomp_repo")' resources.repositories)
if [ "$IS_TAG_BUILD" = "true" ] || [ "$IS_AOMP_BUILD" = "true" ]; then
exclude_keys=("pipelines_repo" "self") # Triggered by a file under ROCm/ROCm
else
exclude_keys=("pipelines_repo") # Triggered by a file under a component repo
fi
exclude_keys_string=$(printf '"%s", ' "${exclude_keys[@]}")
exclude_keys_string=${exclude_keys_string%, }
current=$(jq --argjson exclude "[$exclude_keys_string]" '
reduce to_entries[] as $entry (
[];
if ($exclude | index($entry.key) | not)
then . + [
{
buildNumber: "$(Build.BuildNumber)",
buildId: "$(Build.BuildId)",
repoId: $entry.value.id,
repoName: $entry.value.name,
repoRef: $entry.value.ref,
repoUrl: $entry.value.url,
repoVersion: $entry.value.version
}
]
else .
end
)
' resources.repositories)
manifest_json=$(Build.ArtifactStagingDirectory)/manifest_$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.json
dependencies=()
for manifest_file in $(Pipeline.Workspace)/d/**/manifest_*.json; do
echo "Processing $manifest_file"
file=$(jq -c '.current | if type=="array" then .[] else . end' "$manifest_file")
while IFS= read -r line; do
dependencies+=("$line")
done <<< "$file"
done
dependencies_json=$(printf '%s\n' "${dependencies[@]}" | jq -s '.')
jq -n \
--argjson current "$current" \
--argjson dependencies "$dependencies_json" \
'{
current: $current,
dependencies: $dependencies
}' > $manifest_json
current_rows=$(cat $manifest_json | \
jq -r '
.current[] |
"<tr><td>" + .buildNumber + "</td>" +
"<td><a href=\"https://dev.azure.com/ROCm-CI/ROCm-CI/_build/results?buildId=" + .buildId + "\">" + .buildId + "</a></td>" +
"<td><a href=\"" + .repoUrl + "\">" + .repoName + "</a></td>" +
"<td><a href=\"" + .repoUrl + "/tree/" + .repoRef + "\">" + .repoRef + "</a></td>" +
"<td><a href=\"" + .repoUrl + "/commit/" + .repoVersion + "\">" + .repoVersion + "</a></td></tr>"
')
current_rows=$(echo $current_rows)
echo "##vso[task.setvariable variable=current_rows;]$current_rows"
dependencies_rows=$(cat $manifest_json | \
jq -r '
.dependencies[] |
"<tr><td>" + .buildNumber + "</td>" +
"<td><a href=\"https://dev.azure.com/ROCm-CI/ROCm-CI/_build/results?buildId=" + .buildId + "\">" + .buildId + "</a></td>" +
"<td><a href=\"" + .repoUrl + "\">" + .repoName + "</a></td>" +
"<td><a href=\"" + .repoUrl + "/tree/" + .repoRef + "\">" + .repoRef + "</a></td>" +
"<td><a href=\"" + .repoUrl + "/commit/" + .repoVersion + "\">" + .repoVersion + "</a></td></tr>"
')
dependencies_rows=$(echo $dependencies_rows)
echo "##vso[task.setvariable variable=dependencies_rows;]$dependencies_rows"
cat $manifest_json
- task: Bash@3
displayName: Create manifest.html
condition: always()
continueOnError: true
inputs:
targetType: inline
script: |
manifest_html=$(Build.ArtifactStagingDirectory)/manifest_$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.html
cat <<EOF > $manifest_html
<html>
<h1>Manifest</h1>
<h2>Current</h2>
<table border="1">
<tr>
<th>Build Number</th>
<th>Build ID</th>
<th>Repo Name</th>
<th>Repo Ref</th>
<th>Repo Version</th>
</tr>
$(current_rows)
</table>
<h2>Dependencies</h2>
<table border="1">
<tr>
<th>Build Number</th>
<th>Build ID</th>
<th>Repo Name</th>
<th>Repo Ref</th>
<th>Repo Version</th>
</tr>
$(dependencies_rows)
</table>
</html>
EOF
sed -i -e 's|</tr> <tr>|</tr>\n<tr>|g' \
-e 's|</td><td>|</td>\n <td>|g' \
-e 's|<tr><td>|<tr>\n <td>|g' \
-e 's|</td></tr>|</td>\n</tr>|g' $manifest_html
cat $manifest_html
- task: PublishHtmlReport@1
displayName: Publish manifest.html
condition: always()
continueOnError: true
inputs:
tabName: Manifest
reportDir: $(Build.ArtifactStagingDirectory)/manifest_$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.html
- task: Bash@3
displayName: Save manifest artifact file name
condition: always()
continueOnError: true
inputs:
workingDirectory: $(Pipeline.Workspace)
targetType: inline
script: |
echo "manifest_$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.html" >> pipelineArtifacts.txt
echo "manifest_$(Build.DefinitionName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.gpuTarget }}_${{ parameters.artifactName }}.json" >> pipelineArtifacts.txt

View File

@@ -1,72 +0,0 @@
parameters:
- name: gpuTarget
type: string
default: ''
steps:
- task: Bash@3
name: downloadCKBuild
displayName: Download specific CK build
continueOnError: true
env:
CXX: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
CC: $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang
inputs:
targetType: inline
workingDirectory: $(Build.SourcesDirectory)
script: |
AZ_API="https://dev.azure.com/ROCm-CI/ROCm-CI/_apis"
GH_API="https://api.github.com/repos/ROCm"
ARTIFACT_NAME="composablekernelbuild${{ parameters.gpuTarget }}"
EXIT_CODE=0
# Try to find an Azure build for the specific CK commit called out in MIOpen's requirements.txt
CK_COMMIT=$(grep 'ROCm/composable_kernel' requirements.txt | sed -E 's/.*@([a-f0-9]{40}).*/\1/')
echo "Fetching CK build ID for commit $CK_COMMIT"
CK_CHECKS_URL="$GH_API/composable_kernel/commits/${CK_COMMIT}/check-runs"
CK_BUILD_ID=$(curl -s $CK_CHECKS_URL | \
jq '.check_runs[] | select(.name == "composable_kernel" and .app.slug == "azure-pipelines") | .details_url' | \
tr -d '"' | grep -oP 'buildId=\K\d+')
# If none found, use latest successful CK build instead
if [[ -z "$CK_BUILD_ID" ]]; then
echo "Did not find specific CK build ID"
LATEST_BUILD_URL="$AZ_API/build/builds?definitions=$(COMPOSABLE_KERNEL_PIPELINE_ID)&statusFilter=completed&resultFilter=succeeded&\$top=1&api-version=7.1"
CK_BUILD_ID=$(curl -s $LATEST_BUILD_URL | jq '.value[0].id')
echo "Found latest CK build ID: $CK_BUILD_ID"
EXIT_CODE=1
else
echo "Found specific CK build ID: $CK_BUILD_ID"
fi
AZURE_URL="$AZ_API/build/builds/$CK_BUILD_ID/artifacts?artifactName=$ARTIFACT_NAME&api-version=7.1"
ARTIFACT_URL=$(curl -s $AZURE_URL | jq '.resource.downloadUrl' | tr -d '"')
# If using the specific CK commit and it doesn't have any valid artifacts, use latest successful CK build instead
if { [[ -z "$ARTIFACT_URL" ]] || [[ "$ARTIFACT_URL" == "null" ]]; } && [[ $EXIT_CODE -eq 0 ]]; then
echo "Did not find valid specific CK build artifact"
LATEST_BUILD_URL="$AZ_API/build/builds?definitions=$(COMPOSABLE_KERNEL_PIPELINE_ID)&statusFilter=completed&resultFilter=succeeded&\$top=1&api-version=7.1"
CK_BUILD_ID=$(curl -s $LATEST_BUILD_URL | jq '.value[0].id')
echo "Found latest CK build ID: $CK_BUILD_ID"
AZURE_URL="$AZ_API/build/builds/$CK_BUILD_ID/artifacts?artifactName=$ARTIFACT_NAME&api-version=7.1"
ARTIFACT_URL=$(curl -s $AZURE_URL | jq '.resource.downloadUrl' | tr -d '"')
EXIT_CODE=2
fi
echo "Downloading CK artifact from $ARTIFACT_URL"
wget --tries=5 --waitretry=10 --retry-connrefused -nv $ARTIFACT_URL -O $(System.ArtifactsDirectory)/ck.zip
unzip $(System.ArtifactsDirectory)/ck.zip -d $(System.ArtifactsDirectory)
mkdir -p $(Agent.BuildDirectory)/rocm
tar -zxvf $(System.ArtifactsDirectory)/$ARTIFACT_NAME/*.tar.gz -C $(Agent.BuildDirectory)/rocm
rm -r $(System.ArtifactsDirectory)/ck.zip $(System.ArtifactsDirectory)/$ARTIFACT_NAME
if [[ $EXIT_CODE -ne 0 ]]; then
BUILD_COMMIT=$(curl -s $AZ_API/build/builds/$CK_BUILD_ID | jq '.sourceVersion' | tr -d '"')
if [[ $EXIT_CODE -eq 1 ]]; then
echo "WARNING: couldn't find a CK build for commit $CK_COMMIT"
elif [[ $EXIT_CODE -eq 2 ]]; then
echo "WARNING: couldn't find a valid CK artifact for commit $CK_COMMIT"
fi
echo "Instead used latest CK build $CK_BUILD_ID for commit $BUILD_COMMIT"
fi
exit $EXIT_CODE

View File

@@ -3,39 +3,17 @@
# also display installed components and packages # also display installed components and packages
steps: steps:
- task: Bash@3 - task: Bash@3
displayName: List apt packages displayName: 'apt installed list'
inputs: inputs:
targetType: inline targetType: inline
script: apt list --installed script: apt list --installed
- task: Bash@3 - task: Bash@3
displayName: Print Python version displayName: 'python version'
inputs: inputs:
targetType: inline targetType: inline
script: python3 --version script: python3 --version
- task: Bash@3 - script: pip list -v
displayName: List Python packages displayName: 'list python packages'
inputs:
targetType: inline
script: pip list -v
# The "Azure Pipelines" agents install CMake in multiple ways, including a standalone install into /usr/local/bin:
# https://github.com/actions/runner-images/blob/6d939a3ab352a54a021dd67b071577287b6f14a5/images/ubuntu/scripts/build/install-cmake.sh#L27
# This standalone CMake does not have a fixed version, and is not the same version as the one installed by the package manager
# We want to use the CMake installed by the package manager, so just remove any bins from the standalone install
- task: Bash@3
displayName: Remove CMake binaries from /usr/local/bin
inputs:
targetType: inline
script: |
sudo rm -f /usr/local/bin/ccmake
sudo rm -f /usr/local/bin/cmake
sudo rm -f /usr/local/bin/cmake-gui
- task: Bash@3
displayName: Print CMake info
inputs:
targetType: inline
script: |
cmake --version
which cmake
- task: DeleteFiles@1 - task: DeleteFiles@1
displayName: 'Cleanup checkout space' displayName: 'Cleanup checkout space'
inputs: inputs:

View File

@@ -10,7 +10,7 @@ parameters:
default: 'ctest' default: 'ctest'
- name: testParameters - name: testParameters
type: string type: string
default: '--output-on-failure --force-new-ctest-process --output-junit test_output.xml' default: '-VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml'
- name: testOutputFile - name: testOutputFile
type: string type: string
default: test_output.xml default: test_output.xml
@@ -26,23 +26,25 @@ parameters:
- name: testPublishResults - name: testPublishResults
type: boolean type: boolean
default: true default: true
- name: allowPartiallySucceededBuilds - name: reloadAMDGPU
type: object type: boolean
default: default: false
- amdsmi
- aomp
- HIPIFY
- MIVisionX
- rocm_smi_lib
- rocprofiler-sdk
- roctracer
steps: steps:
# Avoids occasional AMDGPU driver issues with opening /dev/kfd
- ${{ if parameters.reloadAMDGPU }}:
- task: Bash@3
displayName: Unload and reload AMDGPU
inputs:
targetType: inline
script: |
sudo modprobe -r amdgpu
sudo modprobe amdgpu
# run test, continue on failure to publish results # run test, continue on failure to publish results
# and to publish build artifacts # and to publish build artifacts
- task: Bash@3 - task: Bash@3
displayName: '${{ parameters.componentName }} Test' displayName: '${{ parameters.componentName }} Test'
continueOnError: ${{ containsValue(parameters.allowPartiallySucceededBuilds, parameters.componentName) }} continueOnError: true
inputs: inputs:
targetType: inline targetType: inline
script: ${{ parameters.testExecutable }} ${{ parameters.testParameters }} script: ${{ parameters.testExecutable }} ${{ parameters.testParameters }}
@@ -50,8 +52,8 @@ steps:
- ${{ if parameters.testPublishResults }}: - ${{ if parameters.testPublishResults }}:
- task: PublishTestResults@2 - task: PublishTestResults@2
displayName: '${{ parameters.componentName }} Publish Results' displayName: '${{ parameters.componentName }} Publish Results'
condition: succeededOrFailed()
inputs: inputs:
searchFolder: ${{ parameters.testDir }} searchFolder: ${{ parameters.testDir }}
testResultsFormat: ${{ parameters.testOutputFormat }} testResultsFormat: ${{ parameters.testOutputFormat }}
testResultsFiles: '**/${{ parameters.testOutputFile }}' testResultsFiles: '**/${{ parameters.testOutputFile }}'
condition: succeededOrFailed()

View File

@@ -1,8 +1,6 @@
# specify non-secret global variables reused across pipelines here # specify non-secret global variables reused across pipelines here
variables: variables:
- name: RESOURCES_REPOSITORIES
value: $[ convertToJson(resources.repositories) ]
- name: CI_ROOT_PATH - name: CI_ROOT_PATH
value: /.azuredevops value: /.azuredevops
- name: CI_COMPONENT_PATH - name: CI_COMPONENT_PATH
@@ -27,18 +25,14 @@ variables:
value: rocm-ci_larger_base_disk_pool value: rocm-ci_larger_base_disk_pool
- name: GFX942_TEST_POOL - name: GFX942_TEST_POOL
value: gfx942_test_pool value: gfx942_test_pool
- name: GFX90A_TEST_POOL
value: gfx90a_test_pool
- name: LATEST_RELEASE_VERSION
value: 6.4.0
- name: REPO_RADEON_VERSION
value: 6.4
- name: NEXT_RELEASE_VERSION
value: 6.5.0
- name: LATEST_RELEASE_TAG - name: LATEST_RELEASE_TAG
value: rocm-6.4.0 value: rocm-6.1.0
- name: DOCKER_SKIP_GFX - name: DOCKER_IMAGE_NAME
value: gfx90a value: rocm/dev-ubuntu-22.04
- name: LATEST_DOCKER_VERSION
value: 6.1
- name: KEYRING_VERSION
value: 6.1
- name: AMDMIGRAPHX_GFX942_TEST_PIPELINE_ID - name: AMDMIGRAPHX_GFX942_TEST_PIPELINE_ID
value: 197 value: 197
- name: AMDMIGRAPHX_PIPELINE_ID - name: AMDMIGRAPHX_PIPELINE_ID
@@ -78,9 +72,9 @@ variables:
- name: HALF_TAGGED_PIPELINE_ID - name: HALF_TAGGED_PIPELINE_ID
value: 11 value: 11
- name: HALF560_PIPELINE_ID - name: HALF560_PIPELINE_ID
value: 68 value: 66
- name: HALF560_BUILD_ID - name: HALF560_TAGGED_PIPELINE_ID
value: 621 value: 66
- name: HIP_PIPELINE_ID - name: HIP_PIPELINE_ID
value: 93 value: 93
- name: HIP_TAGGED_PIPELINE_ID - name: HIP_TAGGED_PIPELINE_ID
@@ -155,6 +149,8 @@ variables:
value: 105 value: 105
- name: HIPTENSOR_TAGGED_PIPELINE_ID - name: HIPTENSOR_TAGGED_PIPELINE_ID
value: 56 value: 56
- name: LAST_RELEASE
value: 6.1.0
- name: LLVM_PROJECT_PIPELINE_ID - name: LLVM_PROJECT_PIPELINE_ID
value: 2 value: 2
- name: LLVM_PROJECT_TAGGED_PIPELINE_ID - name: LLVM_PROJECT_TAGGED_PIPELINE_ID
@@ -185,6 +181,10 @@ variables:
value: 100 value: 100
- name: RDC_TAGGED_PIPELINE_ID - name: RDC_TAGGED_PIPELINE_ID
value: 59 value: 59
- name: REIMAGE_ORG
value: AGS-ROCm-CI
- name: REIMAGE_REPO
value: cirrascale-reimage-automation
- name: ROCAL_PIPELINE_ID - name: ROCAL_PIPELINE_ID
value: 151 value: 151
- name: ROCALUTION_GFX942_TEST_PIPELINE_ID - name: ROCALUTION_GFX942_TEST_PIPELINE_ID
@@ -217,10 +217,6 @@ variables:
value: 134 value: 134
- name: ROCGDB_TAGGED_PIPELINE_ID - name: ROCGDB_TAGGED_PIPELINE_ID
value: 50 value: 50
- name: ROCJPEG_PIPELINE_ID
value: 262
- name: ROCJPEG_TAGGED_PIPELINE_ID
value: 263
- name: ROCM_BANDWIDTH_TEST_PIPELINE_ID - name: ROCM_BANDWIDTH_TEST_PIPELINE_ID
value: 88 value: 88
- name: ROCM_BANDWIDTH_TEST_TAGGED_PIPELINE_ID - name: ROCM_BANDWIDTH_TEST_TAGGED_PIPELINE_ID
@@ -263,10 +259,6 @@ variables:
value: 20 value: 20
- name: ROCPROFILER_GFX942_TEST_PIPELINE_ID - name: ROCPROFILER_GFX942_TEST_PIPELINE_ID
value: 190 value: 190
- name: ROCPROFILER_COMPUTE_PIPELINE_ID
value: 257
- name: ROCPROFILER_COMPUTE_TAGGED_PIPELINE_ID
value: 258
- name: ROCPROFILER_REGISTER_PIPELINE_ID - name: ROCPROFILER_REGISTER_PIPELINE_ID
value: 1 value: 1
- name: ROCPROFILER_REGISTER_TAGGED_PIPELINE_ID - name: ROCPROFILER_REGISTER_TAGGED_PIPELINE_ID
@@ -341,9 +333,5 @@ variables:
value: 78 value: 78
- name: RPP_TAGGED_PIPELINE_ID - name: RPP_TAGGED_PIPELINE_ID
value: 39 value: 39
- name: TRANSFERBENCH_PIPELINE_ID
value: 265
- name: TRANSFERBENCH_TAGGED_PIPELINE_ID
value: 266
- name: BOOST_DEPENDENCY_PIPELINE_ID - name: BOOST_DEPENDENCY_PIPELINE_ID
value: 250 value: 250

View File

@@ -2,7 +2,7 @@ name: Issue retrieval
on: on:
issues: issues:
types: [opened, edited] types: [opened]
jobs: jobs:
auto-retrieve: auto-retrieve:
@@ -15,7 +15,7 @@ jobs:
app_id: ${{ secrets.ACTION_APP_ID }} app_id: ${{ secrets.ACTION_APP_ID }}
private_key: ${{ secrets.ACTION_PEM }} private_key: ${{ secrets.ACTION_PEM }}
- name: 'Retrieve Issue' - name: 'Retrieve Issue'
uses: harkgill-amd/rocm_issue_management@main uses: abhimeda/rocm_issue_management@main
with: with:
authentication-token: ${{ steps.generate_token.outputs.token }} authentication-token: ${{ steps.generate_token.outputs.token }}
github-organization: 'ROCm' github-organization: 'ROCm'

View File

@@ -2,13 +2,13 @@ name: Linting
on: on:
push: push:
branches: branches:
- develop - develop
- main - main
- 'docs/*' - 'docs/*'
- 'roc**' - 'roc**'
pull_request: pull_request:
branches: branches:
- develop - develop
- main - main
- 'docs/*' - 'docs/*'

5
.gitignore vendored
View File

@@ -5,16 +5,15 @@ build
# documentation artifacts # documentation artifacts
_build/ _build/
_images/ _images/
__pycache__/
_static/ _static/
_templates/ _templates/
_toc.yml _toc.yml
docBin/ docBin/
_doxygen/ _doxygen/
_readthedocs/ _readthedocs/
__pycache__/
# avoid duplicating contributing.md due to conf.py # avoid duplicating contributing.md due to conf.py
docs/CHANGELOG.md
docs/contribute/index.md docs/contribute/index.md
docs/about/release-notes.md docs/about/release-notes.md
docs/release/changelog.md docs/about/changelog.md

View File

@@ -12,5 +12,6 @@ config:
MD041: false MD041: false
MD051: false MD051: false
ignores: ignores:
- "{,docs/}{RELEASE,release,CHANGELOG,changelog}.md" - CHANGELOG.md
- "{,docs/}{RELEASE,release}.md"
- tools/autotag/templates/**/*.md - tools/autotag/templates/**/*.md

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