Skip to content

Commit

Permalink
Add build pools, change gpu targets, and build tests (#3115)
Browse files Browse the repository at this point in the history
To best determine hardware specs per repo, added more build pool options with varying number of vCPUs, RAM size, etc. and will kick off builds with test targets enabled to determine long-term cost values.

Co-authored-by: alexxu-amd <alexxu12@amd.com>
  • Loading branch information
amd-jmacaran and alexxu-amd committed May 15, 2024
1 parent c12703c commit d18b233
Show file tree
Hide file tree
Showing 105 changed files with 824 additions and 428 deletions.
52 changes: 21 additions & 31 deletions .azuredevops/components/AMDMIGraphX.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,59 +34,49 @@ parameters:
- pytest==6.0.1
- packaging==23.0
- protobuf==3.20.2
- name: rocmDependencies
type: object
default:
- rocm-cmake
- rocMLIR

jobs:
- job: AMDMIGraphX
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ variables.CLOUD_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }}
container:
image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
# half version should be fixed to 5.6.0
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
dependencySource: fixed
fixedComponentName: half
fixedPipelineIdentifier: $(half560-pipeline-id)
# CI case: download latest default branch build
- ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: rocm-cmake
branchName: develop
pipelineId: $(rocm-cmake-pipeline-id)
testFailuresOkay: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: half
branchName: master
pipelineId: $(half-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: rocmlir
branchName: develop
pipelineId: $(rocmlir-pipeline-id)
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: \tag-builds\rocm-cmake
pipelineId: $(rocm-cmake-tagged-pipeline-id)
testFailuresOkay: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: \tag-builds\half
pipelineId: $(half-tagged-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: \tag-builds\rocmlir
pipelineId: $(rocmlir-tagged-pipeline-id)
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: tag-builds
- script: 'ls -1R /opt/rocm'
displayName: 'Artifact listing'
- script: 'ls -1R $(Agent.BuildDirectory)/rocm'
Expand All @@ -97,11 +87,11 @@ jobs:
-DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/clang++
-DCMAKE_C_COMPILER=/opt/rocm/llvm/bin/clang
-DCMAKE_BUILD_TYPE=Release
-DAMDGPU_TARGETS=gfx1100
-DAMDGPU_TARGETS=gfx1030;gfx1100
-DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm;/opt/rocm/llvm;opt/rocm"
-DHALF_INCLUDE_DIR="$(Agent.BuildDirectory)/rocm/include"
-DMIGRAPHX_USE_COMPOSABLEKERNEL=OFF
-DBUILD_TESTING=OFF
-DBUILD_TESTING=ON
-GNinja
# REFERENCE: https://github.com/ROCm/composable_kernel/issues/782
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
76 changes: 27 additions & 49 deletions .azuredevops/components/HIP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ parameters:
type: object
default:
- CppHeaderParser
- name: rocmDependenciesAMD
type: object
default:
- llvm-project
- ROCT-Thunk-Interface
- ROCR-Runtime
- rocprofiler-register
- name: rocmDependenciesNvidia
type: object
default:
- llvm-project

# hip and clr are tightly-coupled
# run this same template for both repos
Expand All @@ -27,11 +38,11 @@ jobs:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.LOW_END_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
Expand All @@ -44,48 +55,18 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: matching_repo
# download tasks has built in 4x retry download count
# these will download last passing build for that branch
# CI case: download latest default branch build
- ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: llvm-project
branchName: amd-staging
pipelineId: $(llvm-project-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: ROCT-Thunk-Interface
branchName: master
pipelineId: $(roct-thunk-interface-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: ROCR-Runtime
branchName: master
pipelineId: $(rocr-runtime-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: rocprofiler-register
branchName: amd-mainline
pipelineId: $(rocprofiler-register-pipeline-id)
dependencyList: ${{ parameters.rocmDependenciesAMD }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: llvm-project
pipelineId: $(llvm-project-tagged-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: ROCT-Thunk-Interface
pipelineId: $(roct-thunk-interface-tagged-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
parameters:
componentName: ROCR-Runtime
pipelineId: $(rocr-runtime-tagged-pipeline-id)
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: rocprofiler-register
pipelineId: $(rocprofiler-register-tagged-pipeline-id)
dependencyList: ${{ parameters.rocmDependenciesAMD }}
dependencySource: tag-builds
- script: 'ls -1R $(Agent.BuildDirectory)/rocm'
displayName: 'Artifact listing'
# compile clr
Expand All @@ -111,11 +92,11 @@ jobs:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.LOW_END_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
Expand All @@ -131,21 +112,18 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: hipother_repo
# download tasks has built in 4x retry download count
# these will download last passing build for that branch
# CI case: download latest default branch build
- ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: llvm-project
branchName: amd-staging
pipelineId: $(llvm-project-pipeline-id)
dependencyList: ${{ parameters.rocmDependenciesNvidia }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: llvm-project
pipelineId: $(llvm-project-tagged-pipeline-id)
dependencyList: ${{ parameters.rocmDependenciesNvidia }}
dependencySource: tag-builds
- script: 'ls -1R $(Agent.BuildDirectory)/rocm'
displayName: 'Artifact listing'
# compile clr
Expand Down
21 changes: 12 additions & 9 deletions .azuredevops/components/HIPIFY.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,22 @@ parameters:
- cmake
- ninja-build
- libnuma-dev
- name: rocmDependencies
type: object
default:
- llvm-project

jobs:
- job: HIPIFY
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.LOW_END_BUILD_POOL }}
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
Expand All @@ -31,17 +35,16 @@ jobs:
checkoutRepo: ${{ parameters.checkoutRepo }}
# CI case: download latest default branch build
- ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: llvm-project
branchName: amd-staging
pipelineId: $(llvm-project-pipeline-id)
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: \tag-builds\llvm-project
pipelineId: $(llvm-project-tagged-pipeline-id)
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
Expand Down
28 changes: 16 additions & 12 deletions .azuredevops/components/MIOpen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,27 @@ parameters:
- libbz2-dev
- nlohmann-json3-dev
- libgtest-dev
- name: rocmDependencies
type: object
default:
- rocMLIR

jobs:
- job: MIOpen
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ variables.CLOUD_BUILD_POOL }}
pool: ${{ variables.MEDIUM_BUILD_POOL }}
container:
image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
# The default boost library from apt is 1.74, which does not satisfy MIOpen's build requirement (1.79+)
# Upgrade boost from apt by following https://launchpad.net/~mhier/+archive/ubuntu/libboost-latest
# Upgrade boost from apt by following https://launchpad.net/~mhier/+archive/ubuntu/libboost-latest
- task: Bash@3
displayName: 'update boost version'
inputs:
Expand All @@ -50,19 +54,18 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
# CI case: download latest default branch build
# CI case: download latest default branch build
- ${{ if eq(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: rocmlir
branchName: develop
pipelineId: $(rocmlir-pipeline-id)
# manual build case: triggered by ROCm/ROCm repo
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: staging
# manual build case: triggered by ROCm/ROCm repo
- ${{ if ne(parameters.checkoutRef, '') }}:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
componentName: \tag-builds\rocmlir
pipelineId: $(rocmlir-tagged-pipeline-id)
dependencyList: ${{ parameters.rocmDependencies }}
dependencySource: tag-builds
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
Expand All @@ -73,5 +76,6 @@ jobs:
-DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF
-DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTING=ON
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
5 changes: 3 additions & 2 deletions .azuredevops/components/MIVisionX.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,14 @@ jobs:
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool: ${{ variables.CLOUD_BUILD_POOL }}
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
container:
image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }}
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
Expand Down

0 comments on commit d18b233

Please sign in to comment.