[External CI] AlmaLinux 8 job for roctracer and ROCdbgapi

- roctracer pipeline now builds for gfx1100 gfx1030.
- Changed format of job matrix for readability.
- Observed that the built ROCm libraries can either be installed on lib or lib64 directories in this OS profile, so ldconfig step is adjusted to look at additional directories. This won't impact usage in ubuntu22 if the lib64 directories don't exist in the custom ROCm build.
- For the llvm linking step we cannot assume the ROCm lib directory exists, as only lib64 might be present on the builder.
- The source enable command does not persist through shells, so it does not do what we want.
- Linker flags are needed for roctracer build in almalinux8 to work with gcc-toolset-14. These might be needed for the flang build.
- libatomic package was added to the gcc toolset setup.
This commit is contained in:
Joseph Macaranas
2025-05-30 18:29:56 -04:00
parent 6b5586fd2c
commit 345866ac41
12 changed files with 122 additions and 132 deletions

View File

@@ -61,12 +61,8 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
# HIP with AMD backend
jobs:
@@ -172,7 +168,6 @@ jobs:
dependencyList: ${{ parameters.rocmDependenciesNvidia }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
os: ${{ job.os }}
skipLlvmSymlink: true
- script: 'ls -1R $(Agent.BuildDirectory)/rocm'
displayName: 'Artifact listing'
# compile clr

View File

@@ -15,7 +15,6 @@ parameters:
default:
- cmake
- ninja-build
- python3-pip
- name: rocmDependencies
type: object
default:
@@ -24,37 +23,54 @@ parameters:
- rocminfo
- ROCR-Runtime
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs:
- job: ROCdbgapi
variables:
- group: common
- template: /.azuredevops/variables-global.yml
pool:
vmImage: ${{ variables.BASE_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 }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-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 }}
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: ROCdbgapi_build_${{ job.os }}
pool:
${{ if eq(job.os, 'ubuntu2204') }}:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
name: 'rocm-ci_low_build_pool_alma8'
variables:
- group: common
- template: /.azuredevops/variables-global.yml
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
packageManager: ${{ job.packageManager }}
- 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 }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}

View File

@@ -22,12 +22,8 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- ubuntu2204_gfx942:
os: ubuntu2204

View File

@@ -29,13 +29,8 @@ parameters:
type: object
default:
buildJobs:
# skip flang for almalinux8
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -29,12 +29,8 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -20,12 +20,8 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -22,21 +22,11 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- ubuntu2204_gfx942:
os: ubuntu2204
packageManager: apt
target: gfx942
- ubuntu2204_gfx90a:
os: ubuntu2204
packageManager: apt
target: gfx90a
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -32,21 +32,11 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
testJobs:
- ubuntu2204_gfx942:
os: ubuntu2204
packageManager: apt
target: gfx942
- ubuntu2204_gfx90a:
os: ubuntu2204
packageManager: apt
target: gfx90a
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -20,12 +20,8 @@ parameters:
type: object
default:
buildJobs:
- ubuntu2204:
os: ubuntu2204
packageManager: apt
- almalinux8:
os: almalinux8
packageManager: dnf
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:

View File

