diff --git a/.azuredevops/components/AMDMIGraphX.yml b/.azuredevops/components/AMDMIGraphX.yml new file mode 100644 index 0000000000..f2181d1d7f --- /dev/null +++ b/.azuredevops/components/AMDMIGraphX.yml @@ -0,0 +1,107 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - git + - cmake + - ninja-build + - libnuma-dev + - miopen-hip-dev + - openmp-extras + - python3-venv + - rocblas-dev + - libtbb-dev + - nlohmann-json3-dev + - libmsgpack-dev + - libsqlite3-dev + - libprotobuf-dev + - protobuf-compiler + - python3-pybind11 + - composablekernel-dev +- name: pipModules + type: object + default: + - https://github.com/RadeonOpenCompute/rbuild/archive/master.tar.gz + - onnx==1.14.1 + - numpy==1.21.6 + - typing==3.7.4 + - pytest==6.0.1 + - packaging==23.0 + - protobuf==3.20.2 + +jobs: +- job: AMDMIGraphX + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: ${{ variables.CLOUD_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.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 }} +# 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 + 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) +# 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 + parameters: + componentName: \tag-builds\rocmlir + pipelineId: $(rocmlir-tagged-pipeline-id) + - script: 'ls -1R /opt/rocm' + displayName: 'Artifact listing' + - script: 'ls -1R $(Agent.BuildDirectory)/rocm' + displayName: 'Artifact listing' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/clang++ + -DCMAKE_C_COMPILER=/opt/rocm/llvm/bin/clang + -DCMAKE_BUILD_TYPE=Release + -DAMDGPU_TARGETS=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 + -GNinja +# REFERENCE: https://github.com/ROCm/composable_kernel/issues/782 + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/hipfort.yml b/.azuredevops/components/hipfort.yml new file mode 100644 index 0000000000..7beb89e313 --- /dev/null +++ b/.azuredevops/components/hipfort.yml @@ -0,0 +1,36 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - gfortran + - git + - cmake + +jobs: +- job: hipfort + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DHIPFORT_INSTALL_DIR=/tmp/hipfort .. + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocSOLVER.yml b/.azuredevops/components/rocSOLVER.yml new file mode 100644 index 0000000000..8f23371c61 --- /dev/null +++ b/.azuredevops/components/rocSOLVER.yml @@ -0,0 +1,49 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - rocblas + - rocsparse + - hipsparse + - rocsolver + - libsuitesparse-dev + - gfortran + - libfmt-dev + - git + +jobs: +- job: rocSOLVER + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: ${{ variables.CLOUD_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.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 }} + - script: pwd && ls + - script: mkdir build + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_PREFIX_PATH="/opt/rocm;$(Pipeline.Workspace)/deps-install" + -DCMAKE_CXX_COMPILER=hipcc + -DUSE_CUDA=OFF + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocWMMA.yml b/.azuredevops/components/rocWMMA.yml new file mode 100644 index 0000000000..cd779e24a3 --- /dev/null +++ b/.azuredevops/components/rocWMMA.yml @@ -0,0 +1,44 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - libboost-program-options-dev + - libgtest-dev + - googletest + - libfftw3-dev + - git + - rocblas + +jobs: +- job: rocWMMA + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: ${{ variables.CLOUD_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_CXX_COMPILER=hipcc + -DCMAKE_BUILD_TYPE=Release + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/tag-builds/AMDMIGraphX.yml b/.azuredevops/tag-builds/AMDMIGraphX.yml new file mode 100644 index 0000000000..688b22acb2 --- /dev/null +++ b/.azuredevops/tag-builds/AMDMIGraphX.yml @@ -0,0 +1,29 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +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/AMDMIGraphX + ref: ${{ parameters.checkoutRef }} + +trigger: none +pr: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/AMDMIGraphX.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/hipfort.yml b/.azuredevops/tag-builds/hipfort.yml new file mode 100644 index 0000000000..f01dcc1190 --- /dev/null +++ b/.azuredevops/tag-builds/hipfort.yml @@ -0,0 +1,29 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +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/hipfort + ref: ${{ parameters.checkoutRef }} + +trigger: none +pr: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/hipfort.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocSOLVER.yml b/.azuredevops/tag-builds/rocSOLVER.yml new file mode 100644 index 0000000000..7c45800552 --- /dev/null +++ b/.azuredevops/tag-builds/rocSOLVER.yml @@ -0,0 +1,29 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +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/rocSOLVER + ref: ${{ parameters.checkoutRef }} + +trigger: none +pr: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocSOLVER.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocWMMA.yml b/.azuredevops/tag-builds/rocWMMA.yml new file mode 100644 index 0000000000..0a8bfb0f24 --- /dev/null +++ b/.azuredevops/tag-builds/rocWMMA.yml @@ -0,0 +1,29 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +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/rocWMMA + ref: ${{ parameters.checkoutRef }} + +trigger: none +pr: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocWMMA.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }}