diff --git a/.azuredevops/README.md b/.azuredevops/README.md index 83808a55d..7f105aa02 100644 --- a/.azuredevops/README.md +++ b/.azuredevops/README.md @@ -23,8 +23,40 @@ 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) - [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 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. diff --git a/.azuredevops/components/AMDMIGraphX.yml b/.azuredevops/components/AMDMIGraphX.yml index e197adff1..4f58410e2 100644 --- a/.azuredevops/components/AMDMIGraphX.yml +++ b/.azuredevops/components/AMDMIGraphX.yml @@ -94,23 +94,16 @@ jobs: parameters: checkoutRepo: ${{ parameters.checkoutRepo }} # half version should be fixed to 5.6.0 + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml + parameters: + buildType: specific + definitionId: ${{ variables.HALF560_PIPELINE_ID }} + buildId: ${{ variables.HALF560_BUILD_ID }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: - dependencySource: fixed - fixedComponentName: half - fixedPipelineIdentifier: ${{ variables.HALF560_PIPELINE_ID }} - skipLibraryLinking: true - skipLlvmSymlink: true - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -128,6 +121,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) - job: AMDMIGraphX_testing dependsOn: AMDMIGraphX @@ -155,29 +154,17 @@ jobs: 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 # half version should be fixed to 5.6.0 + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml + parameters: + buildType: specific + definitionId: ${{ variables.HALF560_PIPELINE_ID }} + buildId: ${{ variables.HALF560_BUILD_ID }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: - dependencySource: fixed - fixedComponentName: half - fixedPipelineIdentifier: ${{ variables.HALF560_PIPELINE_ID }} - skipLibraryLinking: true - skipLlvmSymlink: true - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml - parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} 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: CMake@1 displayName: MIGraphXTest CMake Flags inputs: @@ -198,3 +185,11 @@ jobs: testExecutable: make testParameters: -j$(nproc) check testPublishResults: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - MIGRAPHX_TRACE_BENCHMARKING:::1 diff --git a/.azuredevops/components/HIP.yml b/.azuredevops/components/HIP.yml index 8846d3a3c..7cdf6470a 100644 --- a/.azuredevops/components/HIP.yml +++ b/.azuredevops/components/HIP.yml @@ -8,11 +8,13 @@ parameters: - name: aptPackages type: object default: + - cmake - libnuma-dev - mesa-common-dev - ocl-icd-libopencl1 - ocl-icd-opencl-dev - opencl-headers + - python3-pip - name: pipModules type: object default: @@ -39,8 +41,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -62,13 +63,8 @@ jobs: checkoutRepo: hipother_repo - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependenciesAMD }} - # 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 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: @@ -88,14 +84,19 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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 - job: hip_clr_combined_nvidia variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -118,13 +119,8 @@ jobs: checkoutRepo: hipother_repo - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependenciesNvidia }} - # 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' displayName: 'Artifact listing' # compile clr @@ -142,3 +138,9 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: artifactName: nvidia + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: nvidia diff --git a/.azuredevops/components/HIPIFY.yml b/.azuredevops/components/HIPIFY.yml index 2f8a4b945..ac1c20e7a 100644 --- a/.azuredevops/components/HIPIFY.yml +++ b/.azuredevops/components/HIPIFY.yml @@ -37,9 +37,9 @@ jobs: inputs: targetType: inline script: | - sudo mkdir --parents --mode=0755 /etc/apt/keyrings - 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 - 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 + wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb + sudo dpkg -i cuda-keyring_1.1-1_all.deb + sudo rm -f cuda-keyring_1.1-1_all.deb sudo apt update - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: @@ -106,3 +106,14 @@ jobs: testExecutable: make testParameters: test-hipify 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 diff --git a/.azuredevops/components/MIOpen.yml b/.azuredevops/components/MIOpen.yml index 16d3cbaaa..9bd9aeeaa 100644 --- a/.azuredevops/components/MIOpen.yml +++ b/.azuredevops/components/MIOpen.yml @@ -81,14 +81,9 @@ jobs: gpuTarget: $(JOB_GPU_TARGET) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: Build and install other dependencies inputs: @@ -118,9 +113,17 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) + extraCopyDirectories: + - miopen-deps - job: MIOpen_testing - timeoutInMinutes: 90 + timeoutInMinutes: 180 dependsOn: MIOpen condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName']))) variables: @@ -144,22 +147,14 @@ jobs: 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/miopen-get-ck-build.yml parameters: gpuTarget: $(JOB_GPU_TARGET) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: Build and install other dependencies inputs: @@ -198,3 +193,11 @@ jobs: parameters: componentName: MIOpen testParameters: '-VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml --exclude-regex test_rnn_seq_api' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + extraCopyDirectories: + - miopen-deps diff --git a/.azuredevops/components/MIVisionX.yml b/.azuredevops/components/MIVisionX.yml index 8e3e4e8c9..8a4b4867d 100644 --- a/.azuredevops/components/MIVisionX.yml +++ b/.azuredevops/components/MIVisionX.yml @@ -24,6 +24,7 @@ parameters: - libopencv-dev - protobuf-compiler - libprotoc-dev + - python3-pip - name: pipModules type: object default: @@ -69,8 +70,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -88,14 +88,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -109,6 +104,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) - job: MIVisionX_testing dependsOn: MIVisionX @@ -133,19 +134,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds # anything in /opt may be persistent across runs # so we need to remove the symlink if it already exists - script: | @@ -159,3 +152,10 @@ jobs: parameters: componentName: MIVisionX testDir: 'mivisionx-tests' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true diff --git a/.azuredevops/components/ROCR-Runtime.yml b/.azuredevops/components/ROCR-Runtime.yml index d284fbbdd..cc556bc57 100644 --- a/.azuredevops/components/ROCR-Runtime.yml +++ b/.azuredevops/components/ROCR-Runtime.yml @@ -8,10 +8,13 @@ parameters: - name: aptPackages type: object default: + - cmake - g++ - libdrm-dev - libelf-dev - libnuma-dev + - pkg-config + - python3-pip - name: rocmDependencies type: object default: @@ -29,8 +32,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -43,13 +45,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -58,6 +55,10 @@ jobs: -DCMAKE_BUILD_TYPE=Release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - job: ROCR_Runtime_testing dependsOn: ROCR_Runtime @@ -88,19 +89,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - 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: + checkoutRef: ${{ parameters.checkoutRef }} 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/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} @@ -148,3 +141,9 @@ jobs: testExecutable: ./rocrtst64 testParameters: '--gtest_filter="-rocrtstNeg.Memory_Negative_Tests:rocrtstFunc.Memory_Max_Mem" --gtest_output=xml:./test_output.xml --gtest_color=yes' testDir: $(Build.SourcesDirectory)/rocrtst/suites/test_common/build/$(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) +# docker image will be missing libhwloc5 diff --git a/.azuredevops/components/ROCT-Thunk-Interface.yml b/.azuredevops/components/ROCT-Thunk-Interface.yml index 0c71e9deb..3d8cae54c 100644 --- a/.azuredevops/components/ROCT-Thunk-Interface.yml +++ b/.azuredevops/components/ROCT-Thunk-Interface.yml @@ -16,8 +16,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: diff --git a/.azuredevops/components/ROCdbgapi.yml b/.azuredevops/components/ROCdbgapi.yml index a045cb9fd..8c2d25977 100644 --- a/.azuredevops/components/ROCdbgapi.yml +++ b/.azuredevops/components/ROCdbgapi.yml @@ -10,6 +10,7 @@ parameters: default: - cmake - ninja-build + - python3-pip - name: rocmDependencies type: object default: @@ -23,8 +24,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -37,13 +37,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -52,3 +47,7 @@ jobs: -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} diff --git a/.azuredevops/components/ROCgdb.yml b/.azuredevops/components/ROCgdb.yml index 96ebc30f4..39fa2cc8d 100644 --- a/.azuredevops/components/ROCgdb.yml +++ b/.azuredevops/components/ROCgdb.yml @@ -55,20 +55,10 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: configureFlags: >- @@ -102,6 +92,7 @@ jobs: sudo rm -rf /opt/rocm sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm echo "##vso[task.prependpath]/opt/rocm/bin" + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3 displayName: check-gdb @@ -116,3 +107,10 @@ jobs: 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_GPU_TARGET) + extraEnvVars: + - PKG_CONFIG_PATH:::/home/user/workspace/rocm/share/pkgconfig diff --git a/.azuredevops/components/ROCmValidationSuite.yml b/.azuredevops/components/ROCmValidationSuite.yml index 124368f01..beef71e9e 100644 --- a/.azuredevops/components/ROCmValidationSuite.yml +++ b/.azuredevops/components/ROCmValidationSuite.yml @@ -10,12 +10,14 @@ parameters: default: - cmake - ninja-build + - libdrm-dev - libyaml-cpp-dev - libpci-dev - libpci3 - libgst-dev - libgtest-dev - git + - python3-pip - name: rocmDependencies type: object default: @@ -58,8 +60,7 @@ jobs: value: $(Agent.BuildDirectory)/rocm - name: HIP_INC_DIR value: $(Agent.BuildDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -76,14 +77,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -98,6 +94,15 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm + - ROCM_PATH:::/home/user/workspace/rocm + - HIP_INC_DIR:::/home/user/workspace/rocm - job: ROCmValidationSuite_testing dependsOn: ROCmValidationSuite @@ -122,19 +127,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -143,3 +140,8 @@ jobs: testParameters: '' testDir: $(Agent.BuildDirectory) testPublishResults: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/Tensile.yml b/.azuredevops/components/Tensile.yml index e4ecc8063..92ad1fe5f 100644 --- a/.azuredevops/components/Tensile.yml +++ b/.azuredevops/components/Tensile.yml @@ -35,8 +35,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -50,13 +49,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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/manifest.yml - task: Bash@3 displayName: Create wheel file @@ -77,6 +71,23 @@ jobs: retryCountOnTaskFailure: 3 inputs: targetPath: $(Build.ArtifactStagingDirectory) + - task: Bash@3 + displayName: Save pipeline artifact file names + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: | + echo "$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_drop_$(JOB_GPU_TARGET).tar.gz" >> pipelineArtifacts.txt + 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_GPU_TARGET) - job: Tensile_testing timeoutInMinutes: 90 @@ -108,19 +119,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -175,3 +178,13 @@ jobs: inputs: targetType: inline script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')" + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true + pythonEnvVars: true + extraPaths: /home/user/workspace/rocm/llvm/bin:/home/user/workspace/rocm/bin +# docker image will not have python site-packages in path, but the env vars will make it easier diff --git a/.azuredevops/components/TransferBench.yml b/.azuredevops/components/TransferBench.yml new file mode 100644 index 000000000..4e1f00e48 --- /dev/null +++ b/.azuredevops/components/TransferBench.yml @@ -0,0 +1,123 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- 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 + +jobs: +- job: TransferBench + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: ${{ variables.LOW_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 }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml + parameters: + checkoutRef: ${{ parameters.checkoutRef }} + dependencyList: ${{ parameters.rocmDependencies }} + gpuTarget: $(JOB_GPU_TARGET) + - 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_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + parameters: + gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + +- job: TransferBench_testing + dependsOn: TransferBench + 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-rocm.yml + parameters: + checkoutRef: ${{ parameters.checkoutRef }} + dependencyList: ${{ parameters.rocmTestDependencies }} + gpuTarget: $(JOB_GPU_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_GPU_TARGET) diff --git a/.azuredevops/components/amdsmi.yml b/.azuredevops/components/amdsmi.yml index eaa0ad743..2e0ce3a05 100644 --- a/.azuredevops/components/amdsmi.yml +++ b/.azuredevops/components/amdsmi.yml @@ -8,15 +8,17 @@ parameters: - name: aptPackages type: object default: + - cmake - libdrm-dev + - python3-pip + - pkg-config jobs: - job: amdsmi variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -33,6 +35,10 @@ jobs: -DBUILD_TESTS=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - job: amdsmi_testing dependsOn: amdsmi @@ -63,3 +69,8 @@ jobs: testDir: '$(Agent.BuildDirectory)' testExecutable: './rocm/share/amd_smi/tests/amdsmitst' 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_GPU_TARGET) diff --git a/.azuredevops/components/aomp-extras.yml b/.azuredevops/components/aomp-extras.yml index d553a4ecc..c6e39b1eb 100644 --- a/.azuredevops/components/aomp-extras.yml +++ b/.azuredevops/components/aomp-extras.yml @@ -23,8 +23,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -37,13 +36,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: componentName: aomp-extras @@ -56,3 +50,7 @@ jobs: 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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} diff --git a/.azuredevops/components/aomp.yml b/.azuredevops/components/aomp.yml index 9ea3c2069..6257f1f2f 100644 --- a/.azuredevops/components/aomp.yml +++ b/.azuredevops/components/aomp.yml @@ -97,13 +97,8 @@ jobs: checkoutRepo: llvm-project_repo - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 # Because clang is not being rebuilt and to separate downloaded ROCm # dependencies from the new artifacts, we use temporary symbolic links # for the compilation and installation to go through. @@ -441,6 +436,11 @@ jobs: RemoveDotFiles: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + optSymLink: true - job: aomp_testing dependsOn: aomp @@ -464,11 +464,8 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: ROCm symbolic link inputs: @@ -518,3 +515,9 @@ jobs: 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_GPU_TARGET) + optSymLink: true diff --git a/.azuredevops/components/composable_kernel.yml b/.azuredevops/components/composable_kernel.yml index 376ec4f24..df78fdf02 100644 --- a/.azuredevops/components/composable_kernel.yml +++ b/.azuredevops/components/composable_kernel.yml @@ -58,14 +58,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 - script: | mkdir -p $(CCACHE_DIR) echo "##vso[task.prependpath]/usr/lib/ccache" @@ -99,8 +94,14 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: composable_kernel_testing + timeoutInMinutes: 90 dependsOn: composable_kernel condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName']))) variables: @@ -125,19 +126,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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 - task: Bash@3 displayName: Iterate through test scripts @@ -148,3 +141,8 @@ jobs: ./$file | tee -a $(TEST_LOG_FILE) done workingDirectory: $(Agent.BuildDirectory)/rocm/bin + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/copyHIP.yml b/.azuredevops/components/copyHIP.yml index 17ac6c3f1..9e44d56db 100644 --- a/.azuredevops/components/copyHIP.yml +++ b/.azuredevops/components/copyHIP.yml @@ -31,3 +31,4 @@ jobs: sourceDir: $(Agent.BuildDirectory)/rocm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml diff --git a/.azuredevops/components/half.yml b/.azuredevops/components/half.yml index 16159e84c..3febf178b 100644 --- a/.azuredevops/components/half.yml +++ b/.azuredevops/components/half.yml @@ -25,8 +25,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -39,13 +38,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -64,3 +58,8 @@ jobs: make test03 ./bin/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 diff --git a/.azuredevops/components/hip-tests.yml b/.azuredevops/components/hip-tests.yml index 5466be97f..eaa61a0c1 100644 --- a/.azuredevops/components/hip-tests.yml +++ b/.azuredevops/components/hip-tests.yml @@ -62,13 +62,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 hip-tests - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: @@ -88,6 +83,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: hip_tests_testing timeoutInMinutes: 240 @@ -113,19 +115,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: Symlink rocm_agent_enumerator inputs: @@ -145,3 +139,9 @@ jobs: inputs: targetType: inline script: sudo rm -rf /opt/rocm + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true diff --git a/.azuredevops/components/hipBLAS-common.yml b/.azuredevops/components/hipBLAS-common.yml index 4f8ee45fc..e694a48b8 100644 --- a/.azuredevops/components/hipBLAS-common.yml +++ b/.azuredevops/components/hipBLAS-common.yml @@ -29,8 +29,7 @@ jobs: - name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -41,18 +40,10 @@ jobs: - 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/dependencies-rocm.yml - parameters: - 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/dependencies-rocm.yml + parameters: + checkoutRef: ${{ parameters.checkoutRef }} + dependencyList: ${{ parameters.rocmDependencies }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- @@ -61,3 +52,9 @@ jobs: -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + extraEnvVars: + - ROCM_PATH:::/home/user/workspace/rocm diff --git a/.azuredevops/components/hipBLAS.yml b/.azuredevops/components/hipBLAS.yml index 6b57a2225..1bb52ee21 100644 --- a/.azuredevops/components/hipBLAS.yml +++ b/.azuredevops/components/hipBLAS.yml @@ -75,14 +75,9 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -101,6 +96,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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 }} + installAOCL: true + gpuTarget: $(JOB_GPU_TARGET) - job: hipBLAS_testing dependsOn: hipBLAS @@ -126,19 +128,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -146,3 +140,9 @@ jobs: testExecutable: $(Agent.BuildDirectory)/rocm/bin/hipblas-test testParameters: '--yaml hipblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' testDir: '$(Agent.BuildDirectory)/rocm/bin' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipBLASLt.yml b/.azuredevops/components/hipBLASLt.yml index 97ff750ca..30513f217 100644 --- a/.azuredevops/components/hipBLASLt.yml +++ b/.azuredevops/components/hipBLASLt.yml @@ -22,7 +22,8 @@ parameters: type: object default: - joblib - - packaging + - packaging>=22.0 + - --upgrade - name: rocmDependencies type: object default: @@ -87,14 +88,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 - script: sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm displayName: ROCm symbolic link # Build and install gtest, lapack, hipBLAS-common @@ -137,7 +133,6 @@ jobs: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) -DTensile_LOGIC= -DTensile_CPU_THREADS= - -DTensile_CODE_OBJECT_VERSION=default -DTensile_LIBRARY_FORMAT=msgpack -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" -DBUILD_CLIENTS_TESTS=ON @@ -148,7 +143,22 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_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 + - CMAKE_CXX_COMPILER:::/home/user/workspace/rocm/bin/hipcc + - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler + - TENSILE_ROCM_PATH:::/home/user/workspace/rocm/bin/hipcc + extraCopyDirectories: + - deps - job: hipBLASLt_testing dependsOn: hipBLASLt @@ -174,19 +184,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -194,3 +196,9 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './hipblaslt-test' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipCUB.yml b/.azuredevops/components/hipCUB.yml index a1f83f56f..1f86875c4 100644 --- a/.azuredevops/components/hipCUB.yml +++ b/.azuredevops/components/hipCUB.yml @@ -53,14 +53,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -76,6 +71,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: hipCUB_testing dependsOn: hipCUB @@ -100,21 +100,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: hipCUB testDir: '$(Agent.BuildDirectory)/rocm/bin/hipcub' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipFFT.yml b/.azuredevops/components/hipFFT.yml index 783f1c962..d66128cee 100644 --- a/.azuredevops/components/hipFFT.yml +++ b/.azuredevops/components/hipFFT.yml @@ -47,8 +47,7 @@ jobs: - template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -65,14 +64,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -94,6 +88,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: hipFFT_testing dependsOn: hipFFT @@ -118,19 +117,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -138,3 +129,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './hipfft-test' testParameters: '--test_prob 0.002 --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_GPU_TARGET) diff --git a/.azuredevops/components/hipRAND.yml b/.azuredevops/components/hipRAND.yml index 8b86347b8..65c17140e 100644 --- a/.azuredevops/components/hipRAND.yml +++ b/.azuredevops/components/hipRAND.yml @@ -12,6 +12,7 @@ parameters: - ninja-build - googletest - git + - python3-pip - name: rocmDependencies type: object default: @@ -37,8 +38,7 @@ jobs: - template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -55,14 +55,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -80,6 +75,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: hipRAND_testing dependsOn: hipRAND @@ -104,21 +106,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: hipRAND testDir: '$(Agent.BuildDirectory)/rocm/bin/hipRAND' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipSOLVER.yml b/.azuredevops/components/hipSOLVER.yml index 20b9a0139..f3a7cf2e5 100644 --- a/.azuredevops/components/hipSOLVER.yml +++ b/.azuredevops/components/hipSOLVER.yml @@ -15,6 +15,7 @@ parameters: - git - googletest - libgtest-dev + - python3-pip - name: rocmDependencies type: object default: @@ -49,8 +50,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -67,14 +67,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 # build external gtest and lapack - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: @@ -101,6 +96,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraCopyDirectories: + - deps-install - job: hipSOLVER_testing dependsOn: hipSOLVER @@ -125,19 +127,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -145,3 +139,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './hipsolver-test' testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipSPARSE.yml b/.azuredevops/components/hipSPARSE.yml index e867c0289..adfbb1bab 100644 --- a/.azuredevops/components/hipSPARSE.yml +++ b/.azuredevops/components/hipSPARSE.yml @@ -16,6 +16,7 @@ parameters: - git - gfortran - libgtest-dev + - python3-pip - name: rocmDependencies type: object default: @@ -44,8 +45,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -62,14 +62,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -96,6 +91,12 @@ jobs: parameters: artifactName: testMatrices 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 }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) - job: hipSPARSE_testing dependsOn: hipSPARSE @@ -120,19 +121,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -140,3 +133,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './hipsparse-test' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipSPARSELt.yml b/.azuredevops/components/hipSPARSELt.yml index 59c2b4b3d..556751289 100644 --- a/.azuredevops/components/hipSPARSELt.yml +++ b/.azuredevops/components/hipSPARSELt.yml @@ -31,6 +31,7 @@ parameters: - rocminfo - rocprofiler-register - ROCR-Runtime + - roctracer - name: rocmTestDependencies type: object default: @@ -43,6 +44,7 @@ parameters: - rocminfo - rocprofiler-register - ROCR-Runtime + - roctracer jobs: - job: hipSPARSELt @@ -78,14 +80,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 # Build and install gtest and lapack # $(Pipeline.Workspace)/deps is a temporary folder for the build process # $(Pipeline.Workspace)/s/deps is part of the hipSPARSELt repo @@ -111,7 +108,6 @@ jobs: -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) -DTensile_LOGIC= -DTensile_CPU_THREADS= - -DTensile_CODE_OBJECT_VERSION=default -DTensile_LIBRARY_FORMAT=msgpack -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm" -DROCM_PATH=$(Agent.BuildDirectory)/rocm @@ -123,6 +119,21 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_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 - job: hipSPARSELt_testing dependsOn: hipSPARSELt @@ -148,12 +159,9 @@ jobs: gpuTarget: $(JOB_GPU_TARGET) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -161,3 +169,9 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './hipsparselt-test' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes --gtest_filter=*pre_checkin*' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipTensor.yml b/.azuredevops/components/hipTensor.yml index 52bd5ba05..ac33530d5 100644 --- a/.azuredevops/components/hipTensor.yml +++ b/.azuredevops/components/hipTensor.yml @@ -52,14 +52,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -76,6 +71,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: hipTensor_testing timeoutInMinutes: 90 @@ -101,22 +101,19 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: hipTensor testDir: '$(Agent.BuildDirectory)/rocm/bin/hiptensor' testParameters: '-E ".*-extended" -VV --output-on-failure --force-new-ctest-process --output-junit test_output.xml' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/hipfort.yml b/.azuredevops/components/hipfort.yml index 387f2b280..87b521fce 100644 --- a/.azuredevops/components/hipfort.yml +++ b/.azuredevops/components/hipfort.yml @@ -62,14 +62,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -92,6 +87,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + installLatestCMake: true - job: hipfort_testing dependsOn: hipfort @@ -116,19 +117,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} @@ -147,3 +140,9 @@ jobs: targetType: inline script: PATH=$(Agent.BuildDirectory)/rocm/bin:$PATH make run_all workingDirectory: $(Build.SourcesDirectory)/test + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true diff --git a/.azuredevops/components/llvm-project.yml b/.azuredevops/components/llvm-project.yml index 9331bc3c2..2b2a63b86 100644 --- a/.azuredevops/components/llvm-project.yml +++ b/.azuredevops/components/llvm-project.yml @@ -42,14 +42,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} 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 parameters: componentName: rocm-llvm @@ -144,3 +139,11 @@ jobs: cmakeBuildDir: 'amd/hipcc/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: combined + extraEnvVars: + - HIP_DEVICE_LIB_PATH:::/home/user/workspace/bin/amdgcn/bitcode + - HIP_PATH:::/home/user/workspace/rocm diff --git a/.azuredevops/components/omnitrace.yml b/.azuredevops/components/omnitrace.yml index 1240e8a5c..1a8bd3892 100644 --- a/.azuredevops/components/omnitrace.yml +++ b/.azuredevops/components/omnitrace.yml @@ -75,14 +75,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: diff --git a/.azuredevops/components/rccl.yml b/.azuredevops/components/rccl.yml index 8f820ba24..58e19a37d 100644 --- a/.azuredevops/components/rccl.yml +++ b/.azuredevops/components/rccl.yml @@ -8,29 +8,31 @@ parameters: - name: aptPackages type: object default: - - python3-pip - cmake - - libboost-program-options-dev - - googletest - - libfftw3-dev - git - - ninja-build - - libstdc++-12-dev + - googletest + - libboost-program-options-dev + - libdrm-dev + - libfftw3-dev - libnuma-dev + - libstdc++-12-dev + - ninja-build + - python3-pip - name: rocmDependencies type: object default: - - rocm-cmake - - llvm-project - - ROCR-Runtime - - clr - - rocminfo - - rocm_smi_lib - - rocprofiler-register - - rocm-core - - HIPIFY - aomp - aomp-extras + - clr + - HIPIFY + - llvm-project + - rocm-cmake + - rocm-core + - rocm_smi_lib + - rocminfo + - rocprofiler-register + - ROCR-Runtime + - roctracer - name: rocmTestDependencies type: object default: @@ -45,6 +47,7 @@ parameters: - rocminfo - rocprofiler-register - ROCR-Runtime + - roctracer jobs: - job: rccl @@ -72,14 +75,9 @@ jobs: submoduleBehaviour: recursive - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 - script: chmod +x $(Agent.BuildDirectory)/rocm/bin/hipify-perl - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: @@ -99,6 +97,14 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm + installLatestCMake: true - job: rccl_testing timeoutInMinutes: 120 @@ -124,19 +130,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -144,3 +142,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rccl-UnitTests' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rdc.yml b/.azuredevops/components/rdc.yml index 96c8299da..577cedbd4 100644 --- a/.azuredevops/components/rdc.yml +++ b/.azuredevops/components/rdc.yml @@ -37,6 +37,7 @@ parameters: - ROCmValidationSuite - rocprofiler - rocprofiler-register + - rocprofiler-sdk - ROCR-Runtime - name: rocmTestDependencies type: object @@ -74,14 +75,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 # Build grpc - task: Bash@3 displayName: 'git clone grpc' @@ -116,6 +112,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rdc_testing dependsOn: rdc @@ -140,19 +141,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: Setup test environment inputs: @@ -174,3 +167,9 @@ jobs: --batch_mode --start_rdcd --unauth_comm + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + extraPaths: /home/user/workspace/rocm/bin diff --git a/.azuredevops/components/rocAL.yml b/.azuredevops/components/rocAL.yml index abf7c0f4a..538fbd111 100644 --- a/.azuredevops/components/rocAL.yml +++ b/.azuredevops/components/rocAL.yml @@ -21,6 +21,8 @@ parameters: - libavcodec-dev - libavformat-dev - libavutil-dev + - libdlpack-dev + - libsndfile1-dev - libswscale-dev - libturbojpeg-dev - libjpeg-turbo-official=3.0.2-20240124 @@ -36,15 +38,15 @@ parameters: - name: rocmDependencies type: object default: - - rocm-cmake - - llvm-project - - ROCR-Runtime - - clr - - rocDecode - - half - - rpp - - MIVisionX - aomp + - clr + - half + - llvm-project + - MIVisionX + - rocDecode + - rocm-cmake + - ROCR-Runtime + - rpp - name: rocmTestDependencies type: object default: @@ -53,6 +55,7 @@ parameters: - half - llvm-project - MIVisionX + - rocDecode - rocminfo - rocprofiler-register - ROCR-Runtime @@ -63,8 +66,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -134,14 +136,9 @@ jobs: workingDirectory: '$(Build.SourcesDirectory)/rapidjson/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -149,6 +146,7 @@ jobs: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;/opt/libjpeg-turbo -DCMAKE_INSTALL_PREFIX_PYTHON=$Python3_STDARCH -DCMAKE_BUILD_TYPE=Release + -DGPU_TARGETS=$(JOB_GPU_TARGET) -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters: @@ -156,6 +154,15 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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 }} + registerJPEGPackages: true + gpuTarget: $(JOB_GPU_TARGET) + extraCopyDirectories: + - /opt/libjpeg-turbo - job: rocAL_testing dependsOn: rocAL @@ -167,7 +174,9 @@ jobs: value: $(Agent.BuildDirectory)/rocm - name: CMAKE_INCLUDE_PATH value: $(Agent.BuildDirectory)/rocm/include/rocal - pool: $(JOB_TEST_POOL) + pool: + name: $(JOB_TEST_POOL) + demands: firstRenderDeviceAccess workspace: clean: all strategy: @@ -194,19 +203,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: Link libjpeg-turbo inputs: @@ -235,3 +236,13 @@ jobs: script: | sudo rm /etc/ld.so.conf.d/libjpeg-turbo.conf sudo ldconfig -v + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + registerJPEGPackages: true + environment: test + gpuTarget: $(JOB_GPU_TARGET) + extraCopyDirectories: + - /opt/libjpeg-turbo +# docker image will be missing the ldconfig to libjpeg-turbo diff --git a/.azuredevops/components/rocALUTION.yml b/.azuredevops/components/rocALUTION.yml index 38a4caa08..b450f74c1 100644 --- a/.azuredevops/components/rocALUTION.yml +++ b/.azuredevops/components/rocALUTION.yml @@ -15,6 +15,7 @@ parameters: - git - mpich - ninja-build + - python3-pip - name: rocmDependencies type: object default: @@ -52,8 +53,7 @@ jobs: - template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -70,14 +70,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -96,6 +91,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: rocALUTION_testing dependsOn: rocALUTION @@ -120,19 +122,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -140,3 +134,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rocalution-test' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocBLAS.yml b/.azuredevops/components/rocBLAS.yml index 372df178a..a490681e9 100644 --- a/.azuredevops/components/rocBLAS.yml +++ b/.azuredevops/components/rocBLAS.yml @@ -87,23 +87,18 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aocl.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake - -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm;$(Pipeline.Workspace)/deps-install + -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/bin/hipcc - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) -DTensile_CODE_OBJECT_VERSION=default -DTensile_LOGIC=asm_full -DTensile_SEPARATE_ARCHITECTURES=ON @@ -120,6 +115,18 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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 }} + installAOCL: true + gpuTarget: $(JOB_GPU_TARGET) + 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/bin/hipcc + - TENSILE_ROCM_OFFLOAD_BUNDLER_PATH:::/home/user/workspace/rocm/llvm/bin/clang-offload-bundler - job: rocBLAS_testing dependsOn: rocBLAS @@ -145,19 +152,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -165,3 +164,9 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rocblas-test' testParameters: '--yaml rocblas_smoke.yaml --gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocDecode.yml b/.azuredevops/components/rocDecode.yml index e3ff62e5f..79ad12528 100644 --- a/.azuredevops/components/rocDecode.yml +++ b/.azuredevops/components/rocDecode.yml @@ -20,6 +20,7 @@ parameters: - libva-amdgpu-dev - mesa-amdgpu-va-drivers - libdrm-dev + - python3-pip - name: rocmDependencies type: object default: @@ -44,8 +45,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -70,14 +70,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -87,6 +81,11 @@ jobs: -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + registerROCmPackages: true - job: rocDecode_testing dependsOn: rocDecode @@ -123,19 +122,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds # anything in /opt may be persistent across runs # so we need to remove the symlink if it already exists - script: | @@ -151,3 +142,9 @@ jobs: testDir: 'rocDecode-tests' - script: sudo rm /opt/rocm condition: always() + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + registerROCmPackages: true + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocFFT.yml b/.azuredevops/components/rocFFT.yml index 5876e577e..ce439d5e5 100644 --- a/.azuredevops/components/rocFFT.yml +++ b/.azuredevops/components/rocFFT.yml @@ -65,14 +65,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -93,6 +88,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: rocFFT_testing dependsOn: rocFFT @@ -117,19 +119,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -137,3 +131,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rocfft-test' testParameters: '--test_prob 0.004 --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_GPU_TARGET) diff --git a/.azuredevops/components/rocJPEG.yml b/.azuredevops/components/rocJPEG.yml index e8babc416..f80238908 100644 --- a/.azuredevops/components/rocJPEG.yml +++ b/.azuredevops/components/rocJPEG.yml @@ -15,6 +15,7 @@ parameters: - mesa-amdgpu-va-drivers - ninja-build - pkg-config + - python3-pip - name: rocmDependencies type: object default: @@ -39,10 +40,13 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all + strategy: + matrix: + gfx942: + JOB_GPU_TARGET: gfx942 steps: # Since mesa-amdgpu-multimedia-devel is not directly available from apt, register it - task: Bash@3 @@ -65,23 +69,25 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET) - # CI case: download latest default branch build - ${{ if eq(parameters.checkoutRef, 'develop') }}: - dependencySource: staging - # manual build case: triggered by ROCm/ROCm repo - ${{ elseif ne(parameters.checkoutRef, 'develop') }}: - dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- -DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_BUILD_TYPE=Release + -DGPU_TARGETS=$(JOB_GPU_TARGET) -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + registerROCmPackages: true - job: rocJPEG_testing dependsOn: rocJPEG @@ -118,19 +124,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - parameters: - ${{ if eq(parameters.checkoutRef, 'develop') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, 'develop') }}: - dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, 'develop') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, 'develop') }}: - dependencySource: tag-builds # anything in /opt may be persistent across runs # so we need to remove the symlink if it already exists - script: | @@ -146,3 +144,10 @@ jobs: testDir: 'rocJPEG-tests' - script: sudo rm /opt/rocm condition: always() + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + registerROCmPackages: true + optSymLink: true diff --git a/.azuredevops/components/rocMLIR.yml b/.azuredevops/components/rocMLIR.yml index d926ccb61..ae6cce239 100644 --- a/.azuredevops/components/rocMLIR.yml +++ b/.azuredevops/components/rocMLIR.yml @@ -47,13 +47,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -65,6 +60,11 @@ jobs: -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} # compiling and running test on the test system together - job: rocMLIR_testing @@ -91,21 +91,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -131,3 +121,9 @@ jobs: testDir: $(Build.SourcesDirectory)/build testExecutable: ninja testParameters: check-rocmlir + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocPRIM.yml b/.azuredevops/components/rocPRIM.yml index e02c75d6d..4926ed8ed 100644 --- a/.azuredevops/components/rocPRIM.yml +++ b/.azuredevops/components/rocPRIM.yml @@ -52,14 +52,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -75,6 +70,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocPRIM_testing dependsOn: rocPRIM @@ -99,21 +99,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: rocPRIM testDir: '$(Agent.BuildDirectory)/rocm/bin/rocprim' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocPyDecode.yml b/.azuredevops/components/rocPyDecode.yml index 9f466c3b1..68d43ab9d 100644 --- a/.azuredevops/components/rocPyDecode.yml +++ b/.azuredevops/components/rocPyDecode.yml @@ -41,8 +41,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -65,14 +64,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -94,7 +88,7 @@ jobs: -DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) -DCMAKE_BUILD_TYPE=Release - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) -DCMAKE_INSTALL_PREFIX_PYTHON=$(Build.BinariesDirectory) -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml @@ -124,6 +118,23 @@ jobs: retryCountOnTaskFailure: 3 inputs: targetPath: $(Build.ArtifactStagingDirectory) + - task: Bash@3 + displayName: Save pipeline artifact file names + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: | + whlFile=$(find "$(Build.ArtifactStagingDirectory)" -type f -name "*.whl" | head -n 1) + if [ -n "$whlFile" ]; then + echo $(basename "$whlFile") >> pipelineArtifacts.txt + fi + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true - job: rocPyDecode_testing dependsOn: rocPyDecode @@ -172,20 +183,12 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET) setupHIPLibrarySymlinks: true - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: pip install inputs: @@ -211,7 +214,7 @@ jobs: -DROCM_PATH=$(Agent.BuildDirectory)/rocm -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(PYTHON_USER_SITE)/pybind11;$(PYTHON_DIST_PACKAGES)/pybind11;$(PYBIND11_PATH) -DCMAKE_BUILD_TYPE=Release - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) .. - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml @@ -227,3 +230,11 @@ jobs: script: | pip uninstall -y rocPyDecode pip uninstall -y hip-python + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + pythonEnvVars: true + # note that this docker won't have hip-python installed via pip diff --git a/.azuredevops/components/rocRAND.yml b/.azuredevops/components/rocRAND.yml index e0b1d37ea..b099c5cf0 100644 --- a/.azuredevops/components/rocRAND.yml +++ b/.azuredevops/components/rocRAND.yml @@ -9,10 +9,11 @@ parameters: type: object default: - cmake - - ninja-build + - git - googletest - libgtest-dev - - git + - ninja-build + - python3-pip - name: rocmDependencies type: object default: @@ -37,8 +38,7 @@ jobs: - template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -55,14 +55,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -77,6 +72,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: rocRAND_testing dependsOn: rocRAND @@ -101,21 +103,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: rocRAND testDir: '$(Agent.BuildDirectory)/rocm/bin/rocRAND' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocSOLVER.yml b/.azuredevops/components/rocSOLVER.yml index a9787ad4c..3714f12ae 100644 --- a/.azuredevops/components/rocSOLVER.yml +++ b/.azuredevops/components/rocSOLVER.yml @@ -74,14 +74,9 @@ jobs: workingDirectory: '$(Build.SourcesDirectory)' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: componentName: lapack @@ -111,6 +106,13 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraCopyDirectories: + - deps-install - job: rocSOLVER_testing dependsOn: rocSOLVER @@ -135,19 +137,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -155,3 +149,8 @@ jobs: testDir: '$(Agent.BuildDirectory)/rocm/bin' testExecutable: './rocsolver-test' testParameters: '--gtest_filter="*checkin*" --gtest_output=xml:./test_output.xml --gtest_color=yes' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocSPARSE.yml b/.azuredevops/components/rocSPARSE.yml index 21915a8fb..5a06780ce 100644 --- a/.azuredevops/components/rocSPARSE.yml +++ b/.azuredevops/components/rocSPARSE.yml @@ -66,14 +66,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -105,6 +100,13 @@ jobs: parameters: artifactName: testMatrices gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm - job: rocSPARSE_testing timeoutInMinutes: 90 @@ -130,19 +132,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -150,4 +144,8 @@ jobs: 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_GPU_TARGET) diff --git a/.azuredevops/components/rocThrust.yml b/.azuredevops/components/rocThrust.yml index a1d063c51..8ab09ceed 100644 --- a/.azuredevops/components/rocThrust.yml +++ b/.azuredevops/components/rocThrust.yml @@ -57,14 +57,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -80,6 +75,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocThrust_testing dependsOn: rocThrust @@ -104,21 +104,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: rocThrust testDir: '$(Agent.BuildDirectory)/rocm/bin/rocthrust' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocWMMA.yml b/.azuredevops/components/rocWMMA.yml index f9657720e..69622eb5e 100644 --- a/.azuredevops/components/rocWMMA.yml +++ b/.azuredevops/components/rocWMMA.yml @@ -12,6 +12,7 @@ parameters: - cmake - ninja-build - libboost-program-options-dev + - libdrm-dev - libgtest-dev - googletest - libfftw3-dev @@ -66,14 +67,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -82,7 +78,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release -DROCWMMA_BUILD_TESTS=ON -DROCWMMA_BUILD_SAMPLES=OFF - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -GNinja # gfx1030 not supported in documentation @@ -92,6 +88,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocWMMA_testing timeoutInMinutes: 90 @@ -117,21 +118,18 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: rocWMMA testDir: '$(Agent.BuildDirectory)/rocm/bin/rocwmma' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocm-cmake.yml b/.azuredevops/components/rocm-cmake.yml index ef9cc8b2a..1c17abe2d 100644 --- a/.azuredevops/components/rocm-cmake.yml +++ b/.azuredevops/components/rocm-cmake.yml @@ -8,9 +8,11 @@ parameters: - name: aptPackages type: object default: + - cmake - doxygen - doxygen-doc - ninja-build + - python3-pip - python3-sphinx - name: pipModules type: object @@ -23,8 +25,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -49,3 +50,10 @@ jobs: componentName: rocm-cmake - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: combined + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocm-core.yml b/.azuredevops/components/rocm-core.yml index 49bf11d08..a5f5a1afc 100644 --- a/.azuredevops/components/rocm-core.yml +++ b/.azuredevops/components/rocm-core.yml @@ -5,17 +5,24 @@ parameters: - name: checkoutRef type: string default: '' +- name: aptPackages + type: object + default: + - cmake + - python3-pip jobs: - job: rocm_core variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_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: @@ -32,3 +39,7 @@ jobs: -DROCM_VERSION="$(next-release)" - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} diff --git a/.azuredevops/components/rocm-examples.yml b/.azuredevops/components/rocm-examples.yml index 7c7d49e4b..01c240459 100644 --- a/.azuredevops/components/rocm-examples.yml +++ b/.azuredevops/components/rocm-examples.yml @@ -85,14 +85,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: # https://github.com/ROCm/HIP/issues/2203 @@ -116,6 +111,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocm_examples_testing dependsOn: rocm_examples @@ -142,19 +142,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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/build-cmake.yml parameters: # https://github.com/ROCm/HIP/issues/2203 @@ -170,3 +162,8 @@ jobs: parameters: componentName: rocm-examples testDir: $(Build.SourcesDirectory)/build + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocm_bandwidth_test.yml b/.azuredevops/components/rocm_bandwidth_test.yml index a3c837990..4608897e3 100644 --- a/.azuredevops/components/rocm_bandwidth_test.yml +++ b/.azuredevops/components/rocm_bandwidth_test.yml @@ -40,8 +40,7 @@ jobs: value: $(Agent.BuildDirectory)/rocm - name: ROCR_LIB_DIR value: $(Agent.BuildDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -55,13 +54,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -71,6 +65,14 @@ jobs: -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-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 - job: rocm_bandwidth_test_testing dependsOn: rocm_bandwidth_test @@ -95,12 +97,9 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -109,3 +108,9 @@ jobs: testExecutable: './rocm/bin/rocm-bandwidth-test' testParameters: '' testPublishResults: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocm_smi_lib.yml b/.azuredevops/components/rocm_smi_lib.yml index a2a9bc465..1ef49faaa 100644 --- a/.azuredevops/components/rocm_smi_lib.yml +++ b/.azuredevops/components/rocm_smi_lib.yml @@ -5,17 +5,25 @@ parameters: - name: checkoutRef type: string default: '' +- name: aptPackages + type: object + default: + - cmake + - libdrm-dev + - python3-pip jobs: - job: rocm_smi_lib variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_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: @@ -27,6 +35,11 @@ jobs: -DROCM_DEP_ROCMCORE=ON - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocm_smi_lib_testing dependsOn: rocm_smi_lib @@ -54,3 +67,8 @@ jobs: 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_GPU_TARGET) diff --git a/.azuredevops/components/rocminfo.yml b/.azuredevops/components/rocminfo.yml index 7cdef6b5a..46460c1c2 100644 --- a/.azuredevops/components/rocminfo.yml +++ b/.azuredevops/components/rocminfo.yml @@ -5,6 +5,13 @@ parameters: - name: checkoutRef type: string default: '' +- name: aptPackages + type: object + default: + - cmake + - libdrm-amdgpu-dev + - libdrm-dev + - python3-pip - name: rocmDependencies type: object default: @@ -21,25 +28,23 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + registerRadeon: 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 }} 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 parameters: extraBuildFlags: >- @@ -47,6 +52,10 @@ jobs: -DROCRTST_BLD_TYPE=release - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - job: rocminfo_testing dependsOn: rocminfo @@ -63,16 +72,16 @@ jobs: 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 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: runRocminfo: false @@ -90,3 +99,8 @@ jobs: testExecutable: './rocm/bin/rocm_agent_enumerator' testParameters: '' testPublishResults: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocprofiler-compute.yml b/.azuredevops/components/rocprofiler-compute.yml index 03e7c7488..f6623d513 100644 --- a/.azuredevops/components/rocprofiler-compute.yml +++ b/.azuredevops/components/rocprofiler-compute.yml @@ -52,8 +52,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -70,21 +69,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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/manifest.yml parameters: @@ -92,6 +81,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) - job: rocprofiler_compute_testing timeoutInMinutes: 120 @@ -129,19 +124,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -181,3 +168,9 @@ jobs: inputs: targetType: inline script: echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$(Agent.BuildDirectory)/rocm/llvm/bin;;' -e 's;^/;;' -e 's;/$;;')" + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rocprofiler-register.yml b/.azuredevops/components/rocprofiler-register.yml index b520dd25d..655a6c089 100644 --- a/.azuredevops/components/rocprofiler-register.yml +++ b/.azuredevops/components/rocprofiler-register.yml @@ -5,17 +5,24 @@ parameters: - name: checkoutRef type: string default: '' +- name: aptPackages + type: object + default: + - cmake + - python3-pip jobs: - job: rocprofiler_register variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_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: @@ -36,3 +43,8 @@ jobs: testDir: 'tests/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: combined diff --git a/.azuredevops/components/rocprofiler-sdk.yml b/.azuredevops/components/rocprofiler-sdk.yml index 5d386a90e..3ce310048 100644 --- a/.azuredevops/components/rocprofiler-sdk.yml +++ b/.azuredevops/components/rocprofiler-sdk.yml @@ -8,11 +8,13 @@ parameters: - name: aptPackages type: object default: - - cmake - - python3-pip + - build-essential + - libdrm-amdgpu-dev - libdrm-dev - libdw-dev - libelf-dev + - pkg-config + - python3-pip - name: pipModules type: object default: @@ -27,7 +29,7 @@ parameters: - pandas - perfetto - pycobertura - - pytest + - pytest>=6.2.5 - pyyaml - name: rocmDependencies type: object @@ -40,16 +42,13 @@ parameters: - rocminfo - ROCR-Runtime - rocprofiler-register - - roctracer - - aomp jobs: -- job: rocprofilersdk +- job: rocprofiler_sdk variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -61,37 +60,98 @@ jobs: parameters: aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }} + registerRadeon: 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 - parameters: - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: Add Python site-packages binaries to path + inputs: + targetType: inline + script: | + USER_BASE=$(python3 -m site --user-base) + echo "##vso[task.prependpath]$USER_BASE/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=OFF - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) - multithreadFlag: -- -j2 + -DROCPROFILER_BUILD_SAMPLES=ON + -DROCPROFILER_BUILD_RELEASE=ON + -DGPU_TARGETS=$(JOB_GPU_TARGET) + multithreadFlag: -- -j4 - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters: gpuTarget: $(JOB_GPU_TARGET) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + gpuTarget: $(JOB_GPU_TARGET) + +- job: rocprofiler_sdk_testing + dependsOn: rocprofiler_sdk + 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 }} + registerRadeon: 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_GPU_TARGET) + - task: Bash@3 + displayName: Add Python site-packages binaries to path + inputs: + targetType: inline + script: | + USER_BASE=$(python3 -m site --user-base) + echo "##vso[task.prependpath]$USER_BASE/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_GPU_TARGET) + multithreadFlag: -- -j16 + - 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_GPU_TARGET) diff --git a/.azuredevops/components/rocprofiler-systems.yml b/.azuredevops/components/rocprofiler-systems.yml index 02a388b15..245761c0f 100644 --- a/.azuredevops/components/rocprofiler-systems.yml +++ b/.azuredevops/components/rocprofiler-systems.yml @@ -17,7 +17,12 @@ parameters: - clang - cmake - environment-modules + - ffmpeg - g++-12 + - libavcodec-dev + - libavformat-dev + - libavutil-dev + - libdrm-amdgpu-dev - libdrm-dev - libfabric-dev - libiberty-dev @@ -27,8 +32,9 @@ parameters: - libopenmpi-dev - m4 - openmpi-bin - - software-properties-common + - pkg-config - python3-pip + - software-properties-common - texinfo - zlib1g-dev - name: pipModules @@ -44,13 +50,12 @@ parameters: - clr - llvm-project - rccl + - rocDecode - rocm-core - rocm_smi_lib - rocminfo - ROCR-Runtime - - rocprofiler - rocprofiler-register - - roctracer - rocprofiler-sdk jobs: @@ -70,26 +75,17 @@ jobs: parameters: aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }} + registerRadeon: 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 - parameters: - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -123,7 +119,91 @@ jobs: -DDYNINST_BUILD_BOOST=ON -DROCPROFSYS_USE_PAPI=ON -DROCPROFSYS_USE_MPI=ON - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) + multithreadFlag: -- -j32 + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml + parameters: + gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + parameters: + gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + gpuTarget: $(JOB_GPU_TARGET) + registerROCmPackages: true + optSymLink: true + extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin + +- job: rocprofiler_systems_testing + dependsOn: rocprofiler_systems + condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName']))) + timeoutInMinutes: 180 + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + name: $(JOB_TEST_POOL) + demands: firstRenderDeviceAccess + 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 }} + registerRadeon: 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_GPU_TARGET) + - task: Bash@3 + displayName: ROCm symbolic link + inputs: + targetType: inline + script: | + sudo rm -rf /opt/rocm + sudo ln -s $(Agent.BuildDirectory)/rocm /opt/rocm + - task: Bash@3 + displayName: Add ROCm binaries to PATH + inputs: + targetType: inline + script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/bin" + - task: Bash@3 + displayName: Add ROCm compilers to PATH + inputs: + targetType: inline + script: echo "##vso[task.prependpath]$(Agent.BuildDirectory)/rocm/llvm/bin" + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: +# build flags reference: https://rocm.docs.amd.com/projects/omnitrace/en/latest/install/install.html + extraBuildFlags: >- + -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm + -DROCM_PATH=$(Agent.BuildDirectory)/rocm + -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 + -DGPU_TARGETS=$(JOB_GPU_TARGET) multithreadFlag: -- -j32 - task: Bash@3 displayName: Set up rocprofiler-systems env @@ -152,3 +232,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + registerROCmPackages: true + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true + extraPaths: /home/user/workspace/rocm/bin:/home/user/workspace/rocm/llvm/bin diff --git a/.azuredevops/components/rocprofiler.yml b/.azuredevops/components/rocprofiler.yml index 352c01124..9446de597 100644 --- a/.azuredevops/components/rocprofiler.yml +++ b/.azuredevops/components/rocprofiler.yml @@ -67,21 +67,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -98,6 +88,15 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) + extraEnvVars: + - HIP_ROCCLR_HOME:::/home/user/workspace/rocm + - ROCM_PATH:::/home/user/workspace/rocm - job: rocprofiler_testing dependsOn: rocprofiler @@ -122,19 +121,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds - task: Bash@3 displayName: Setup test environment inputs: @@ -156,3 +147,10 @@ jobs: 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 + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) + optSymLink: true diff --git a/.azuredevops/components/rocr_debug_agent.yml b/.azuredevops/components/rocr_debug_agent.yml index 4f070d40f..eedad2fb9 100644 --- a/.azuredevops/components/rocr_debug_agent.yml +++ b/.azuredevops/components/rocr_debug_agent.yml @@ -14,6 +14,7 @@ parameters: - libdw-dev - libstdc++-12-dev - python-is-python3 + - python3-pip - name: rocmDependencies type: object default: @@ -39,8 +40,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all steps: @@ -53,13 +53,8 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} - # 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 parameters: extraBuildFlags: >- @@ -70,6 +65,11 @@ jobs: -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-links.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + gpuTarget: $(JOB_GPU_TARGET) - job: rocr_debug_agent_testing dependsOn: rocr_debug_agent @@ -92,19 +92,11 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - 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: + checkoutRef: ${{ parameters.checkoutRef }} 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/build-cmake.yml parameters: componentName: rocr_debug_agent-tests @@ -120,3 +112,8 @@ jobs: parameters: componentName: rocr_debug_agent testDir: '$(Agent.BuildDirectory)/rocm/src/rocm-debug-agent-test' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/roctracer.yml b/.azuredevops/components/roctracer.yml index 5865a7531..fc05e9e24 100644 --- a/.azuredevops/components/roctracer.yml +++ b/.azuredevops/components/roctracer.yml @@ -9,9 +9,10 @@ parameters: type: object default: - cmake - - ninja-build - doxygen - graphviz + - ninja-build + - python3-pip - name: pipModules type: object default: @@ -41,8 +42,7 @@ jobs: - template: /.azuredevops/variables-global.yml - name: HIP_ROCCLR_HOME value: $(Build.BinariesDirectory)/rocm - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -60,14 +60,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -84,6 +79,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) - job: roctracer_testing dependsOn: roctracer @@ -108,19 +109,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} 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: @@ -129,3 +122,9 @@ jobs: testParameters: '' testDir: $(Agent.BuildDirectory) testPublishResults: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/components/rpp.yml b/.azuredevops/components/rpp.yml index 94860d092..0e671ea66 100644 --- a/.azuredevops/components/rpp.yml +++ b/.azuredevops/components/rpp.yml @@ -8,13 +8,14 @@ parameters: - name: aptPackages type: object default: + - clang - cmake + - imagemagick - libopencv-dev - libsndfile1-dev - libstdc++-12-dev - - imagemagick - ninja-build - - clang + - python3-pip - name: pipModules type: object default: @@ -48,8 +49,7 @@ jobs: variables: - group: common - template: /.azuredevops/variables-global.yml - pool: - vmImage: ${{ variables.BASE_BUILD_POOL }} + pool: ${{ variables.LOW_BUILD_POOL }} workspace: clean: all strategy: @@ -66,14 +66,9 @@ jobs: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + checkoutRef: ${{ parameters.checkoutRef }} 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 parameters: extraBuildFlags: >- @@ -83,7 +78,7 @@ jobs: -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DHALF_INCLUDE_DIRS=$(Agent.BuildDirectory)/rocm/include -DCMAKE_BUILD_TYPE=Release - -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) + -DGPU_TARGETS=$(JOB_GPU_TARGET) -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters: @@ -91,6 +86,12 @@ jobs: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: 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_GPU_TARGET) - job: rpp_testing dependsOn: rpp @@ -118,19 +119,11 @@ jobs: 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: + checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) - ${{ if eq(parameters.checkoutRef, '') }}: - dependencySource: staging - ${{ elseif ne(parameters.checkoutRef, '') }}: - dependencySource: tag-builds # Dependencies from: https://github.com/ROCm/rpp/blob/develop/utilities/test_suite/README.md - task: Bash@3 displayName: Build and install Turbo JPEG @@ -139,7 +132,7 @@ jobs: script: | sudo apt-get install nasm sudo apt-get install wget - git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git + git clone -b 3.0.2 https://github.com/libjpeg-turbo/libjpeg-turbo.git cd libjpeg-turbo mkdir build cd build @@ -156,7 +149,7 @@ jobs: inputs: targetType: 'inline' script: | - git clone https://github.com/NIFTI-Imaging/nifti_clib.git + git clone -b v3.0.1 https://github.com/NIFTI-Imaging/nifti_clib.git cd nifti_clib mkdir build cd build @@ -182,3 +175,9 @@ jobs: testDir: 'rpp-tests' - script: sudo rm /opt/rocm condition: always() + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + environment: test + gpuTarget: $(JOB_GPU_TARGET) diff --git a/.azuredevops/nightly/pytorch.yml b/.azuredevops/nightly/pytorch.yml index 0282ae219..56099e78a 100644 --- a/.azuredevops/nightly/pytorch.yml +++ b/.azuredevops/nightly/pytorch.yml @@ -177,8 +177,6 @@ jobs: value: 6.3.0 - name: MKLROOT value: /opt/intel - - name: AOTRITON_INSTALLED_PREFIX - value: /opt/rocm/aotriton - name: DESIRED_PYTHON value: 3.10 - name: PYTORCH_ROOT @@ -275,12 +273,6 @@ jobs: script: | sudo PYTORCH_ROCM_ARCH=$(JOB_GPU_TARGET) MKLROOT=$(MKLROOT) bash pytorch/.ci/docker/common/install_rocm_magma.sh 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 displayName: Run ROCm Build Script inputs: @@ -293,7 +285,6 @@ jobs: DESIRED_PYTHON=$(DESIRED_PYTHON) PYTORCH_ROOT=$(PYTORCH_ROOT) CMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm - AOTRITON_INSTALLED_PREFIX=$(AOTRITON_INSTALLED_PREFIX) DESIRED_DEVTOOLSET=$(DESIRED_DEVTOOLSET) TORCH_PACKAGE_NAME=torch.$(ROCM_BRANCH).$(JOB_GPU_TARGET) PYTORCH_BUILD_VERSION=$(cat $(Build.SourcesDirectory)/pytorch/version.txt | cut -da -f1) @@ -353,11 +344,25 @@ jobs: sourceDir: $(Build.SourcesDirectory)/vision/dist contentsString: '*.whl' clean: false + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml + parameters: + gpuTarget: $(JOB_GPU_TARGET) - task: PublishPipelineArtifact@1 displayName: 'wheel file Publish' retryCountOnTaskFailure: 3 inputs: 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 dependsOn: pytorch @@ -390,6 +395,12 @@ jobs: parameters: aptPackages: ${{ parameters.aptPackages }} 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 - task: DownloadPipelineArtifact@2 displayName: 'Download Pipeline Wheel Files' @@ -463,7 +474,7 @@ jobs: python3 -c 'import torch; x = torch.rand(5, 3); print(x)' # Test artifact build script has too many if statements for different environments # Based off the snippet of interest for this environment, with some adjustments -# https://github.com/pytorch/pytorch/blob/main/.ci/pytorch/build.sh#L335-L375 +# https://github.com/pytorch/pytorch/blob/main/.ci/pytorch/build.sh#L330-L371 # Removing in-line comments since it does not fit with the yaml markup - task: Bash@3 displayName: Build Pytorch Test Artifacts diff --git a/.azuredevops/nightly/rocm-nightly.yml b/.azuredevops/nightly/rocm-nightly.yml index 0c46ee7d7..6fffd9a8b 100644 --- a/.azuredevops/nightly/rocm-nightly.yml +++ b/.azuredevops/nightly/rocm-nightly.yml @@ -1,5 +1,10 @@ parameters: -# currently excludes clr +- name: dependencySource + type: string + default: staging + values: + - staging + - mainline - name: rocmDependencies type: object default: @@ -60,6 +65,7 @@ parameters: - roctracer - rocWMMA - rpp + - TransferBench trigger: none pr: none @@ -99,11 +105,11 @@ jobs: displayName: System disk space before ROCm - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: + dependencySource: ${{ parameters.dependencySource }} dependencyList: ${{ parameters.rocmDependencies }} - dependencySource: staging + gpuTarget: $(JOB_GPU_TARGET) skipLibraryLinking: true skipLlvmSymlink: true - gpuTarget: $(JOB_GPU_TARGET) - script: df -h displayName: System disk space after ROCm - script: du -sh $(Agent.BuildDirectory)/rocm @@ -124,3 +130,10 @@ jobs: retryCountOnTaskFailure: 3 inputs: targetPath: '$(Build.ArtifactStagingDirectory)' + - task: Bash@3 + displayName: Save pipeline artifact file name + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: echo "$(Build.DefinitionName)_$(Build.BuildNumber)_ubuntu2204_$(JOB_GPU_TARGET).tar.gz" >> pipelineArtifacts.txt + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml diff --git a/.azuredevops/templates/steps/artifact-download.yml b/.azuredevops/templates/steps/artifact-download.yml index bc21b21e8..b738e228b 100644 --- a/.azuredevops/templates/steps/artifact-download.yml +++ b/.azuredevops/templates/steps/artifact-download.yml @@ -6,152 +6,12 @@ parameters: - name: pipelineId type: string default: '' -- name: useDefaultBranch - type: boolean - 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 - type: string - default: '' -- name: defaultBranchList - type: object - default: - AMDMIGraphX: develop - 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 - rocJPEG: develop - rocm-cmake: develop - rocm-core: master - 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-compute: 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 - rocJPEG: mainline - 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-compute: amd-mainline - 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 -# BELOW REQUIRED IF useDefaultBranch false - name: branchName type: string default: '$(Build.SourceBranchName)' # for tagged builds +- name: fileFilter + type: string + default: '' steps: - task: Bash@3 @@ -172,25 +32,16 @@ steps: definition: ${{ parameters.pipelineId }} specificBuildWithTriggering: true itemPattern: '**/*${{ parameters.fileFilter }}*' - ${{ if eq(parameters.latestFromBranch, true) }}: - ${{ if notIn(parameters.componentName, 'aomp') }}: # remove this once these pipelines are functional + up-to-date - buildVersionToDownload: latestFromBranch # default is 'latest' - ${{ if eq(parameters.useDefaultBranch, true) }}: - branchName: refs/heads/${{ parameters.defaultBranchList[parameters.componentName] }} - ${{ elseif eq(parameters.useMainlineBranch, true) }}: - branchName: refs/heads/${{ parameters.mainlineBranchList[parameters.componentName] }} - ${{ else }}: - branchName: ${{ parameters.branchName }} + ${{ if notIn(parameters.componentName, 'aomp') }}: # remove this once these pipelines are functional + up-to-date + buildVersionToDownload: latestFromBranch # default is 'latest' + branchName: refs/heads/${{ parameters.branchName }} allowPartiallySucceededBuilds: $(allowPartiallySucceededBuilds) targetPath: '$(Pipeline.Workspace)/d' - task: ExtractFiles@1 displayName: Extract ${{ parameters.componentName }} inputs: archiveFilePatterns: '$(Pipeline.Workspace)/d/**/*.tar.gz' - ${{ if parameters.extractToMnt }}: - destinationFolder: '/mnt/rocm' - ${{ else }}: - destinationFolder: '$(Agent.BuildDirectory)/rocm' + destinationFolder: '$(Agent.BuildDirectory)/rocm' cleanDestinationFolder: false overwriteExistingFiles: true - task: DeleteFiles@1 diff --git a/.azuredevops/templates/steps/artifact-links.yml b/.azuredevops/templates/steps/artifact-links.yml new file mode 100644 index 000000000..5f5b682ad --- /dev/null +++ b/.azuredevops/templates/steps/artifact-links.yml @@ -0,0 +1,32 @@ +# 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 diff --git a/.azuredevops/templates/steps/artifact-upload.yml b/.azuredevops/templates/steps/artifact-upload.yml index 9229e64d6..a41db825f 100644 --- a/.azuredevops/templates/steps/artifact-upload.yml +++ b/.azuredevops/templates/steps/artifact-upload.yml @@ -27,6 +27,12 @@ steps: SourceFolder: '$(Build.BinariesDirectory)' Contents: '/**/*' RemoveDotFiles: true +- task: Bash@3 + displayName: Save pipeline artifact file name + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: echo "$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.tar.gz" >> pipelineArtifacts.txt # then publish it - ${{ if parameters.publish }}: - task: PublishPipelineArtifact@1 diff --git a/.azuredevops/templates/steps/dependencies-aqlprofile.yml b/.azuredevops/templates/steps/dependencies-aqlprofile.yml index 42ca8dac6..191edcde8 100644 --- a/.azuredevops/templates/steps/dependencies-aqlprofile.yml +++ b/.azuredevops/templates/steps/dependencies-aqlprofile.yml @@ -1,29 +1,16 @@ -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: - task: Bash@3 displayName: Get aqlprofile package name inputs: targetType: inline script: | - export packageName=$(curl -s ${{ parameters.repositoryUrl[parameters.dependencySource] }} | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb") + export packageName=$(curl -s https://repo.radeon.com/rocm/apt/latest/pool/main/h/hsa-amd-aqlprofile/ | grep -oP "href=\"\K[^\"]*$(lsb_release -rs)[^\"]*\.deb") echo "##vso[task.setvariable variable=packageName;isreadonly=true]$packageName" - task: Bash@3 displayName: 'Download aqlprofile' inputs: targetType: inline - script: wget -nv ${{ parameters.repositoryUrl[parameters.dependencySource] }}$(packageName) + script: wget -nv https://repo.radeon.com/rocm/apt/latest/pool/main/h/hsa-amd-aqlprofile/$(packageName) workingDirectory: '$(Pipeline.Workspace)' - task: Bash@3 displayName: 'Extract aqlprofile' diff --git a/.azuredevops/templates/steps/dependencies-other.yml b/.azuredevops/templates/steps/dependencies-other.yml index 34a89d1a3..cea3c1ca5 100644 --- a/.azuredevops/templates/steps/dependencies-other.yml +++ b/.azuredevops/templates/steps/dependencies-other.yml @@ -6,10 +6,26 @@ parameters: - name: pipModules type: object default: [] +- name: registerRadeon + type: boolean + default: false steps: +- ${{ if eq(parameters.registerRadeon, true) }}: + - task: Bash@3 + displayName: 'Register repo.radeon 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/latest/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/latest 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 diff --git a/.azuredevops/templates/steps/dependencies-rocm.yml b/.azuredevops/templates/steps/dependencies-rocm.yml index 87f77658d..74c11528e 100644 --- a/.azuredevops/templates/steps/dependencies-rocm.yml +++ b/.azuredevops/templates/steps/dependencies-rocm.yml @@ -1,160 +1,21 @@ # download and install rocm dependencies through pipeline builds in the project -# REQUIRED 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 type: object default: [] -- 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 +- name: gpuTarget type: string 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) - rocJPEG: $(ROCJPEG_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-compute: $(ROCPROFILER_COMPUTE_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) - rocJPEG: $(ROCJPEG_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-compute: $(ROCPROFILER_COMPUTE_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 # only leave last call false to optimize sequence - name: skipLibraryLinking @@ -170,52 +31,315 @@ parameters: - name: setupHIPLibrarySymlinks type: boolean default: false -# some ROCm components can specify GPU target and this will affect downloads -- name: gpuTarget - type: string - default: '' -# array of ROCm components that can specify GPU target or have dependency of such a component -# these components would have parallel build jobs per GPU target so they produce multiple artifacts -# only download artifact tied to the GPU target -- name: componentsWithGPUTarget + +- name: componentVarList type: object default: - - AMDMIGraphX - - composable_kernel - - hipBLASLt - - hipCUB - - hipFFT - - hipRAND - - hipSPARSELt - - hipTensor - - omnitrace - - rccl - - rocALUTION - - rocBLAS - - rocFFT - - rocm-examples - - rocPRIM - - rocprofiler-compute - - rocprofiler-sdk - - rocprofiler-systems - - rocprofiler - - rocPyDecode - - rocRAND - - rocSOLVER - - rocSPARSE - - rocThrust - - roctracer - - rocWMMA - - rpp -# list below do not have flag for gpu target but have dependencies of components that do, so build separately per gpu target - - hipBLAS - - hipSOLVER - - hipSPARSE - - MIOpen - - MIVision - - omniperf - - rocAL - - ROCmValidationSuite + AMDMIGraphX: + pipelineId: $(AMDMIGRAPHX_PIPELINE_ID) + stagingBranch: develop + mainlineBranch: mainline + hasGpuTarget: true + amdsmi: + pipelineId: $(AMDSMI_PIPELINE_ID) + stagingBranch: amd-staging + mainlineBranch: amd-mainline + hasGpuTarget: false + aomp-extras: + pipelineId: $(AOMP_EXTRAS_PIPELINE_ID) + stagingBranch: aomp-dev + mainlineBranch: aomp-dev + hasGpuTarget: false + aomp: + pipelineId: $(AOMP_PIPELINE_ID) + stagingBranch: aomp-dev + mainlineBranch: amd-mainline-open + hasGpuTarget: false + clr: + pipelineId: $(CLR_PIPELINE_ID) + stagingBranch: amd-staging + mainlineBranch: amd-mainline + hasGpuTarget: false + composable_kernel: + pipelineId: $(COMPOSABLE_KERNEL_PIPELINE_ID) + stagingBranch: develop + mainlineBranch: mainline + hasGpuTarget: true + half: + pipelineId: $(HALF_PIPELINE_ID) + stagingBranch: rocm + mainlineBranch: rocm + hasGpuTarget: false + 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-open + hasGpuTarget: false + MIOpen: + pipelineId: $(MIOpen_PIPELINE_ID) + stagingBranch: develop + mainlineBranch: mainline + hasGpuTarget: true + MIVisionX: + pipelineId: $(MIVISIONX_PIPELINE_ID) + stagingBranch: develop + mainlineBranch: mainline + 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: master + 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: develop + mainlineBranch: develop + hasGpuTarget: true + rocminfo: + pipelineId: $(ROCMINFO_PIPELINE_ID) + stagingBranch: amd-staging + mainlineBranch: amd-master + hasGpuTarget: false + rocMLIR: + pipelineId: $(ROCMLIR_PIPELINE_ID) + stagingBranch: develop + mainlineBranch: mainline + hasGpuTarget: false + ROCmValidationSuite: + pipelineId: $(ROCMVALIDATIONSUITE_PIPELINE_ID) + stagingBranch: master + mainlineBranch: mainline + 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: amd-staging + 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-master + 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-master + 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: # assuming artifact-download.yml template file in same directory @@ -229,47 +353,59 @@ steps: - template: artifact-download.yml parameters: componentName: ${{ split(dependency, ':')[0] }} - extractToMnt: ${{ parameters.extractToMnt }} - ${{ if eq(parameters.dependencySource, 'staging') }}: - 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] ) }}: + pipelineId: ${{ parameters.componentVarList[split(dependency, ':')[0]].pipelineId }} + ${{ if parameters.componentVarList[split(dependency, ':')[0]].hasGpuTarget }}: 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 }}: - fileFilter: ${{ split(dependency, ':')[1] }} + branchName: ${{ parameters.componentVarList[split(dependency, ':')[0]].stagingBranch }} # no colon (:) found in this item in the list - ${{ else }}: - template: artifact-download.yml parameters: componentName: ${{ dependency }} - extractToMnt: ${{ parameters.extractToMnt }} - ${{ if eq(parameters.dependencySource, 'staging') }}: - 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 ) }}: + pipelineId: ${{ parameters.componentVarList[dependency].pipelineId }} + ${{ if parameters.componentVarList[dependency].hasGpuTarget }}: fileFilter: ${{ parameters.gpuTarget }} -# fixed case only accepts one component at a time, so no array input -- ${{ if eq(parameters.dependencySource, 'fixed') }}: - - template: artifact-download.yml - parameters: - componentName: ${{ parameters.fixedComponentName }} - pipelineId: ${{ parameters.fixedPipelineIdentifier }} - latestFromBranch: false - extractToMnt: ${{ parameters.extractToMnt }} + # dependencySource = staging + ${{ if eq(parameters.dependencySource, 'staging')}}: + branchName: ${{ parameters.componentVarList[dependency].stagingBranch }} + # dependencySource = mainline + ${{ elseif eq(parameters.dependencySource, 'mainline')}}: + branchName: ${{ parameters.componentVarList[dependency].mainlineBranch }} + # checkoutRef = staging + ${{ elseif eq(parameters.checkoutRef, parameters.componentVarList[variables['Build.DefinitionName']].stagingBranch) }}: + 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 - ${{ if eq(parameters.skipLlvmSymlink, false) }}: - task: Bash@3 @@ -320,27 +456,16 @@ steps: displayName: 'List downloaded ROCm files' inputs: targetType: inline - ${{ if eq(parameters.extractToMnt, true) }}: - script: ls -1R /mnt/rocm - ${{ else }}: - script: ls -1R $(Agent.BuildDirectory)/rocm + script: ls -1R $(Agent.BuildDirectory)/rocm - ${{ if eq(parameters.skipLibraryLinking, false) }}: - task: Bash@3 displayName: 'Link ROCm shared libraries' inputs: targetType: inline # OS ignores if the ROCm lib folder shows up more than once - ${{ if eq(parameters.extractToMnt, true) }}: - script: | - echo /mnt/rocm/lib | sudo tee /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 cat /etc/ld.so.conf.d/rocm-ci.conf - 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 + 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 diff --git a/.azuredevops/templates/steps/docker-container.yml b/.azuredevops/templates/steps/docker-container.yml new file mode 100644 index 000000000..be244b546 --- /dev/null +++ b/.azuredevops/templates/steps/docker-container.yml @@ -0,0 +1,348 @@ +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 + +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(failed(), ${{ 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 apt-get update" >> Dockerfile + echo "RUN apt-get install -y 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(failed(), ${{ 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(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + displayName: Base Apt Packages to Dockerfile + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: echo "RUN apt-get install --yes ${{ 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(failed(), ${{ 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/latest/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/latest 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 apt-get update" >> Dockerfile + - ${{ if eq(parameters.registerCUDAPackages, true) }}: + - task: Bash@3 + condition: or(failed(), ${{ 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 apt-get update' >> Dockerfile + - ${{ if eq(parameters.registerJPEGPackages, true) }}: + - task: Bash@3 + condition: or(failed(), ${{ 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 apt update" >> Dockerfile +# install AOCL to docker container, if needed + - ${{ if eq(parameters.installAOCL, true) }}: + - task: Bash@3 + condition: or(failed(), ${{ 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 apt install -y ./${{ 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(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + displayName: Extra Apt Packages to Dockerfile + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: echo "RUN apt-get install --yes ${{ join(' ', parameters.aptPackages) }}" >> Dockerfile +# install latest cmake to docker container, if needed + - ${{ if eq(parameters.installLatestCMake, true) }}: + - task: Bash@3 + condition: or(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + displayName: latest cmake install to Dockerfile + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: | + echo "RUN apt purge cmake -y" >> 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ 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(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + displayName: Add to PATH in Dockerfile + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: echo "ENV PATH='${{ parameters.extraPaths }}:\$PATH'" >> 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(failed(), ${{ 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(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + displayName: Print Dockerfile + inputs: + workingDirectory: $(Pipeline.Workspace) + targetType: inline + script: cat Dockerfile + - task: Docker@2 + condition: or(failed(), ${{ eq(parameters.forceDockerCreation, true) }}) + inputs: + containerRegistry: 'ContainerService' + ${{ 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(failed(), ${{ 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)" + ${{ else }}: + script: echo "rocmexternalcicd.azurecr.io/$(Build.DefinitionName)-${{ parameters.environment }}:$(Build.BuildId)" diff --git a/.azuredevops/templates/steps/manifest.yml b/.azuredevops/templates/steps/manifest.yml index 22006787f..e6a1c35da 100644 --- a/.azuredevops/templates/steps/manifest.yml +++ b/.azuredevops/templates/steps/manifest.yml @@ -138,3 +138,13 @@ steps: inputs: tabName: Manifest reportDir: $(Build.ArtifactStagingDirectory)/manifest_$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.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.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.html" >> pipelineArtifacts.txt + echo "manifest_$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}_${{ parameters.gpuTarget }}.json" >> pipelineArtifacts.txt diff --git a/.azuredevops/templates/steps/miopen-get-ck-build.yml b/.azuredevops/templates/steps/miopen-get-ck-build.yml index 6ea77a51f..6784c23ce 100644 --- a/.azuredevops/templates/steps/miopen-get-ck-build.yml +++ b/.azuredevops/templates/steps/miopen-get-ck-build.yml @@ -36,7 +36,7 @@ steps: 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)&status=completed&result=succeeded&\$top=1&api-version=7.1" + 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 diff --git a/.azuredevops/templates/steps/test.yml b/.azuredevops/templates/steps/test.yml index 86a66aca5..378d39f8f 100644 --- a/.azuredevops/templates/steps/test.yml +++ b/.azuredevops/templates/steps/test.yml @@ -35,6 +35,7 @@ parameters: - MIVisionX - rocm-cmake - rocm_smi_lib + - rocprofiler-sdk - roctracer steps: diff --git a/.azuredevops/variables-global.yml b/.azuredevops/variables-global.yml index 4b638b571..17939e517 100644 --- a/.azuredevops/variables-global.yml +++ b/.azuredevops/variables-global.yml @@ -74,9 +74,9 @@ variables: - name: HALF_TAGGED_PIPELINE_ID value: 11 - name: HALF560_PIPELINE_ID - value: 66 -- name: HALF560_TAGGED_PIPELINE_ID - value: 66 + value: 68 +- name: HALF560_BUILD_ID + value: 621 - name: HIP_PIPELINE_ID value: 93 - name: HIP_TAGGED_PIPELINE_ID @@ -343,5 +343,9 @@ variables: value: 78 - name: RPP_TAGGED_PIPELINE_ID value: 39 +- name: TRANSFERBENCH_PIPELINE_ID + value: 265 +- name: TRANSFERBENCH_TAGGED_PIPELINE_ID + value: 266 - name: BOOST_DEPENDENCY_PIPELINE_ID value: 250 diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 88ff147dc..46cf26848 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -2,13 +2,13 @@ name: Linting on: push: - branches: + branches: - develop - main - 'docs/*' - 'roc**' pull_request: - branches: + branches: - develop - main - 'docs/*' diff --git a/.spellcheck.local.yaml b/.spellcheck.local.yaml new file mode 100644 index 000000000..d1b54c2ce --- /dev/null +++ b/.spellcheck.local.yaml @@ -0,0 +1,10 @@ +matrix: +- name: Markdown + sources: + - ['tools/autotag/templates/**/*.md', '!tools/autotag/templates/**/5*.md', '!tools/autotag/templates/**/6.0*.md', '!tools/autotag/templates/**/6.1*.md'] +- name: reST + sources: + - [] +- name: Cpp + sources: + - [] diff --git a/.wordlist.txt b/.wordlist.txt index a68e052a3..413254d13 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -26,6 +26,7 @@ ASm ATI AddressSanitizer AlexNet +Andrej Arb Autocast BARs @@ -152,6 +153,8 @@ HIPCC HIPExtension HIPification HIPIFY +HIPification +HIPify HPC HPCG HPE @@ -187,15 +190,17 @@ Interop Intersphinx Intra Ioffe +JAX's Jinja JSON Jupyter KFD KFDTest -KiB KMD KV KVM +Karpathy's +KiB Keras Khronos LAPACK @@ -247,6 +252,7 @@ MyST NBIO NBIOs NCCL +NCF NIC NICs NLI @@ -288,6 +294,7 @@ OpenVX OpenXLA Oversubscription PagedAttention +Pallas PCC PCI PCIe @@ -431,6 +438,7 @@ Unittests Unhandled VALU VBIOS +VCN VGPR VGPRs VM @@ -576,6 +584,7 @@ gRPC galb gcc gdb +gemm gfortran gfx githooks @@ -635,11 +644,13 @@ jax kdb kfd kv +lang latencies len libfabric libjpeg libs +linalg linearized linter linux @@ -662,6 +673,7 @@ mutex mvffr namespace namespaces +nanoGPT num numref ocl @@ -673,7 +685,9 @@ optimizers os oversubscription pageable +pallas parallelization +parallelizing parameterization passthrough perfcounter @@ -704,10 +718,12 @@ protobuf pseudorandom py recommender +recommenders quantile quantizer quasirandom queueing +radeon rccl rdc rdma @@ -761,6 +777,7 @@ runtimes sL scalability scalable +scipy seealso sendmsg seqs @@ -785,6 +802,7 @@ submodules supercomputing symlink symlinks +sys td tensorfloat th diff --git a/LICENSE b/LICENSE index 0928493a1..5c22b7e04 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 - 2024 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2023 - 2025 Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 34af671b4..e2454e9e1 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,8 @@ The following example shows how to use the repo tool to download the ROCm source ```bash mkdir -p ~/ROCm/ cd ~/ROCm/ -~/bin/repo init -u http://github.com/ROCm/ROCm.git -b roc-6.3.x +export ROCM_VERSION=6.3.1 +~/bin/repo init -u http://github.com/ROCm/ROCm.git -b roc-6.3.x -m tools/rocm-build/rocm-${ROCM_VERSION}.xml ~/bin/repo sync ``` @@ -77,7 +78,7 @@ The Build time will reduce significantly if we limit the GPU Architecture/s agai mkdir -p ~/WORKSPACE/ # Or any folder name other than WORKSPACE cd ~/WORKSPACE/ export ROCM_VERSION=6.3.1 -~/bin/repo init -u http://github.com/ROCm/ROCm.git -b roc-6.3.x -m tools/rocm-build/rocm-${ROCM_VERSION}.xml +~/bin/repo init -u http://github.com/ROCm/ROCm.git -b develop -m tools/rocm-build/rocm-${ROCM_VERSION}.xml ~/bin/repo sync # -------------------------------------- diff --git a/RELEASE.md b/RELEASE.md index ade28cb26..9ba6eb786 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -10,7 +10,7 @@ -# ROCm 6.3.1 release notes +# ROCm 6.3.2 release notes The release notes provide a summary of notable changes since the previous ROCm release. @@ -35,57 +35,35 @@ documentation to verify compatibility and system requirements. ``` ## Release highlights -The following are notable new features and improvements in ROCm 6.3.1. For changes to individual components, see +The following are notable improvements in ROCm 6.3.2. For changes to individual components, see [Detailed component changes](#detailed-component-changes). -### Per queue resiliency for Instinct MI300 accelerators - -The AMDGPU driver now includes enhanced resiliency for misbehaving applications on AMD Instinct MI300 accelerators. This helps isolate the impact of misbehaving applications, ensuring other workloads running on the same accelerator are unaffected. - -### ROCm Runfile Installer - -ROCm 6.3.1 introduces the ROCm Runfile Installer, with initial support for Ubuntu 22.04. The ROCm Runfile Installer facilitates ROCm installation without using a native Linux package management system, with or without network or internet access. For more information, see the [ROCm Runfile Installer documentation](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.3.1/install/rocm-runfile-installer.html). - ### ROCm documentation updates ROCm documentation continues to be updated to provide clearer and more comprehensive guidance for a wider variety of user needs and use cases. -* Added documentation on training a model with ROCm Megatron-LM. AMD offers a Docker image for MI300X accelerators - containing essential components to get started, including ROCm libraries, PyTorch, and Megatron-LM utilities. See - [Training a model using ROCm Megatron-LM](https://rocm.docs.amd.com/en/docs-6.3.1/how-to/rocm-for-ai/train-a-model.html) - to get started. +* Documentation about ROCm compatibility with deep learning frameworks has been added. These topics outline ROCm-enabled features for each deep learning framework, key ROCm libraries that can influence the capabilities, validated Docker image tags, and features supported across the available ROCm and framework versions. For more information, see: - The new ROCm Megatron-LM training Docker accompanies the [ROCm vLLM inference - Docker](https://rocm.docs.amd.com/en/docs-6.3.1/how-to/performance-validation/mi300x/vllm-benchmark.html) - as a set of ready-to-use containerized solutions to get started with using ROCm - for AI. + * [PyTorch compatibility](https://rocm.docs.amd.com/en/latest/compatibility/ml-compatibility/pytorch-compatibility.html) -* Updated the [Instinct MI300X workload tuning - guide](https://rocm.docs.amd.com/en/docs-6.3.1/how-to/tuning-guides/mi300x/workload.html) with more current optimization - strategies. The updated sections include guidance on vLLM optimization, PyTorch TunableOp, and hipBLASLt tuning. + * [TensorFlow compatibility](https://rocm.docs.amd.com/en/latest/compatibility/ml-compatibility/tensorflow-compatibility.html) -* HIP graph-safe libraries operate safely in HIP execution graphs. [HIP graphs](https://rocm.docs.amd.com/projects/HIP/en/docs-6.3.1/how-to/hip_runtime_api/hipgraph.html#how-to-hip-graph) are an alternative way of executing tasks on a GPU that can provide performance benefits over launching kernels using the standard method via streams. A topic that shows whether a [ROCm library is graph-safe](https://rocm.docs.amd.com/en/docs-6.3.1/reference/graph-safe-support.html) has been added. + * [JAX compatibility](https://rocm.docs.amd.com/en/latest/compatibility/ml-compatibility/jax-compatibility.html) -* The [Device memory](https://rocm.docs.amd.com/projects/HIP/en/docs-6.3.1/how-to/hip_runtime_api/memory_management/device_memory.html) topic in the HIP memory management section has been updated. - -* The HIP documentation has expanded with new resources for developers: - * [Multi device management](https://rocm.docs.amd.com/projects/HIP/en/docs-6.3.1/how-to/hip_runtime_api/multi_device.html) - * [OpenGL interoperability](https://rocm.docs.amd.com/projects/HIP/en/docs-6.3.1/how-to/hip_runtime_api/opengl_interop.html) +* The [HIP C++ language extensions](https://rocm.docs.amd.com/projects/HIP/en/latest/how-to/hip_cpp_language_extensions.html) and [Kernel language C++ support](https://rocm.docs.amd.com/projects/HIP/en/latest/how-to/kernel_language_cpp_support.html) topics have been reorganized to make them easier to find and review. The topics have also been enhanced with new content. ## Operating system and hardware support changes -ROCm 6.3.1 adds support for Debian 12 (kernel: 6.1). Debian is supported only on AMD Instinct accelerators. See the installation instructions at [Debian native installation](https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.3.1/install/native-install/debian.html). - -ROCm 6.3.1 enables support for AMD Instinct MI325X accelerator. For more information, see [AMD Instinct™ MI325X Accelerators](https://www.amd.com/en/products/accelerators/instinct/mi300/mi325x.html). +ROCm 6.3.2 adds support for Azure Linux 3.0 (kernel: 6.6). Azure Linux is supported only on AMD Instinct accelerators. For more information, see [Azure Linux installation](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html). See the [Compatibility -matrix](https://rocm.docs.amd.com/en/docs-6.3.1/compatibility/compatibility-matrix.html) +matrix](https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html) for more information about operating system and hardware compatibility. ## ROCm components -The following table lists the versions of ROCm components for ROCm 6.3.1, including any version -changes from 6.3.0 to 6.3.1. Click the component's updated version to go to a list of its changes. +The following table lists the versions of ROCm components for ROCm 6.3.2, including any version +changes from 6.3.1 to 6.3.2. Click the component's updated version to go to a list of its changes. Click {fab}`github` to go to the component's source code on GitHub.