@@ -18,7 +18,7 @@ parameters:
- graphviz
- libdrm-amdgpu-dev
- ninja-build
- python3-pip
- zlib1g-dev
- name: pipModules
type: object
default:
@@ -45,26 +45,31 @@ parameters:
type: object
default:
buildJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
- { os: ubuntu2204, packageManager: apt, target: gfx1100 }
- { os: ubuntu2204, packageManager: apt, target: gfx1030 }
- { os: almalinux8, packageManager: dnf, target: gfx942 }
- { os: almalinux8, packageManager: dnf, target: gfx90a }
- { os: almalinux8, packageManager: dnf, target: gfx1100 }
- { os: almalinux8, packageManager: dnf, target: gfx1030 }
testJobs:
- gfx942:
target: gfx942
- gfx90a:
target: gfx90a
- { os: ubuntu2204, packageManager: apt, target: gfx942 }
- { os: ubuntu2204, packageManager: apt, target: gfx90a }
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: roctracer_build_${{ job.target }}
- job: roctracer_build_${{ job.os }}_${{ job.target }}
pool:
${{ if eq(job.os, 'ubuntu2204') }}:
vmImage: 'ubuntu-22.04'
${{ if eq(job.os, 'almalinux8') }}:
name: 'rocm-ci_low_build_pool_alma8'
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: HIP_ROCCLR_HOME
value: $(Build.BinariesDirectory)/rocm
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
workspace:
clean: all
steps:
@@ -72,6 +77,7 @@ jobs:
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
@@ -83,21 +89,34 @@ jobs:
dependencyList: ${{ parameters.rocmDependencies }}
gpuTarget: ${{ job.target }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=release
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm
-DGPU_TARGETS=${{ job.target }}
-DAMDGPU_TARGETS=${{ job.target }}
-GNinja
${{ if eq(job.os, 'almalinux8') }}:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=release
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib64/cmake/hip
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;
-DGPU_TARGETS=${{ job.target }}
-DCMAKE_EXE_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/"
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-GNinja
${{ else }}:
extraBuildFlags: >-
-DCMAKE_BUILD_TYPE=release
-DROCM_PATH=$(Agent.BuildDirectory)/rocm
-DCMAKE_MODULE_PATH=$(Agent.BuildDirectory)/rocm/lib/cmake/hip
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;
-DGPU_TARGETS=${{ job.target }}
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
@@ -108,8 +127,8 @@ jobs:
# registerROCmPackages: true
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: roctracer_test_${{ job.target }}
dependsOn: roctracer_build_${{ job.target }}
- job: roctracer_test_${{ job.os }}_${{ job.target }}
dependsOn: roctracer_build_${{ job.os }}_${{ job.target }}
condition:
and(succeeded(),
eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
@@ -127,17 +146,20 @@ jobs:
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
registerROCmPackages: true
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
gpuTarget: ${{ job.target }}
os: ${{ job.os }}
- 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 }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
parameters:

View File

@@ -12,6 +12,7 @@ parameters:
doxygen: doxygen
# note: doxygen-doc is not available in dnf
# note: g++ is installed by default with gcc-toolset-14
graphviz: graphviz
libdrm-dev: libdrm-devel
libdrm-amdgpu-dev: libdrm-amdgpu-devel
libelf-dev: elfutils-libelf-devel
@@ -57,17 +58,10 @@ steps:
sudo dnf -y install epel-release git jq vim-common libstdc++-devel
- task: Bash@3
displayName: 'Install gcc-toolset-14'
inputs:
targetType: inline
script: sudo dnf -y install gcc-toolset-14
- task: Bash@3
displayName: 'Enable GCC 14'
inputs:
targetType: inline
script: |
source /opt/rh/gcc-toolset-14/enable
gcc --version
g++ --version
sudo dnf -y install gcc-toolset-14 gcc-toolset-14-libatomic-devel
- task: Bash@3
displayName: 'Set CC/CXX env vars'
inputs:

View File

@@ -435,7 +435,9 @@ steps:
displayName: Symlink from rocm/llvm to rocm/lib/llvm
inputs:
targetType: inline
script: sudo ln -s $(Agent.BuildDirectory)/rocm/llvm $(Agent.BuildDirectory)/rocm/lib/llvm
script: |
sudo mkdir -p $(Agent.BuildDirectory)/rocm/lib
sudo ln -s $(Agent.BuildDirectory)/rocm/llvm $(Agent.BuildDirectory)/rocm/lib/llvm
- task: Bash@3
displayName: Symlink executables from rocm/llvm/bin to rocm/bin
inputs:
@@ -487,8 +489,10 @@ steps:
targetType: inline
# OS ignores if the ROCm lib folder shows up more than once
script: |
echo $(Agent.BuildDirectory)/rocm/lib | sudo tee /etc/ld.so.conf.d/rocm-ci.conf
echo $(Agent.BuildDirectory)/rocm/lib | sudo tee -a /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
echo $(Agent.BuildDirectory)/rocm/lib64 | sudo tee -a /etc/ld.so.conf.d/rocm-ci.conf
echo $(Agent.BuildDirectory)/rocm/llvm/lib64 | 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