Skip to content

Commit cf44042

Browse files
committed
Merge remote-tracking branch 'NVIDIA/main' into add-cuda-c-abi-arg-packer
2 parents 32746fe + df8f261 commit cf44042

File tree

581 files changed

+211153
-18954
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

581 files changed

+211153
-18954
lines changed

.flake8

Lines changed: 0 additions & 52 deletions
This file was deleted.

.git-blame-ignore-revs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: BSD-2-Clause
3+
# Migrate code style to ruff
4+
a00e50bfeb00477bd017435b1ebbbe6faf97df4a

.gitattributes

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: BSD-2-Clause
3+
4+
# SCM syntax highlighting & preventing 3-way merges
5+
pixi.lock merge=binary linguist-language=YAML linguist-generated=true

.github/actions/compute-matrix/action.yaml

Lines changed: 0 additions & 41 deletions
This file was deleted.

.github/copy-pr-bot.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
# Copyright (c) 2023, NVIDIA CORPORATION.
1+
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: BSD-2-Clause
23

34
# Configuration file for `copy-pr-bot` GitHub App
45
# https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/
56

67
enabled: true
8+
# always require manual CI triggering, ignoring signed commits
9+
auto_sync_draft: false
10+
auto_sync_ready: false

.github/workflows/conda-python-build.yaml

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: BSD-2-Clause
3+
14
on:
25
workflow_call:
36
inputs:
@@ -18,6 +21,9 @@ on:
1821
script:
1922
type: string
2023
default: "ci/build_python.sh"
24+
matrix:
25+
type: string
26+
required: true
2127
matrix_filter:
2228
type: string
2329
default: "."
@@ -49,42 +55,23 @@ jobs:
4955
runs-on: ubuntu-latest
5056
outputs:
5157
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }}
58+
timeout-minutes: 60
5259
steps:
5360
- name: Compute Build Matrix
5461
id: compute-matrix
62+
env:
63+
MATRIX: ${{ inputs.matrix }}
5564
run: |
5665
set -eo pipefail
5766
58-
# please keep the matrices sorted in ascending order by the following:
59-
#
60-
# [ARCH, PY_VER, CUDA_VER, LINUX_VER]
61-
#
62-
export MATRIX="
63-
# amd64
64-
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
65-
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
66-
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
67-
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
68-
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
69-
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' }
70-
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
71-
# arm64
72-
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
73-
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
74-
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
75-
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
76-
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
77-
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' }
78-
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
79-
"
80-
8167
MATRIX="$(
8268
yq -n -o json 'env(MATRIX)' | \
8369
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end'
8470
)"
8571
8672
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
8773
build:
74+
name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}
8875
needs: compute-matrix
8976
strategy:
9077
fail-fast: false
@@ -96,6 +83,7 @@ jobs:
9683
image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}
9784
env:
9885
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }}
86+
timeout-minutes: 60
9987
steps:
10088
- uses: actions/checkout@v4
10189
with:
@@ -108,6 +96,8 @@ jobs:
10896
echo "RAPIDS_SHA=$(git rev-parse HEAD)" >> "${GITHUB_ENV}"
10997
echo "RAPIDS_REF_NAME=${{ inputs.branch || github.ref_name }}" >> "${GITHUB_ENV}"
11098
echo "RAPIDS_NIGHTLY_DATE=${{ inputs.date }}" >> "${GITHUB_ENV}"
99+
- name: Setup proxy cache
100+
uses: nv-gha-runners/setup-proxy-cache@main
111101
- name: Python build
112102
run: ${{ inputs.script }}
113103
env:
@@ -116,7 +106,7 @@ jobs:
116106
if: "!cancelled()"
117107
uses: actions/upload-artifact@v4
118108
with:
119-
name: conda-repo
109+
name: conda-repo-py${{ matrix.PY_VER }}-${{ matrix.ARCH }}
120110
path: "/tmp/conda-bld-output"
121111
- name: Publish conda package
122112
if: inputs.upload_to_anaconda

