Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions buildlib/azure-pipelines-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,13 @@ pr:
- buildlib/tools/perf_results.py
- buildlib/tools/perf-common.yml

resources:
repositories:
- repository: ucxx
type: github
name: rapidsai/ucxx
endpoint: Mellanox-lab
ref: refs/tags/v0.51.00a

extends:
template: pr/main.yml
69 changes: 69 additions & 0 deletions buildlib/azure-pipelines-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,31 @@ pr:
- master
- v*.*.x

# UCXX nightly: rebuild same SHA daily and publish alpha-versioned packages
# to rapidsai-nightly channel. Tune cron time to avoid RAPIDS GHA window
# during parallel-validation phase.
schedules:
- cron: '0 7 * * *'
displayName: UCXX nightly
branches:
include: [master]
always: true

variables:
DOCKER_OPT_VOLUMES: -v /hpc/local:/hpc/local
DOCKER_OPT_ARGS: --cap-add=SYS_PTRACE
# UCXX publish: initial dry-run channel until cutover. Flip to empty
# (use 'main' default) when atomic cutover from RAPIDS GHA is approved.
RAPIDS_CONDA_UPLOAD_LABEL: blossom-test

resources:
repositories:
- repository: ucxx
type: github
name: rapidsai/ucxx
endpoint: Mellanox-lab
ref: refs/tags/v0.51.00a

containers:
# x86_64
- container: centos7_cuda11_x86_64
Expand Down Expand Up @@ -78,6 +99,18 @@ resources:
image: rdmz-harbor.rdmz.labs.mlnx/ucx/aarch64/rocky9-mofed24.10-cuda13:2
options: $(DOCKER_OPT_VOLUMES)

# UCXX release: CPU-only conda + wheel builders (mirrors PR pipeline).
# Wheel images are CUDA-pinned: one base per CUDA version (see rapidsai-ci-wheel.Dockerfile).
- container: ucxx_rapidsai_ci_conda
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-conda:26.06-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_wheel_cuda12
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda12-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_wheel_cuda13
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda13-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)

stages:
- stage: Prepare
jobs:
Expand Down Expand Up @@ -150,3 +183,39 @@ stages:
container: centos8_cuda11_aarch64
demands: ucx-arm64
target: publish-release

