parameters: - name: checkoutRepo type: string default: 'self' - name: checkoutRef type: string default: '' # set to true if doing full build of ROCm stack # and dependencies are pulled from same pipeline - name: aggregatePipeline type: boolean default: false - name: aptPackages type: object default: - cmake - ninja-build - git - python3-pip - libdrm-dev - ccache - name: rocmDependencies type: object default: - rocm-cmake - llvm-project - ROCR-Runtime - clr - rocminfo - rocprofiler-register - name: rocmTestDependencies type: object default: - clr - llvm-project - rocminfo - rocprofiler-register - ROCR-Runtime - name: jobMatrix type: object default: buildJobs: - gfx942: target: gfx942 - gfx90a: target: gfx90a testJobs: - gfx942: target: gfx942 - gfx90a: target: gfx90a jobs: - ${{ each job in parameters.jobMatrix.buildJobs }}: - job: composable_kernel_build_${{ job.target }} timeoutInMinutes: 240 variables: - group: common - template: /.azuredevops/variables-global.yml - name: DAY_STRING value: $[format('{0:ddMMyyyy}', pipeline.startTime)] pool: ${{ variables.ULTRA_BUILD_POOL }} workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} gpuTarget: ${{ job.target }} aggregatePipeline: ${{ parameters.aggregatePipeline }} - script: | mkdir -p $(CCACHE_DIR) echo "##vso[task.prependpath]/usr/lib/ccache" displayName: Update path for ccache - task: Cache@2 displayName: Ccache caching inputs: key: composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ path: $(CCACHE_DIR) restoreKeys: | composable_kernel | $(Agent.OS) | ${{ job.target }} | $(DAY_STRING) composable_kernel | $(Agent.OS) | ${{ job.target }} composable_kernel | $(Agent.OS) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- -DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++ -DCMAKE_C_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_HIP_FLAGS="-Wno-missing-include-dirs" -DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm -DCK_BUILD_JIT_LIB=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DGPU_TARGETS=${{ job.target }} -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters: gpuTarget: ${{ job.target }} # if this artifact name is changed, please also update $ARTIFACT_URL inside miopen-get-ck-build.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters: aptPackages: ${{ parameters.aptPackages }} gpuTarget: ${{ job.target }} - ${{ each job in parameters.jobMatrix.testJobs }}: - job: composable_kernel_test_${{ job.target }} timeoutInMinutes: 180 dependsOn: composable_kernel_build_${{ job.target }} condition: and(succeeded(), eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), eq(${{ parameters.aggregatePipeline }}, False) ) variables: - group: common - template: /.azuredevops/variables-global.yml - name: TEST_LOG_FILE value: $(Pipeline.Workspace)/ckTestLog.log pool: ${{ job.target }}_test_pool workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters: gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: ${{ job.target }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - task: Bash@3 displayName: Iterate through test scripts inputs: targetType: inline script: | for file in ./test_*; do ./$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.target }}