.github/workflows/conda-python-tests.yaml

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: BSD-2-Clause
3+
14
on:
25
workflow_call:
36
inputs:
@@ -14,10 +17,13 @@ on:
1417
type: string
1518
script:
1619
type: string
17-
default: "ci/test_python.sh"
20+
default: "ci/test_conda.sh"
1821
run_codecov:
1922
type: boolean
2023
default: true
24+
matrix:
25+
type: string
26+
required: true
2127
matrix_filter:
2228
type: string
2329
default: "."
@@ -52,91 +58,77 @@ jobs:
5258
BUILD_TYPE: ${{ inputs.build_type }}
5359
outputs:
5460
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }}
61+
timeout-minutes: 60
5562
steps:
56-
- name: Validate Test Type
57-
run: |
58-
if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]]; then
59-
echo "Invalid build type! Must be 'nightly' or 'pull-request'."
60-
exit 1
61-
fi
6263
- name: Compute Python Test Matrix
6364
id: compute-matrix
65+
env:
66+
TEST_MATRIX: ${{ inputs.matrix }}
6467
run: |
6568
set -eo pipefail
6669
67-
# please keep the matrices sorted in ascending order by the following:
68-
#
69-
# [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER]
70-
#
71-
export MATRICES="
72-
pull-request:
73-
# amd64
74-
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' }
75-
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
76-
# arm64
77-
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' }
78-
nightly:
79-
# amd64
80-
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' }
81-
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'v100', DRIVER: 'latest' }
82-
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
83-
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest' }
84-
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
85-
# arm64
86-
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' }
87-
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' }
88-
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' }
89-
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest' }
90-
"
91-
92-
TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]')
93-
export TEST_MATRIX
94-
9570
MATRIX="$(
9671
yq -n -o json 'env(TEST_MATRIX)' | \
9772
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end'
9873
)"
9974
10075
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
10176
tests:
77+
name: ${{ matrix.CUDA_VER }}, ${{ matrix.PY_VER }}, ${{ matrix.ARCH }}, ${{ matrix.LINUX_VER }}, ${{ matrix.GPU }}, ${{ matrix.DRIVER }}-driver, numba@${{ matrix.NUMBA_VERSION }}
10278
needs: compute-matrix
10379
strategy:
10480
fail-fast: false
10581
matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }}
10682
runs-on: "linux-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1"
10783
env:
84+
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
10885
RAPIDS_COVERAGE_DIR: ${{ github.workspace }}/coverage-results
86+
NUMBA_VERSION: ${{ matrix.NUMBA_VERSION }}
10987
RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results
110-
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
11188
container:
11289
image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}
11390
options: ${{ inputs.container-options }}
11491
env:
11592
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }}
11693
NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }}
94+
timeout-minutes: 60
11795
steps:
11896
- uses: actions/checkout@v4
11997
with:
12098
repository: ${{ inputs.repo }}
12199
ref: ${{ inputs.sha }}
122100
fetch-depth: 0
123-
- uses: actions/download-artifact@v4
124-
name: conda-repo
125-
- name: Display structure of downloaded files
126-
run: ls -R
127101
- name: Standardize repository information
128102
run: |
129103
echo "RAPIDS_REPOSITORY=${{ inputs.repo || github.repository }}" >> "${GITHUB_ENV}"
130104
echo "RAPIDS_SHA=$(git rev-parse HEAD)" >> "${GITHUB_ENV}"
131105
echo "RAPIDS_REF_NAME=${{ inputs.branch || github.ref_name }}" >> "${GITHUB_ENV}"
132106
echo "RAPIDS_NIGHTLY_DATE=${{ inputs.date }}" >> "${GITHUB_ENV}"
107+
- name: Setup proxy cache
108+
uses: nv-gha-runners/setup-proxy-cache@main
109+
continue-on-error: true
110+
- name: Compute pixi environment name
111+
run: |
112+
set -euo pipefail
113+
CUDA_VER_PART="$(cut -d. -f1-2 <<< "${{ matrix.CUDA_VER }}" | tr . -)"
114+
PY_VER_PART="py$(tr -d . <<< "${{ matrix.PY_VER }}")"
115+
PIXI_ENV="cu-${CUDA_VER_PART}-${PY_VER_PART}"
116+
{
117+
echo "PY_VER_PART=${PY_VER_PART}"
118+
echo "PIXI_ENV=${PIXI_ENV}"
119+
} >> "${GITHUB_ENV}"
120+
- name: Setup pixi
121+
uses: prefix-dev/setup-pixi@fef5c9568ca6c4ff7707bf840ab0692ba3f08293
122+
with:
123+
environments: ${{ env.PIXI_ENV }}
124+
cache: false
133125
- name: Python tests
134126
run: ${{ inputs.script }}
135127
env:
136128
GH_TOKEN: ${{ github.token }}
137129
CUDA_VER: ${{ matrix.CUDA_VER }}
138130
- name: Generate test report
139-
uses: test-summary/action@v2.3
131+
uses: test-summary/action@v2.4
140132
with:
141133
paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml"
142134
if: always()

0 commit comments

Comments
 (0)