Compare commits

...

69 Commits

Author SHA1 Message Date
David Dixon
ec1d66fc35 Update build-cmake.yml 2025-10-20 09:42:21 -06:00
David Dixon
a0434d5163 Update build-cmake.yml 2025-10-19 13:25:17 -06:00
David Dixon
830ddaabd9 Update build-cmake.yml 2025-10-19 13:12:12 -06:00
David Dixon
830b7640b2 Update build-cmake.yml 2025-10-19 12:19:18 -06:00
David Dixon
f2b710ed94 print everything 2025-10-19 11:34:51 -06:00
David Dixon
6285afb2cc apt deps 2025-10-19 08:57:15 -06:00
David Dixon
572f543d2b Update rocRoller.yml 2025-10-19 08:56:40 -06:00
David Dixon
e4c95b6a77 add gfortran when configuring 2025-10-19 08:45:49 -06:00
David Dixon
6ad8d5d4f1 Update rocRoller.yml 2025-10-17 08:14:50 -06:00
David Dixon
1301466c89 Update rocRoller.yml 2025-10-17 07:56:47 -06:00
David Dixon
5806667d36 Update rocRoller.yml 2025-10-16 20:30:01 -06:00
David Dixon
f3ef63413d Update rocRoller.yml 2025-10-16 18:50:21 -06:00
David Dixon
f01cd9cb27 Update rocRoller.yml 2025-10-16 18:30:47 -06:00
David Dixon
dc3e677941 Update rocRoller.yml 2025-10-16 18:27:49 -06:00
David Dixon
2a1ff23469 Update rocRoller.yml 2025-10-16 17:56:20 -06:00
David Dixon
e031c3b58e Update rocRoller.yml 2025-10-16 17:06:06 -06:00
David Dixon
d1cb99a4e4 Update rocRoller.yml 2025-10-16 15:43:28 -06:00
David Dixon
d90e3beb32 Update rocRoller.yml 2025-10-16 12:51:41 -06:00
David Dixon
db10c64880 Update rocRoller.yml 2025-10-16 12:34:27 -06:00
David Dixon
454dae5dc5 source isntall lapack 2025-10-16 12:15:18 -06:00
David Dixon
43f7a7eab0 Update rocRoller.yml 2025-10-16 09:18:10 -06:00
David Dixon
a13b8c3fe2 Use ccache 2025-10-16 08:50:18 -06:00
David Dixon
37190c54ad use vendored yaml-cpp build 2025-10-16 07:39:07 -06:00
David Dixon
dd95d99c3f add yaml-cpp pipeline index 2025-10-16 07:38:02 -06:00
David Dixon
1002c7fe04 Clean up package deps 2025-10-15 21:28:20 -06:00
David Dixon
bf068b1325 Update rocRoller.yml 2025-10-15 13:45:57 -06:00
David Dixon
673cdece9b Update rocRoller.yml 2025-10-15 11:36:28 -06:00
David Dixon
0e96202ec8 Pull in cli11 2025-10-15 17:24:38 +00:00
David Dixon
4091440e8f add libcli11 2025-10-15 17:20:13 +00:00
David Dixon
30fabd6b9a Do not fetch dependencies 2025-10-15 17:20:13 +00:00
David Dixon
c0c49381d4 Update rocRoller.yml 2025-10-15 17:20:13 +00:00
David Dixon
798b9245b5 Update rocRoller.yml 2025-10-15 17:20:13 +00:00
David Dixon
aa7cef0892 Add almalinux back 2025-10-15 17:20:13 +00:00
David Dixon
fab6885067 Debugging 2025-10-15 17:20:13 +00:00
David Dixon
46571c6e80 Disable test stage while we work on parallelization 2025-10-15 17:20:13 +00:00
geomin12
56c76fd502 Commenting out test jobs 2025-10-15 17:20:13 +00:00
David Dixon
d9500a8700 Fix test command 2025-10-15 17:20:13 +00:00
David Dixon
89c20a0fce test command params 2025-10-15 17:20:13 +00:00
David Dixon
d28aed0fdf Add target name to artifact name 2025-10-15 17:20:13 +00:00
David Dixon
fda3d6061a does adding -j help 2025-10-15 17:20:13 +00:00
David Dixon
98ddec9979 Add ccache package 2025-10-15 17:20:13 +00:00
David Dixon
fe8d96d395 Drop build.ninja 2025-10-15 17:20:13 +00:00
David Dixon
18c2db71bb Add caching and run tests 2025-10-15 17:20:13 +00:00
David Dixon
274d416d65 Set timeout 2025-10-15 17:20:13 +00:00
David Dixon
e0ef128be0 Debug 2025-10-15 17:20:13 +00:00
David Dixon
d3669d1561 Debug 2025-10-15 17:20:13 +00:00
David Dixon
f948707764 Capture ninja.build 2025-10-15 17:20:13 +00:00
David Dixon
cd4b2e1140 Print path 2025-10-15 17:20:13 +00:00
David Dixon
f71ff094d1 Escape dollar signs in variable 2025-10-15 17:20:13 +00:00
David Dixon
9e26493076 Add path to pytest cmake 2025-10-15 17:20:13 +00:00
David Dixon
fac248e1d8 add catch2 to rocroller deps 2025-10-15 17:20:13 +00:00
David Dixon
1b35214255 Try quoting 2025-10-15 17:20:13 +00:00
David Dixon
cea5fb8bfe Use libdivide source build 2025-10-15 17:20:13 +00:00
David Dixon
0457e0cf1b We need rocprofiler at build time 2025-10-15 17:20:13 +00:00
David Dixon
d4bafcee2c Drop fmt from system package deps 2025-10-15 17:20:13 +00:00
David Dixon
f25cbd8d8f Build spdlog from source 2025-10-15 17:20:13 +00:00
David Dixon
45c526864c Add aomp dep 2025-10-15 17:20:13 +00:00
David Dixon
f444d8a166 Add mxdatagenerator 2025-10-15 17:20:13 +00:00
David Dixon
831f06f277 Add pip packages 2025-10-15 17:20:13 +00:00
David Dixon
d542b33982 Enabling fetch until mxdatagenerator is available 2025-10-15 17:20:13 +00:00
David Dixon
9b1db63db8 Update prefix path 2025-10-15 17:20:13 +00:00
David Dixon
b621effca5 Disable downstream jobs 2025-10-15 17:20:13 +00:00
David Dixon
8493858f6c Correct naming 2025-10-15 17:20:13 +00:00
David Dixon
b1317c189e Correct naming 2025-10-15 17:20:13 +00:00
David Dixon
847f3a8876 Another yml update 2025-10-15 17:20:13 +00:00
David Dixon
ed4624c8e9 Add libdivide 2025-10-15 17:20:13 +00:00
David Dixon
d82d7e2afa Add cmake step 2025-10-15 17:20:13 +00:00
David Dixon
38f67277fc add rocroller dependencies 2025-10-15 17:20:13 +00:00
David Dixon
87b969e455 Add rocRoller pipeline spec 2025-10-15 17:20:13 +00:00
5 changed files with 486 additions and 27 deletions

