parameters: - name: checkoutRepo type: string default: 'self' - name: checkoutRef type: string default: '' - name: aptPackages type: object default: - cmake - libbz2-dev - libdrm-dev - libeigen3-dev - libgmock-dev - libgtest-dev - libsqlite3-dev - libstdc++-12-dev - libzstd-dev - ninja-build - nlohmann-json3-dev - python3-pip - software-properties-common - zstd - name: pipModules type: object default: - cget - name: rocmDependencies type: object default: - rocMLIR - rocRAND - rocBLAS - hipBLAS - hipBLASLt - hipBLAS-common - half - composable_kernel - rocm-cmake - llvm-project - ROCR-Runtime - rocprofiler-register - clr - rocminfo - roctracer - name: rocmTestDependencies type: object default: - clr - composable_kernel - half - hipBLAS - hipBLAS-common - hipBLASLt - llvm-project - rocBLAS - rocm-cmake - rocminfo - rocMLIR - ROCR-Runtime - rocprofiler-register - rocRAND - roctracer jobs: - job: MIOpen variables: - group: common - template: /.azuredevops/variables-global.yml pool: ${{ variables.MEDIUM_BUILD_POOL }} workspace: clean: all strategy: matrix: gfx942: JOB_GPU_TARGET: gfx942 steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} # The default boost library from apt is 1.74, which does not satisfy MIOpen's build requirement (1.79+) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-boost.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: $(JOB_GPU_TARGET) # CI case: download latest default branch build ${{ if eq(parameters.checkoutRef, '') }}: dependencySource: staging # manual build case: triggered by ROCm/ROCm repo ${{ elseif ne(parameters.checkoutRef, '') }}: dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- -DMIOPEN_BACKEND=HIP -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/boost -DAMDGPU_TARGETS=$(JOB_GPU_TARGET) -DMIOPEN_ENABLE_AI_KERNEL_TUNING=OFF -DMIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: $(JOB_GPU_TARGET) - job: MIOpen_testing dependsOn: MIOpen condition: and(succeeded(), eq(variables.ENABLE_GFX942_TESTS, 'true'), not(containsValue(split(variables.DISABLED_GFX942_TESTS, ','), variables['Build.DefinitionName']))) variables: - group: common - template: /.azuredevops/variables-global.yml pool: $(JOB_TEST_POOL) workspace: clean: all strategy: matrix: gfx942: JOB_GPU_TARGET: gfx942 JOB_TEST_POOL: ${{ variables.GFX942_TEST_POOL }} steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} pipModules: ${{ parameters.pipModules }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} # The default boost library from apt is 1.74, which does not satisfy MIOpen's build requirement (1.79+) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-boost.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml parameters: ${{ if eq(parameters.checkoutRef, '') }}: dependencySource: staging ${{ elseif ne(parameters.checkoutRef, '') }}: dependencySource: tag-builds - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: $(JOB_GPU_TARGET) ${{ if eq(parameters.checkoutRef, '') }}: dependencySource: staging ${{ elseif ne(parameters.checkoutRef, '') }}: dependencySource: tag-builds # MIOpen depends on a specific version of frugally-deep which is forked here: https://github.com/ROCm/frugally-deep # https://github.com/ROCm/frugally-deep/blob/master/INSTALL.md - 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" - task: Bash@3 displayName: Install FunctionalPlus inputs: targetType: inline script: cget install Dobiasd/FunctionalPlus - task: Bash@3 displayName: Remove Python site-packages binaries from path inputs: targetType: inline script: | USER_BASE=$(python3 -m site --user-base) echo "##vso[task.setvariable variable=PATH]$(echo $PATH | sed -e 's;:$USER_BASE/bin;;' -e 's;^/;;' -e 's;/$;;')" - task: Bash@3 displayName: git clone frugally-deep inputs: targetType: inline script: git clone https://github.com/ROCm/frugally-deep --depth=1 --shallow-submodules workingDirectory: $(Build.SourcesDirectory) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: componentName: frugally-deep cmakeBuildDir: $(Build.SourcesDirectory)/frugally-deep/build installDir: $(Build.SourcesDirectory)/bin extraBuildFlags: -DCMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/cget/cget/pkg/Dobiasd__FunctionalPlus/install - task: CMake@1 displayName: 'MIOpen Test CMake Flags' inputs: cmakeArgs: >- -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Build.SourcesDirectory)/bin;$(Build.SourcesDirectory)/cget/cget/pkg/Dobiasd__FunctionalPlus/install;$(Agent.BuildDirectory)/boost -DCMAKE_INSTALL_PREFIX=$(Agent.BuildDirectory)/rocm -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DMIOPEN_BACKEND=HIP -DMIOPEN_TEST_FLAGS=" --disable-verification-cache" -DCMAKE_BUILD_TYPE=release -DBUILD_DEV=OFF -DMIOPEN_USE_MLIR=ON -DMIOPEN_GPU_SYNC=OFF .. - task: Bash@3 displayName: 'MIOpen Test Build' inputs: targetType: inline script: | cmake --build . --target tests -- -j$(nproc) workingDirectory: $(Build.SourcesDirectory)/build - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters: componentName: MIOpen reloadAMDGPU: true