Compare commits

...

63 Commits

Author SHA1 Message Date
Ibrahim Wani
b4ea72eb91 Add pip module installs to test job 2025-09-09 19:40:46 +00:00
Ibrahim Wani
5bc1197184 Quick fix 2025-09-09 19:29:12 +00:00
Ibrahim Wani
61114cd072 Remove nanobind install script 2025-09-09 19:27:41 +00:00
Ibrahim Wani
0b19fdf17d Add nanobind to array correctly 2025-09-09 17:27:21 +00:00
Ibrahim Wani
e0a746d392 Add nanobind to array 2025-09-09 17:18:17 +00:00
Ibrahim Wani
61bf1adc4b Clean up 2025-09-08 21:56:46 +00:00
Ibrahim Wani
b020b63cff Fix hipblaslt ci errors 2025-09-08 20:47:25 +00:00
Ibrahim Wani
d9138bdec1 Add old changes back in 2025-09-08 20:12:31 +00:00
Ibrahim Wani
5ea4c4ddb9 Resolve more ci failures in hipblaslt 2025-09-08 19:51:12 +00:00
Ibrahim Wani
0569e6fb13 Fix hipblaslt build failures 2025-09-08 19:22:44 +00:00
Ibrahim Wani
6c2856013f Merge remote-tracking branch 'origin/develop' into users/ibrahimw1/origami-azure-ci 2025-09-08 19:18:13 +00:00
Ibrahim Wani
54c92e1792 Run individual tests not ctest. 2025-09-08 19:05:53 +00:00
Ibrahim Wani
9e802ca390 Add missing cd 2025-09-08 18:03:59 +00:00
Ibrahim Wani
7a55ae8179 Only download artifacts for ubuntu 2025-09-08 17:52:17 +00:00
Ibrahim Wani
13994905a4 Try ctest instead of running test files directly 2025-09-08 17:48:36 +00:00
Ibrahim Wani
a8d1992c12 Download python bindings as artifact 2025-09-08 17:35:00 +00:00
Ibrahim Wani
36aacc7bec Sparse checkout origami/python 2025-09-08 17:01:01 +00:00
Ibrahim Wani
a3b7bee019 Echo to list dir 2025-09-08 16:16:52 +00:00
Ibrahim Wani
6702d68dc6 Test1 2025-09-08 15:55:08 +00:00
Ibrahim Wani
a81a33c5a9 Fix checkout in test job 2025-09-08 15:09:37 +00:00
Ibrahim Wani
b932004daf Comment out block 2025-09-08 05:50:43 +00:00
Ibrahim Wani
df6ccad6cc Download build as artifact. 2025-09-08 05:44:15 +00:00
Ibrahim Wani
65e2d8370e Package bindings in build artifacts 2025-09-05 21:55:29 +00:00
Ibrahim Wani
51a77f7d60 Try removing job.target from params 2025-09-05 21:25:05 +00:00
Ibrahim Wani
eece16b75d Build origami in test job 2025-09-05 21:09:45 +00:00
Ibrahim Wani
6bee1b86c7 Change test dir 2025-09-05 18:43:44 +00:00
Ibrahim Wani
99bdbd3d49 Test 2025-09-05 18:29:16 +00:00
Ibrahim Wani
1ed7f975cf Clean up 2025-09-05 18:04:53 +00:00
Ibrahim Wani
663911c2db Try to find build dir 2025-09-05 17:34:21 +00:00
Ibrahim Wani
bc703b3711 Find build dir 2025-09-05 17:21:05 +00:00
Ibrahim Wani
bddc9478ba Fix sparse checkout 2025-09-05 17:10:29 +00:00
Ibrahim Wani
bd42ddd551 Finding test dir 2025-09-05 17:09:38 +00:00
Ibrahim Wani
b1fc9a18d9 Update test jobs 2025-09-05 16:54:20 +00:00
Ibrahim Wani
50590adf03 Add test job to origami 2025-09-05 16:43:30 +00:00
Ibrahim Wani
eceea00897 Resolve merge conflict; merge develop 2025-09-04 20:55:32 +00:00
Ibrahim Wani
af627119d1 test 2025-09-04 20:17:03 +00:00
Ibrahim Wani
58b117e998 Add more gpu targets 2025-09-04 20:08:27 +00:00
Ibrahim Wani
2551ed3092 Add gpu to pipeline 2025-09-04 19:31:17 +00:00
Ibrahim Wani
7ec397e214 Check devices on machine 2025-09-04 19:25:14 +00:00
Ibrahim Wani
27e0366b22 Adding job target to hipblaslt dependant builds 2025-09-04 16:17:42 +00:00
Ibrahim Wani
b5e52b4a7c Test job target 2025-09-04 16:07:05 +00:00
Ibrahim Wani
b059b8250e Test 2025-09-03 21:52:35 +00:00
Ibrahim Wani
5a9e5decba Fix CI error. 2025-09-03 21:18:20 +00:00
Ibrahim Wani
875756a718 Add archs to buildJobs 2025-09-03 21:05:02 +00:00
Ibrahim Wani
edf7dede1b Add missing dep for CI 2025-09-03 20:48:05 +00:00
Ibrahim Wani
afe66159b2 Change build path for tests again 2025-09-03 20:14:52 +00:00
Ibrahim Wani
9ac6f5a1ba Change build path for tests 2025-09-03 20:03:25 +00:00
Ibrahim Wani
54943d086e Run origami binding tests 2025-09-03 19:49:32 +00:00
Ibrahim Wani
b20384cf76 Testing nanobind install in pipelines 2025-08-26 20:00:19 +00:00
Ibrahim Wani
27207925f8 Quick fix 2025-08-26 19:55:24 +00:00
Ibrahim Wani
2ab2ccc98c Replace pybind with nanobind. 2025-08-26 19:51:23 +00:00
Ibrahim Wani
d0825adab9 Merge remote-tracking branch 'origin/amd/danielsu/multi-sparse-checkout' into users/ibrahimw1/origami-azure-ci 2025-08-26 19:46:54 +00:00
Daniel Su
f920cf533d hipBLASLt multi sparse 2025-08-26 11:26:14 -04:00
Daniel Su
6f02314b4b [Ex CI] don't create symlink if more than one sparse checkout dir 2025-08-26 11:25:44 -04:00
Ibrahim Wani
2cfa3f48d4 Test 2025-08-25 22:06:46 +00:00
Ibrahim Wani
c9a825a9f0 Fix pybind11 dep for almalinux again 2025-08-25 21:45:12 +00:00
Ibrahim Wani
162c32a01a Fix pybind11 dep for almalinux 2025-08-25 21:38:44 +00:00
Ibrahim Wani
e2f842d543 Quick fix 2025-08-25 20:06:06 +00:00
Ibrahim Wani
fb2eddc630 Fix pipeline failures. 2025-08-25 20:02:36 +00:00
Ibrahim Wani
2dc586060a Add pybind dep 2025-08-25 19:02:02 +00:00
Ibrahim Wani
1f0e6580d6 Add cmake dependency step to origami yml. 2025-08-25 18:47:31 +00:00
Ibrahim Wani
d563b9b64b Unindent lines. 2025-08-25 15:36:08 +00:00
Ibrahim Wani
eb8cd0d17d Add origami yaml pipeline. 2025-08-22 22:34:53 +00:00
2 changed files with 239 additions and 1 deletions