View File

@@ -0,0 +1,172 @@
parameters:
- name: componentName
type: string
default: mxDataGenerator
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# 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
- git
- ninja-build
- wget
- libboost-program-options-dev
- libboost-filesystem-dev
- libdivide-dev
- libfmt-dev
- libopenblas-dev
- libmsgpack-dev
- libspdlog-dev
- libyaml-cpp-dev
- name: pipModules
type: object
default:
- black
- flake8
- msgpack
- pandas
- pytest
- pytest-cmake
- pytest-cov
- pytest-mock
- scipy
- pyyaml
- joblib
- --upgrade
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- name: rocmTestDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rocminfo
- rocm_smi_lib
- rocprofiler-register
- ROCR-Runtime
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { pool: rocm-ci_ultra_build_pool, os: ubuntu2204, packageManager: apt, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx90a }
- { pool: rocm-ci_ultra_build_pool, os: almalinux8, packageManager: dnf, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx90a }
- name: downstreamComponentMatrix
type: object
default:
- rocRoller:
name: rocRoller
sparseCheckoutDir: projects/rocroller
skipUnifiedBuild: 'false'
buildDependsOn:
- mxDataGenerator_build
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: mxDataGenerator_build_${{ job.os }}_${{ job.target }}
${{ if parameters.buildDependsOn }}:
dependsOn:
- ${{ each build in parameters.buildDependsOn }}:
- ${{ build }}_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-latest.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- gtest
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-GNinja
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
- ${{ if parameters.triggerDownstreamJobs }}:
- ${{ each component in parameters.downstreamComponentMatrix }}:
- ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
- template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
buildDependsOn: ${{ component.buildDependsOn }}
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
triggerDownstreamJobs: true
unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -0,0 +1,285 @@
parameters:
- name: componentName
type: string
default: rocRoller
- name: checkoutRepo
type: string
default: 'self'
- name: checkoutRef
type: string
default: ''
# monorepo related parameters
- name: sparseCheckoutDir
type: string
default: ''
- name: triggerDownstreamJobs
type: boolean
default: false
- name: downstreamAggregateNames
type: string
default: ''
- name: buildDependsOn
type: object
default: null
- name: unifiedBuild
type: boolean
default: false
# 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:
- ccache
- gfortran
- git
- libboost-program-options-dev
- libboost-filesystem-dev
- liblapack-dev
- libmsgpack-dev
- libopenblas-dev
- libyaml-cpp-dev
- ninja-build
- name: pipModules
type: object
default:
- black
- flake8
- msgpack
- pandas
- pytest
- pytest-cmake
- pytest-cov
- pytest-mock
- scipy
- pyyaml
- joblib
- --upgrade
- name: rocmDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- rocprofiler-register
- name: rocmTestDependencies
type: object
default:
- aomp
- clr
- llvm-project
- rocminfo
- rocm_smi_lib
- rocprofiler-register
- ROCR-Runtime
- roctracer
- name: jobMatrix
type: object
default:
buildJobs:
- { pool: rocm-ci_ultra_build_pool, os: ubuntu2204, packageManager: apt, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: ubuntu2204, packageManager: apt, target: gfx90a }
- { pool: rocm-ci_ultra_build_pool, os: almalinux8, packageManager: dnf, target: gfx942 }
- { pool: rocm-ci_medium_build_pool, os: almalinux8, packageManager: dnf, target: gfx90a }
#testJobs:
# - { os: ubuntu2204, packageManager: apt, target: gfx942 }
# - { os: ubuntu2204, packageManager: apt, target: gfx90a }
#- name: downstreamComponentMatrix
# type: object
# default:
# - hipBLASLt:
# name: hipBLASLt
# sparseCheckoutDir: projects/hipblaslt
# skipUnifiedBuild: 'false'
# buildDependsOn:
# - rocRoller_build
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: rocroller_build_${{ job.os }}_${{ job.target }}
timeoutInMinutes: 120
${{ if parameters.buildDependsOn }}:
dependsOn:
- ${{ each build in parameters.buildDependsOn }}:
- ${{ build }}_${{ job.os }}
variables:
- group: common
- template: /.azuredevops/variables-global.yml
- name: ROCM_PATH
value: $(Agent.BuildDirectory)/rocm
pool:
vmImage: ${{ variables.BASE_BUILD_POOL }}
${{ if eq(job.os, 'almalinux8') }}:
container:
image: rocmexternalcicd.azurecr.io/manylinux228:latest
endpoint: ContainerService3
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml
parameters:
aptPackages: ${{ parameters.aptPackages }}
pipModules: ${{ parameters.pipModules }}
packageManager: ${{ job.packageManager }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-cmake-custom.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-vendor.yml
parameters:
dependencyList:
- catch2
- cli11
- fmtlib
- gtest
- libdivide
- spdlog
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
parameters:
checkoutRef: ${{ parameters.checkoutRef }}
dependencyList: ${{ parameters.rocmDependencies }}
os: ${{ job.os }}
aggregatePipeline: ${{ parameters.aggregatePipeline }}
${{ if parameters.triggerDownstreamJobs }}:
downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
- task: Bash@3
displayName: Build and install LAPACK
inputs:
targetType: inline
script: |
mkdir -p $(Agent.BuildDirectory)/temp-deps
cd $(Agent.BuildDirectory)/temp-deps
git clone https://github.com/Reference-LAPACK/lapack-release -b lapack-3.9.1 lapack
cd lapack
cmake -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCBLAS=ON -DLAPACKE=OFF -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LIBDIR=lib -DBUILD_SHARED_LIBS=OFF -B build -S .
cmake --build build --parallel
cd build
sudo make install
- 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: rocRoller | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING) | $(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
path: $(CCACHE_DIR)
restoreKeys: |
rocRoller | ${{ job.os }} | ${{ job.target }} | $(DAY_STRING)
rocRoller | ${{ job.os }} | ${{ job.target }}
rocRoller | ${{ job.os }}
- task: Bash@3
displayName: Add paths for CMake and Python site-packages binaries
inputs:
targetType: inline
script: |
USER_BASE=$(python3 -m site --user-base)
echo "##vso[task.prependpath]$USER_BASE/bin"
echo "##vso[task.setvariable variable=PytestCmakePath]$USER_BASE/share/Pytest/cmake"
displayName: Set cmake configure paths
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
multithreadFlag: '-j'
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/shared/rocroller
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/shared/rocroller/build
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor;$(PytestCmakePath)
-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
-DAMDGPU_TARGETS=${{ job.target }}
-DGPU_TARGETS=${{ job.target }}
-DROCROLLER_ENABLE_FETCH=OFF
-GNinja
--trace-expand
--debug-output
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml
parameters:
componentName: ${{ parameters.componentName }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
os: ${{ job.os }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml
parameters:
os: ${{ job.os }}
componentName: ${{ parameters.componentName }}
gpuTarget: ${{ job.target }}
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml
# - ${{ if eq(parameters.unifiedBuild, False) }}:
# - ${{ each job in parameters.jobMatrix.testJobs }}:
# - job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }}
# timeoutInMinutes: 300
# dependsOn: ${{ parameters.componentName }}_build_${{ job.os }}_${{ job.target }}
# condition:
# and(succeeded(),
# eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'),
# not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')),
# eq(${{ parameters.aggregatePipeline }}, False)
# )
# variables:
# - group: common
# - template: /.azuredevops/variables-global.yml
# - name: ROCM_PATH
# value: $(Agent.BuildDirectory)/rocm
# pool: ${{ job.target }}_test_pool
# workspace:
# clean: all
# steps:
# - checkout: none
# - 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/local-artifact-download.yml
# parameters:
# preTargetFilter: ${{ parameters.componentName }}
# os: ${{ job.os }}
# gpuTarget: ${{ job.target }}
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml
# parameters:
# os: ${{ job.os }}
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml
# parameters:
# checkoutRef: ${{ parameters.checkoutRef }}
# dependencyList: ${{ parameters.rocmTestDependencies }}
# os: ${{ job.os }}
# gpuTarget: ${{ job.target }}
# ${{ if parameters.triggerDownstreamJobs }}:
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml
# parameters:
# componentName: ${{ parameters.componentName }}
# os: ${{ job.os }}
# testDir: '$(Agent.BuildDirectory)/rocm/bin'
# testExecutable: './rocroller-tests-catch'
# testParameters: '--reporter junit::out=./test_output.xml'
# - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml
# parameters:
# aptPackages: ${{ parameters.aptPackages }}
# pipModules: ${{ parameters.pipModules }}
# environment: test
# gpuTarget: ${{ job.target }}
#- ${{ if parameters.triggerDownstreamJobs }}:
# - ${{ each component in parameters.downstreamComponentMatrix }}:
# - ${{ if not(and(parameters.unifiedBuild, eq(component.skipUnifiedBuild, 'true'))) }}:
# - template: /.azuredevops/components/${{ component.name }}.yml@pipelines_repo
# parameters:
# checkoutRepo: ${{ parameters.checkoutRepo }}
# sparseCheckoutDir: ${{ component.sparseCheckoutDir }}
# buildDependsOn: ${{ component.buildDependsOn }}
# downstreamAggregateNames: ${{ parameters.downstreamAggregateNames }}+${{ parameters.componentName }}
# triggerDownstreamJobs: true
# unifiedBuild: ${{ parameters.unifiedBuild }}

View File

@@ -51,49 +51,44 @@ parameters:
type: boolean
default: true
# for cmake calls, set env variables for AlmaLinux 8
# to simulate running source /opt/rh/gcc-toolset-14/enable for the session
steps:
# create workingDirectory if it does not exist and change into it
# call cmake from within that directory using $cmakeArgs as its parameters
- ${{ if eq(parameters.os, 'almalinux8') }}:
- script: |
cd $AGENT_BUILDDIRECTORY
pwd
echo "##vso[task.setvariable variable=PATH]$PATH:/opt/rh/gcc-toolset-14/root/usr/bin"
echo "##vso[task.setvariable variable=MANPATH]$MANPATH:/opt/rh/gcc-toolset-14/root/usr/share/man"
echo "##vso[task.setvariable variable=INFOPATH]$INFOPATH:/opt/rh/gcc-toolset-14/root/usr/share/info"
echo "##vso[task.setvariable variable=PCP_DIR]/opt/rh/gcc-toolset-14/root"
echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH:/opt/rh/gcc-toolset-14/root/usr/lib64"
echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH:/opt/rh/gcc-toolset-14/root/usr/lib"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH]$PKG_CONFIG_PATH:/opt/rh/gcc-toolset-14/root/usr/lib64/pkgconfig"
echo "##vso[task.setvariable variable=CMAKE_TOOLCHAIN_FILE]$AGENT_BUILDDIRECTORY/ci-toolchain.cmake"
echo "set(CMAKE_SHARED_LINKER_FLAGS_INIT -L$AGENT_BUILDDIRECTORY/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/)" > ci-toolchain.cmake
echo "set(CMAKE_EXE_LINKER_FLAGS_INIT -L$AGENT_BUILDDIRECTORY/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/)" >> ci-toolchain.cmake
echo "set(CMAKE_CXX_FLAGS_INIT="--gcc-toolchain=/opt/rh/gcc-toolset-14/root")" >> ci-toolchain.cmake
env:
AGENT_BUILDDIRECTORY: $(Agent.BuildDirectory)
displayName: '${{parameters.componentName }} CMake Env'
- task: CMake@1
displayName: '${{parameters.componentName }} CMake Flags'
${{ if eq(parameters.os, 'almalinux8')}}:
env:
PATH: "/opt/rh/gcc-toolset-14/root/usr/bin:$(PATH)"
MANPATH: "/opt/rh/gcc-toolset-14/root/usr/share/man:$(MANPATH)"
INFOPATH: "/opt/rh/gcc-toolset-14/root/usr/share/info:$(INFOPATH)"
PCP_DIR: "/opt/rh/gcc-toolset-14/root"
LD_LIBRARY_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:$(LD_LIBRARY_PATH)"
PKG_CONFIG_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64/pkgconfig:$(PKG_CONFIG_PATH)"
inputs:
workingDirectory: ${{ parameters.cmakeBuildDir }}
cmakeArgs: >-
${{ iif(parameters.customInstallPath, join('', format('-DCMAKE_INSTALL_PREFIX={0}', parameters.installDir)), '') }}
${{ iif(eq(parameters.os, 'almalinux8'), '-DCMAKE_SHARED_LINKER_FLAGS="-L$(Agent.BuildDirectory)/rocm/lib64 -L/opt/rh/gcc-toolset-14/root/usr/lib/gcc/x86_64-redhat-linux/14/"', '') }}
${{ iif(eq(parameters.os, 'almalinux8'), '-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_CXX_FLAGS="${{ parameters.extraCxxFlags }} ${{ iif(and(eq(parameters.os, 'almalinux8'), parameters.useAmdclang), '--gcc-toolchain=/opt/rh/gcc-toolset-14/root', '') }}"
${{ parameters.extraBuildFlags }}
${{ parameters.cmakeSourceDir }}
${{ iif(parameters.customInstallPath, format('-DCMAKE_INSTALL_PREFIX={0}', parameters.installDir), '') }}
${{ parameters.extraBuildFlags }} ${{ parameters.cmakeSourceDir }}
- ${{ if parameters.printDiskSpace }}:
- script: df -h
displayName: Disk space before build
# equivalent to running make $cmakeTargetDir from $cmakeBuildDir
# i.e., cd $cmakeBuildDir; make $cmakeTargetDir
- task: CMake@1
${{ if and( eq(parameters.os, 'almalinux8'), eq(parameters.consolidateBuildAndInstall , true)) }}:
${{ if eq(parameters.consolidateBuildAndInstall, true) }}:
displayName: '${{ parameters.componentName }} CMake Build and Install'
${{ else }}:
displayName: '${{ parameters.componentName }} CMake Build'
${{ if eq(parameters.os, 'almalinux8')}}:
env:
PATH: "/opt/rh/gcc-toolset-14/root/usr/bin:$(PATH)"
MANPATH: "/opt/rh/gcc-toolset-14/root/usr/share/man:$(MANPATH)"
INFOPATH: "/opt/rh/gcc-toolset-14/root/usr/share/info:$(INFOPATH)"
PCP_DIR: "/opt/rh/gcc-toolset-14/root"
LD_LIBRARY_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:$(LD_LIBRARY_PATH)"
PKG_CONFIG_PATH: "/opt/rh/gcc-toolset-14/root/usr/lib64/pkgconfig:$(PKG_CONFIG_PATH)"
inputs:
workingDirectory: ${{ parameters.cmakeBuildDir }}
${{ if eq(parameters.os, 'almalinux8') }}:
@@ -112,7 +107,7 @@ steps:
displayName: Disk space after build
# equivalent to running make $cmakeTarget from $cmakeBuildDir
# e.g., make install
- ${{ if and(eq(parameters.installEnabled, true), or(ne(parameters.os, 'almalinux8'), eq(parameters.consolidateBuildAndInstall, false))) }}:
- ${{ if and(eq(parameters.installEnabled, true), eq(parameters.consolidateBuildAndInstall, false)) }}:
- task: CMake@1
displayName: '${{parameters.componentName }} ${{ parameters.cmakeTarget }}'
inputs:

View File

@@ -26,6 +26,7 @@ parameters:
type: object
default:
bison: bison
catch2: catch-devel
ccache: ccache
cmake: cmake
cuda-toolkit-12-9: cuda-compiler-12-9 cuda-toolkit-12-9
@@ -44,6 +45,7 @@ parameters:
libbabeltrace-dev: libbabeltrace-devel
libbison-dev: bison-devel
libboost-program-options-dev: boost-devel
libdivide-dev: libdivide-devel
# note: libdrm-amdgpu1 is not available in dnf
libdrm-dev: libdrm-devel
libdrm-amdgpu-dev: libdrm-amdgpu-devel
@@ -54,6 +56,7 @@ parameters:
libfftw3-dev: fftw-devel
libfmt-dev: fmt-devel
libgmp-dev: gmp-devel
libgtest-dev: gtest-devel
liblapack-dev: lapack-devel
liblzma-dev: xz-devel
libmpfr-dev: mpfr-devel
@@ -63,12 +66,14 @@ parameters:
libopenblas-dev: openblas-devel
libopenmpi-dev: openmpi-devel
libpci-dev: libpciaccess-devel
libspdlog-dev: spdlog-devel
libssl-dev: openssl-devel
# note: libstdc++-devel is in the base packages list
libsystemd-dev: systemd-devel
libtool: libtool
# note: libudev-dev is part of systemd-devel
libva-amdgpu-dev: libva-amdgpu-devel
libyaml-cpp-dev: yaml-cpp-devel
mesa-amdgpu-va-drivers: mesa-amdgpu-va-drivers
mesa-common-dev: mesa-libGL-devel
ncurses-dev: ncurses-devel

View File

@@ -9,6 +9,7 @@ parameters:
default:
boost: 250
catch2: 343
cli11: 367
fmtlib: 341
grpc: 72
gtest: 73
@@ -16,6 +17,7 @@ parameters:
lapack: 69
libdivide: 342
spdlog: 340
yaml-cpp: 368
steps:
- ${{ each dependency in parameters.dependencyList }}: