Skip to content

Commit 64a2b52

Browse files
committed
Merge main into cuda_core_experimental_deprecation_v0
Resolved conflicts by updating imports from cuda.core.experimental.* to cuda.core.* to match the branch's deprecation work. Updated all source files and test files to use the new import paths.
2 parents dfa0f0e + b2a912a commit 64a2b52

135 files changed

Lines changed: 57191 additions & 4809 deletions

File tree

Some content is hidden

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

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
cuda/_version.py export-subst
22

33
* text eol=lf
4+
*.cmd text eol=crlf
45

56
# we do not own any headers checked in, don't touch them
67
*.h binary
78
*.hpp binary
89
# git should not convert line endings in PNG files
910
*.png binary
11+
*.svg binary
1012
# SCM syntax highlighting & preventing 3-way merges
1113
pixi.lock merge=binary linguist-language=YAML linguist-generated=true

.github/actions/fetch_ctk/action.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ runs:
123123
for item in $(echo $CTK_CACHE_COMPONENTS | tr ',' ' '); do
124124
populate_cuda_path "$item"
125125
done
126+
# TODO: check Windows
127+
if [[ "${{ inputs.host-platform }}" == linux* && -d "${CACHE_TMP_DIR}/lib" ]]; then
128+
mv $CACHE_TMP_DIR/lib $CACHE_TMP_DIR/lib64
129+
fi
126130
ls -l $CACHE_TMP_DIR
127131
128132
# Prepare the cache
@@ -176,7 +180,8 @@ runs:
176180
# mimics actual CTK installation
177181
if [[ "${{ inputs.host-platform }}" == linux* ]]; then
178182
CUDA_PATH=$(realpath "${{ inputs.cuda-path }}")
179-
echo "LD_LIBRARY_PATH=${CUDA_PATH}/lib:${LD_LIBRARY_PATH:-}" >> $GITHUB_ENV
183+
echo "${CUDA_PATH}/bin" >> $GITHUB_PATH
184+
echo "LD_LIBRARY_PATH=${CUDA_PATH}/lib64:${LD_LIBRARY_PATH:-}" >> $GITHUB_ENV
180185
elif [[ "${{ inputs.host-platform }}" == win* ]]; then
181186
function normpath() {
182187
echo "$(echo $(cygpath -w $1) | sed 's/\\/\\\\/g')"

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ jobs:
3030
- name: Get CUDA build versions
3131
id: get-vars
3232
run: |
33-
cuda_build_ver=$(jq -r .cuda.build.version ci/versions.json)
33+
cuda_build_ver=$(yq '.cuda.build.version' ci/versions.yml)
3434
echo "cuda_build_ver=$cuda_build_ver" >> $GITHUB_OUTPUT
3535
36-
cuda_prev_build_ver=$(jq -r .cuda.prev_build.version ci/versions.json)
36+
cuda_prev_build_ver=$(yq '.cuda.prev_build.version' ci/versions.yml)
3737
echo "cuda_prev_build_ver=$cuda_prev_build_ver" >> $GITHUB_OUTPUT
3838
3939
should-skip:

.github/workflows/test-wheel-linux.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,23 +53,17 @@ jobs:
5353
MATRIX_TYPE="nightly"
5454
fi
5555
56-
# Read base matrix from JSON file for the specific architecture
57-
TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" '
58-
.linux[$matrix_type] |
59-
map(select(.ARCH == $arch))
60-
' ci/test-matrix.json)
56+
# Read base matrix from YAML file for the specific architecture
57+
TEST_MATRIX=$(yq -o json ".linux[\"${MATRIX_TYPE}\"] | map(select(.ARCH == \"${ARCH}\"))" ci/test-matrix.yml)
6158
6259
# Add special runner for amd64 if applicable
6360
if [[ "${ARCH}" == "amd64" ]]; then
64-
SPECIAL_RUNNERS=$(jq '
65-
.linux.special_runners.amd64
66-
' ci/test-matrix.json)
67-
TEST_MATRIX=$(jq --argjson special "$SPECIAL_RUNNERS" '. + $special' <<< "$TEST_MATRIX")
61+
SPECIAL_RUNNERS=$(yq -o json '.linux.special_runners.amd64' ci/test-matrix.yml)
62+
TEST_MATRIX=$(echo "$TEST_MATRIX" | yq -o json ". + $SPECIAL_RUNNERS")
6863
fi
6964
70-
MATRIX="$(
71-
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' <<< "$TEST_MATRIX"
72-
)"
65+
# Apply matrix filter and wrap in include structure
66+
MATRIX=$(echo "$TEST_MATRIX" | jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end')
7367
7468
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
7569

.github/workflows/test-wheel-windows.yml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,11 @@ jobs:
5050
MATRIX_TYPE="nightly"
5151
fi
5252
53-
# Read base matrix from JSON file for the specific architecture
54-
TEST_MATRIX=$(jq --arg arch "$ARCH" --arg matrix_type "$MATRIX_TYPE" '
55-
.windows[$matrix_type] |
56-
map(select(.ARCH == $arch))
57-
' ci/test-matrix.json)
58-
59-
MATRIX="$(
60-
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end' <<< "$TEST_MATRIX"
61-
)"
53+
# Read base matrix from YAML file for the specific architecture
54+
TEST_MATRIX=$(yq -o json ".windows[\"${MATRIX_TYPE}\"] | map(select(.ARCH == \"${ARCH}\"))" ci/test-matrix.yml)
55+
56+
# Apply matrix filter and wrap in include structure
57+
MATRIX=$(echo "$TEST_MATRIX" | jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end')
6258
6359
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
6460

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ repos:
4545
rev: "3e8a8703264a2f4a69428a0aa4dcb512790b2c8c" # frozen: v6.0.0
4646
hooks:
4747
- id: check-added-large-files
48+
exclude: cuda_bindings/cuda/bindings/nvml.pyx
4849
- id: check-case-conflict
4950
- id: check-docstring-first
5051
- id: check-merge-conflict

.spdx-ignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ cuda_bindings/examples/*
1111

1212
# Vendored
1313
cuda_core/cuda/core/include/dlpack.h
14+
15+
qa/ctk-next.drawio.svg

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@
22

33
CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. It consists of multiple components:
44

5-
* [cuda.core](https://nvidia.github.io/cuda-python/cuda-core/latest): Pythonic access to CUDA Runtime and other core functionalities
5+
* [cuda.core](https://nvidia.github.io/cuda-python/cuda-core/latest): Pythonic access to CUDA Runtime and other core functionality
66
* [cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest): Low-level Python bindings to CUDA C APIs
77
* [cuda.pathfinder](https://nvidia.github.io/cuda-python/cuda-pathfinder/latest): Utilities for locating CUDA components installed in the user's Python environment
8-
* [cuda.cccl.cooperative](https://nvidia.github.io/cccl/python/cooperative): A Python module providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels
9-
* [cuda.cccl.parallel](https://nvidia.github.io/cccl/python/parallel): A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like `sort`, `scan`, `reduce`, `transform`, etc. that are callable on the *host*
10-
* [numba.cuda](https://nvidia.github.io/numba-cuda/): Numba's target for CUDA GPU programming by directly compiling a restricted subset of Python code into CUDA kernels and device functions following the CUDA execution model.
11-
* [nvmath-python](https://docs.nvidia.com/cuda/nvmath-python/latest): Pythonic access to NVIDIA CPU & GPU Math Libraries, with both [*host*](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#host-apis) and [*device* (nvmath.device)](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#device-apis) APIs. It also provides low-level Python bindings to host C APIs ([nvmath.bindings](https://docs.nvidia.com/cuda/nvmath-python/latest/bindings/index.html)).
12-
13-
CUDA Python is currently undergoing an overhaul to improve existing and introduce new components. All of the previously available functionalities from the `cuda-python` package will continue to be available, please refer to the [cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest) documentation for installation guide and further detail.
8+
* [cuda.coop](https://nvidia.github.io/cccl/python/coop): A Python module providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels
9+
* [cuda.compute](https://nvidia.github.io/cccl/python/compute): A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like `sort`, `scan`, `reduce`, `transform`, etc. that are callable on the *host*
10+
* [numba.cuda](https://nvidia.github.io/numba-cuda/): A Python DSL that exposes CUDA **SIMT** programming model and compiles a restricted subset of Python code into CUDA kernels and device functions
11+
* [cuda.tile](https://docs.nvidia.com/cuda/cutile-python/): A new Python DSL that exposes CUDA **Tile** programming model and allows users to write NumPy-like code in CUDA kernels
12+
* [nvmath-python](https://docs.nvidia.com/cuda/nvmath-python/latest): Pythonic access to NVIDIA CPU & GPU Math Libraries, with [*host*](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#host-apis), [*device*](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#device-apis), and [*distributed*](https://docs.nvidia.com/cuda/nvmath-python/latest/distributed-apis/index.html) APIs. It also provides low-level Python bindings to host C APIs ([nvmath.bindings](https://docs.nvidia.com/cuda/nvmath-python/latest/bindings/index.html)).
13+
* [nvshmem4py](https://docs.nvidia.com/nvshmem/api/api/language_bindings/python/index.html): Pythonic interface to the NVSHMEM library, enabling Python applications to leverage NVSHMEM's high-performance PGAS (Partitioned Global Address Space) programming model for GPU-accelerated computing
14+
* [Nsight Python](https://docs.nvidia.com/nsight-python/index.html): Python kernel profiling interface that automates performance analysis across multiple kernel configurations using NVIDIA Nsight Tools
15+
* [CUPTI Python](https://docs.nvidia.com/cupti-python/): Python APIs for creation of profiling tools that target CUDA Python applications via the CUDA Profiling Tools Interface (CUPTI)
16+
17+
CUDA Python is currently undergoing an overhaul to improve existing and introduce new components. All of the previously available functionality from the `cuda-python` package will continue to be available, please refer to the [cuda.bindings](https://nvidia.github.io/cuda-python/cuda-bindings/latest) documentation for installation guide and further detail.
1418

1519
## cuda-python as a metapackage
1620

ci/test-matrix.json

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

0 commit comments

Comments
 (0)