View File

@@ -178,7 +178,7 @@ jobs:
mkdir -p $(Agent.BuildDirectory)/temp-deps
cd $(Agent.BuildDirectory)/temp-deps
# position-independent LAPACK is required for almalinux8 builds
cmake -DBUILD_GTEST=OFF -DBUILD_LAPACK=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON $(Agent.BuildDirectory)/s/deps
cmake -DBUILD_GTEST=OFF -DBUILD_LAPACK=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON $(Agent.BuildDirectory)/sparse/projects/hipblaslt/deps
make -j
sudo make install
- script: |
@@ -197,6 +197,8 @@ jobs:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml
parameters:
os: ${{ job.os }}
cmakeSourceDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt
cmakeBuildDir: $(Agent.BuildDirectory)/sparse/projects/hipblaslt/build
extraBuildFlags: >-
-DCMAKE_PREFIX_PATH=$(Agent.BuildDirectory)/rocm;$(Agent.BuildDirectory)/vendor
-DCMAKE_INCLUDE_PATH=$(Agent.BuildDirectory)/rocm/llvm/include

View File

@@ -0,0 +1,236 @@
parameters:
- name: componentName
type: string
default: origami
- 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
- python3
- python3-dev
- python3-pip
- name: pipModules
type: object
default:
- nanobind>=2.0.0
- name: rocmDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- rocprofiler-register
- name: rocmTestDependencies
type: object
default:
- clr
- llvm-project
- rocm-cmake
- rocminfo
- ROCR-Runtime
- rocprofiler-register
- name: jobMatrix
type: object
default:
buildJobs:
- { os: ubuntu2204, packageManager: apt }
- { os: almalinux8, packageManager: dnf }
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:
- origami_build
jobs:
- ${{ each job in parameters.jobMatrix.buildJobs }}:
- job: origami_build_${{ job.os }}
${{ 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-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
-DCMAKE_CXX_COMPILER=$(Agent.BuildDirectory)/rocm/llvm/bin/amdclang++
-DORIGAMI_BUILD_SHARED_LIBS=ON
-DORIGAMI_ENABLE_PYTHON=ON
-DORIGAMI_BUILD_TESTING=ON
-GNinja
- ${{ if ne(job.os, 'almalinux8') }}:
- task: PublishPipelineArtifact@1
displayName: 'Publish Build Directory Artifact'
inputs:
targetPath: '$(Agent.BuildDirectory)/s/build'
artifact: '${{ parameters.componentName }}_${{ job.os }}_build_dir'
publishLocation: 'pipeline'
- task: PublishPipelineArtifact@1
displayName: 'Publish Python Source Artifact'
inputs:
targetPath: '$(Agent.BuildDirectory)/s/python'
artifact: '${{ parameters.componentName }}_${{ job.os }}_python_src'
publishLocation: 'pipeline'
- 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 eq(parameters.unifiedBuild, False) }}:
- ${{ each job in parameters.jobMatrix.testJobs }}:
- job: origami_test_${{ job.os }}_${{ job.target }}
timeoutInMinutes: 120
dependsOn: origami_build_${{ job.os }}
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
pool: ${{ job.target }}_test_pool
workspace:
clean: all
steps:
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml
parameters:
checkoutRepo: ${{ parameters.checkoutRepo }}
sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }}
- 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/preamble.yml
- template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml
parameters:
preTargetFilter: ${{ parameters.componentName }}
os: ${{ job.os }}
- task: DownloadPipelineArtifact@2
displayName: 'Download Build Directory Artifact'
inputs:
artifact: '${{ parameters.componentName }}_${{ job.os }}_build_dir'
path: '$(Agent.BuildDirectory)/s/build'
- task: DownloadPipelineArtifact@2
displayName: 'Download Python Source Artifact'
inputs:
artifact: '${{ parameters.componentName }}_${{ job.os }}_python_src'
path: '$(Agent.BuildDirectory)/s/python'
- 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
- script: |
export PYTHONPATH=$(Agent.BuildDirectory)/s/build/python:$PYTHONPATH
echo "--- Running origami_test.py ---"
python3 $(Agent.BuildDirectory)/s/python/origami_test.py
echo "--- Running origami_grid_test.py ---"
python3 $(Agent.BuildDirectory)/s/python/origami_grid_test.py
displayName: 'Run Python Binding Tests'
condition: succeeded()
- 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 }}