- template: pr/ucxx_build.yml
parameters:
dependsOn: [Prepare]
# Fires on UCX release tag (CheckRelease.Launch=True) OR nightly cron
# (Build.Reason=Schedule). Upload steps dispatch token/channel/label at
# runtime based on BUILD_REASON.
condition: |
or(
eq(dependencies.Prepare.outputs['CheckRelease.Result.Launch'], 'True'),
eq(variables['Build.Reason'], 'Schedule')
)
conda_cpp_slices:
- { name: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
conda_python_slices:
- { name: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
# libucxx + ucxx wheels for cuda12 + cuda13, x86_64 + aarch64.
wheel_libucxx_slices:
- { name: x86_64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
wheel_ucxx_slices:
- { name: x86_64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, libucxx_slice: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, libucxx_slice: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, libucxx_slice: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, libucxx_slice: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
docs_slices:
- { name: x86_64_cuda13_py311, cpp_slice: x86_64_cuda13_py311, python_slice: x86_64_cuda13_py311,
demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
10 changes: 10 additions & 0 deletions buildlib/dockers/rapidsai-ci-conda.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Azure wrapper around rapidsai/ci-conda: chmod /opt/conda so the non-root UID Azure runs
# steps as can use conda/python (rapidsai owns it as root); + adds gdb for stack capture.

ARG BASE_IMAGE=rapidsai/ci-conda:26.06-latest
FROM ${BASE_IMAGE}

RUN chmod -R o+rwX /opt/conda \
&& apt-get update \
&& apt-get install -y --no-install-recommends gdb \
&& rm -rf /var/lib/apt/lists/*
10 changes: 10 additions & 0 deletions buildlib/dockers/rapidsai-ci-wheel.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Azure wrapper around rapidsai/ci-wheel: chmod /pyenv so the non-root UID Azure runs
# steps as can write there (rapidsai owns it as root); + adds gdb for stack capture.
# Default base = cuda13; cuda12 image built by overriding BASE_IMAGE to the cuda12.9.1 tag.

ARG BASE_IMAGE=rapidsai/ci-wheel:26.06-cuda13.2.0-rockylinux8-py3.11
FROM ${BASE_IMAGE}

RUN chmod -R o+rwX /pyenv \
&& dnf install -y gdb \
&& dnf clean all
67 changes: 67 additions & 0 deletions buildlib/pr/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,27 @@ resources:
- container: centos10stream
image: rdmz-harbor.rdmz.labs.mlnx/hpcx/x86_64/centos10stream/builder:inbox
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_conda
# Thin wrapper of rapidsai/ci-conda; see buildlib/dockers/rapidsai-ci-conda.Dockerfile.
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-conda:26.06-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_conda_gpu
# No IB/host-net: with IB, UCX binds rc_mlx5 and the AM/tag tests hang here.
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-conda:26.06-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES) --gpus all --ipc=host
# Wheel images are CUDA-pinned: one base per CUDA version (see rapidsai-ci-wheel.Dockerfile).
- container: ucxx_rapidsai_ci_wheel_cuda13
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda13-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_wheel_cuda13_gpu
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda13-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES) --gpus all --ipc=host
- container: ucxx_rapidsai_ci_wheel_cuda12
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda12-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES)
- container: ucxx_rapidsai_ci_wheel_cuda12_gpu
image: rdmz-harbor.rdmz.labs.mlnx/ucx/rapidsai-ci-wheel:26.06-cuda12-azp-1
options: $(DOCKER_OPT_ARGS) $(DOCKER_OPT_VOLUMES) --gpus all --ipc=host

stages:
- stage: Codestyle
Expand Down Expand Up @@ -349,6 +370,52 @@ stages:
demands: ucx_docker -equals yes
container: coverity_rh7

- template: ucxx_build.yml
parameters:
dependsOn: [Static_check]
# Wheel GPU tests run on x86 only (no arm64 GPU runner); cuda12 + cuda13.
wheel_tests_ucxx_slices:
- { name: x86_64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12_gpu, libucxx_slice: x86_64_cuda12_py311, ucxx_slice: x86_64_cuda12_py311,
demands: ucx_gpu, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13_gpu, libucxx_slice: x86_64_cuda13_py311, ucxx_slice: x86_64_cuda13_py311,
demands: ucx_gpu, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
conda_cpp_slices:
- { name: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
conda_python_slices:
- { name: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
# libucxx + ucxx wheels for cuda12 + cuda13, x86_64 + aarch64.
wheel_libucxx_slices:
- { name: x86_64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
wheel_ucxx_slices:
- { name: x86_64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, libucxx_slice: x86_64_cuda12_py311, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, libucxx_slice: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, container: ucxx_rapidsai_ci_wheel_cuda12, libucxx_slice: aarch64_cuda12_py311, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, container: ucxx_rapidsai_ci_wheel_cuda13, libucxx_slice: aarch64_cuda13_py311, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
docs_slices:
- { name: x86_64_cuda13_py311, cpp_slice: x86_64_cuda13_py311, python_slice: x86_64_cuda13_py311,
demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
devcontainer_slices:
- { name: x86_64_cuda13_py311, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }

- template: ucxx_tests.yml
parameters:
dependsOn: [Static_check]
slices:
- { name: x86_64_cuda13_py313, gpu: true, demands: ucx_gpu, rapids_cuda_version: '13.2.0', rapids_py_version: '3.13' }
- { name: x86_64_cuda12_py311, gpu: false, demands: ucx_docker, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: x86_64_cuda13_py311, gpu: false, demands: ucx_docker, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }
- { name: aarch64_cuda12_py311, gpu: false, demands: ucx_arm64, rapids_cuda_version: '12.9.1', rapids_py_version: '3.11' }
- { name: aarch64_cuda13_py311, gpu: false, demands: ucx_arm64, rapids_cuda_version: '13.2.0', rapids_py_version: '3.11' }

- stage: Tests
dependsOn: [Basic_compile]
jobs:
Expand Down
Loading
Loading