diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a9b91ee5..250d3510 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,7 +34,7 @@ concurrency: jobs: python-build: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -44,7 +44,7 @@ jobs: upload-conda: needs: [python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -54,7 +54,7 @@ jobs: if: github.ref_type == 'branch' needs: python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: arch: "amd64" branch: ${{ inputs.branch }} @@ -66,7 +66,7 @@ jobs: sha: ${{ inputs.sha }} wheel-build: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -81,7 +81,7 @@ jobs: wheel-publish: needs: wheel-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 745345ba..64868d52 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -19,7 +19,7 @@ jobs: - wheel-tests - telemetry-setup secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@cuda13.0 if: always() with: needs: ${{ toJSON(needs) }} @@ -37,7 +37,7 @@ jobs: changed-files: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@cuda13.0 with: files_yaml: | test_notebooks: @@ -61,20 +61,20 @@ jobs: checks: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@cuda13.0 with: ignored_pr_jobs: telemetry-summarize conda-python-build: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda13.0 with: build_type: pull-request script: ci/build_python.sh conda-python-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -83,7 +83,7 @@ jobs: conda-notebook-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks with: build_type: pull-request @@ -94,7 +94,7 @@ jobs: docs-build: needs: conda-python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: build_type: pull-request node_type: "gpu-l4-latest-1" @@ -104,7 +104,7 @@ jobs: wheel-build: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: pull-request script: ci/build_wheel.sh @@ -116,7 +116,7 @@ jobs: wheel-tests: needs: [wheel-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request diff --git a/.github/workflows/test-external.yaml b/.github/workflows/test-external.yaml index be582d74..f8cc0e1f 100644 --- a/.github/workflows/test-external.yaml +++ b/.github/workflows/test-external.yaml @@ -23,7 +23,7 @@ on: jobs: test-external: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: build_type: branch node_type: "gpu-l4-latest-1" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ff5e8163..9e9f9522 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -25,7 +25,7 @@ on: jobs: conda-python-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -34,7 +34,7 @@ jobs: sha: ${{ inputs.sha }} wheel-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/trigger-breaking-change-alert.yaml b/.github/workflows/trigger-breaking-change-alert.yaml index 48bf37af..72751d07 100644 --- a/.github/workflows/trigger-breaking-change-alert.yaml +++ b/.github/workflows/trigger-breaking-change-alert.yaml @@ -12,7 +12,7 @@ jobs: trigger-notifier: if: contains(github.event.pull_request.labels.*.name, 'breaking') secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@cuda13.0 with: sender_login: ${{ github.event.sender.login }} sender_avatar: ${{ github.event.sender.avatar_url }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bf85e5ec..6af47a50 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -127,7 +127,7 @@ cd $CUXFILTER_HOME - Create the conda development environment `cuxfilter_dev`: ```bash # create the conda environment (assuming in base `cuxfilter` directory) -conda env create --name cuxfilter_dev --file conda/environments/all_cuda-129_arch-x86_64.yaml +conda env create --name cuxfilter_dev --file conda/environments/all_cuda-130_arch-x86_64.yaml # activate the environment source activate cuxfilter_dev ``` diff --git a/README.md b/README.md index 8d85fd63..1e3de891 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,11 @@ cuxfilter can be installed with conda. You can get a minimal conda installation For the nightly version of `cuxfilter`: ```bash -# for CUDA 12 +# CUDA 13 +conda install -c rapidsai-nightly -c conda-forge \ + cuxfilter=25.10 python=3.13 cuda-version=13.0 + +# CUDA 12 conda install -c rapidsai-nightly -c conda-forge \ cuxfilter=25.10 python=3.13 cuda-version=12.9 ``` @@ -162,7 +166,11 @@ conda install -c rapidsai-nightly -c conda-forge \ For the stable version of `cuxfilter`: ```bash -# for CUDA 12 +# CUDA 13 +conda install -c rapidsai -c conda-forge \ + cuxfilter python=3.13 cuda-version=13.0 + +# CUDA 12 conda install -c rapidsai -c conda-forge \ cuxfilter python=3.13 cuda-version=12.9 ``` @@ -176,7 +184,10 @@ Note: cuxfilter is supported only on Linux, and with Python versions 3.10, 3.11, Install cuxfilter from PyPI using pip: ```bash -# for CUDA 12.0 +# CUDA 13 +pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com + +# CUDA 12 pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com ``` diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index ccdf1d0d..0f917ceb 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -10,7 +10,7 @@ dependencies: - cuda-version=12.9 - cudf==25.10.*,>=0.0.0a0 - cugraph==25.10.*,>=0.0.0a0 -- cupy>=12.0.0 +- cupy>=13.6.0 - dask-cuda==25.10.*,>=0.0.0a0 - dask-cudf==25.10.*,>=0.0.0a0 - datashader>=0.15 @@ -24,6 +24,7 @@ dependencies: - nbsphinx - nodejs>=18 - notebook>=0.5.0 +- numba-cuda>=0.19.1,<0.20.0a0 - numba>=0.59.1,<0.62.0a0 - numpy>=1.23,<3.0a0 - numpydoc diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index 77ce431a..d563403c 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -10,7 +10,7 @@ dependencies: - cuda-version=12.9 - cudf==25.10.*,>=0.0.0a0 - cugraph==25.10.*,>=0.0.0a0 -- cupy>=12.0.0 +- cupy>=13.6.0 - dask-cuda==25.10.*,>=0.0.0a0 - dask-cudf==25.10.*,>=0.0.0a0 - datashader>=0.15 @@ -24,6 +24,7 @@ dependencies: - nbsphinx - nodejs>=18 - notebook>=0.5.0 +- numba-cuda>=0.19.1,<0.20.0a0 - numba>=0.59.1,<0.62.0a0 - numpy>=1.23,<3.0a0 - numpydoc diff --git a/conda/environments/all_cuda-130_arch-aarch64.yaml b/conda/environments/all_cuda-130_arch-aarch64.yaml new file mode 100644 index 00000000..42de9dd1 --- /dev/null +++ b/conda/environments/all_cuda-130_arch-aarch64.yaml @@ -0,0 +1,48 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- bokeh>=3.1,<=3.6.3 +- bokeh_sampledata +- cuda-version=13.0 +- cudf==25.10.*,>=0.0.0a0 +- cugraph==25.10.*,>=0.0.0a0 +- cupy>=13.6.0 +- dask-cuda==25.10.*,>=0.0.0a0 +- dask-cudf==25.10.*,>=0.0.0a0 +- datashader>=0.15 +- geopandas>=0.11.0 +- holoviews>=1.16.0,<1.21.0a0 +- ipykernel +- ipython +- jupyter-server-proxy +- jupyter_sphinx +- libwebp-base +- nbsphinx +- nodejs>=18 +- notebook>=0.5.0 +- numba-cuda>=0.19.1,<0.20.0a0 +- numba>=0.59.1,<0.62.0a0 +- numpy>=1.23,<3.0a0 +- numpydoc +- packaging +- pandoc<=2.0.0 +- panel>=1.0 +- pre-commit +- pydata-sphinx-theme +- pytest +- pytest-cov +- pytest-xdist +- python>=3.10,<3.14 +- rapids-build-backend>=0.4.0,<0.5.0.dev0 +- recommonmark +- setuptools +- shapely<2.1.0 +- sphinx-markdown-tables +- sphinx>=8.0.0,<8.2.0 +- sphinx_rtd_theme +- sphinxcontrib-websupport +name: all_cuda-130_arch-aarch64 diff --git a/conda/environments/all_cuda-130_arch-x86_64.yaml b/conda/environments/all_cuda-130_arch-x86_64.yaml new file mode 100644 index 00000000..57b1db94 --- /dev/null +++ b/conda/environments/all_cuda-130_arch-x86_64.yaml @@ -0,0 +1,48 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- bokeh>=3.1,<=3.6.3 +- bokeh_sampledata +- cuda-version=13.0 +- cudf==25.10.*,>=0.0.0a0 +- cugraph==25.10.*,>=0.0.0a0 +- cupy>=13.6.0 +- dask-cuda==25.10.*,>=0.0.0a0 +- dask-cudf==25.10.*,>=0.0.0a0 +- datashader>=0.15 +- geopandas>=0.11.0 +- holoviews>=1.16.0,<1.21.0a0 +- ipykernel +- ipython +- jupyter-server-proxy +- jupyter_sphinx +- libwebp-base +- nbsphinx +- nodejs>=18 +- notebook>=0.5.0 +- numba-cuda>=0.19.1,<0.20.0a0 +- numba>=0.59.1,<0.62.0a0 +- numpy>=1.23,<3.0a0 +- numpydoc +- packaging +- pandoc<=2.0.0 +- panel>=1.0 +- pre-commit +- pydata-sphinx-theme +- pytest +- pytest-cov +- pytest-xdist +- python>=3.10,<3.14 +- rapids-build-backend>=0.4.0,<0.5.0.dev0 +- recommonmark +- setuptools +- shapely<2.1.0 +- sphinx-markdown-tables +- sphinx>=8.0.0,<8.2.0 +- sphinx_rtd_theme +- sphinxcontrib-websupport +name: all_cuda-130_arch-x86_64 diff --git a/conda/recipes/cuxfilter/recipe.yaml b/conda/recipes/cuxfilter/recipe.yaml index e0546582..e24a81fa 100644 --- a/conda/recipes/cuxfilter/recipe.yaml +++ b/conda/recipes/cuxfilter/recipe.yaml @@ -34,7 +34,7 @@ requirements: run: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - cudf =${{ minor_version }} - - cupy >=12.0.0 + - cupy >=13.6.0 - dask-cudf =${{ minor_version }} - datashader >=0.15 - geopandas >=0.11.0 @@ -43,6 +43,7 @@ requirements: - libwebp-base - nodejs >=14 - numba >=0.59.1,<0.62.0a0 + - numba-cuda >=0.19.1,<0.20.0a0 - numpy >=1.23,<3.0a0 - packaging - panel >=1.0 diff --git a/dependencies.yaml b/dependencies.yaml index 65f06ce0..2a55a599 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -3,13 +3,14 @@ files: all: output: conda matrix: - cuda: ["12.9"] + cuda: ["12.9", "13.0"] arch: [x86_64, aarch64] includes: - build_wheels - - cuda - cuda_version - checks + - depends_on_cudf + - depends_on_dask_cudf - docs - notebook - py_version @@ -19,7 +20,6 @@ files: test_python: output: none includes: - - cuda - cuda_version - py_version - test_python @@ -64,6 +64,8 @@ files: extras: table: project includes: + - depends_on_cudf + - depends_on_dask_cudf - run py_test: output: pyproject @@ -76,6 +78,9 @@ files: test_external: output: none includes: + - depends_on_cudf + - depends_on_cuxfilter + - depends_on_dask_cudf - test_external channels: - rapidsai @@ -111,13 +116,10 @@ dependencies: cuda: "12.9" packages: - cuda-version=12.9 - cuda: - specific: - - output_types: conda - matrices: - matrix: - cuda: "12.*" + cuda: "13.0" packages: + - cuda-version=13.0 checks: common: - output_types: [conda, requirements] @@ -132,11 +134,11 @@ dependencies: common: - output_types: [conda, requirements] packages: - - bokeh>=3.1,<=3.6.3 - - bokeh_sampledata + - &bokeh bokeh>=3.1,<=3.6.3 + - &bokeh_sampledata bokeh_sampledata - &holoviews holoviews>=1.16.0,<1.21.0a0 - ipykernel - - ipython + - &ipython ipython - jupyter_sphinx - nbsphinx - numpydoc @@ -152,9 +154,9 @@ dependencies: common: - output_types: [conda, requirements] packages: - - bokeh>=3.1,<=3.6.3 - - bokeh_sampledata - - ipython + - *bokeh + - *bokeh_sampledata + - *ipython - notebook>=0.5.0 - output_types: [conda] packages: @@ -205,35 +207,34 @@ dependencies: - panel>=1.0 - output_types: conda packages: - - &cudf_unsuffixed cudf==25.10.*,>=0.0.0a0 - - cupy>=12.0.0 - - &dask_cudf_unsuffixed dask-cudf==25.10.*,>=0.0.0a0 + - &cupy_unsuffixed cupy>=13.6.0 - nodejs>=18 + - numba-cuda>=0.19.1,<0.20.0a0 - libwebp-base specific: - output_types: [requirements, pyproject] matrices: - matrix: cuda: "12.*" - cuda_suffixed: "true" packages: - - cudf-cu12==25.10.*,>=0.0.0a0 - - &cupy_cu12 cupy-cuda12x>=12.0.0 - - dask-cudf-cu12==25.10.*,>=0.0.0a0 + - numba-cuda[cu12]>=0.19.1,<0.20.0a0 + # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided + - matrix: + packages: + - numba-cuda[cu13]>=0.19.1,<0.20.0a0 + # NOTE: This is intentionally not broken into groups by a 'cuda_suffixed' selector like + # other packages with -cu{nn}x suffixes in this file. + # All RAPIDS wheel builds (including in devcontainers) expect cupy to be suffixed. + - output_types: [requirements, pyproject] + matrices: - matrix: cuda: "12.*" - cuda_suffixed: "false" packages: - - *cudf_unsuffixed - # NOTE: cupy still has a "-cuda12x" suffix here, because it's suffixed - # in DLFW builds - - *cupy_cu12 - - *dask_cudf_unsuffixed + - cupy-cuda12x>=13.6.0 + # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided - matrix: packages: - - *cudf_unsuffixed - - *cupy_cu12 - - *dask_cudf_unsuffixed + - cupy-cuda13x>=13.6.0 test_python: common: - output_types: [conda, requirements, pyproject] @@ -247,10 +248,54 @@ dependencies: - output_types: [conda] packages: - coverage - - *cudf_unsuffixed - - cupy>=12.0.0 - - *dask_cudf_unsuffixed - - cuxfilter==25.10.*,>=0.0.0a0 - - python>=3.10,<3.14 + - *cupy_unsuffixed - pytest-benchmark - pytest-xdist + depends_on_cudf: + common: + - output_types: conda + packages: + - &cudf_unsuffixed cudf==25.10.*,>=0.0.0a0 + - output_types: requirements + packages: + # pip recognizes the index as a global option for the requirements.txt file + - --extra-index-url=https://pypi.nvidia.com + - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple + specific: + - output_types: [requirements, pyproject] + matrices: + - matrix: + cuda: "12.*" + cuda_suffixed: "true" + packages: + - cudf-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - cudf-cu13==25.10.*,>=0.0.0a0 + - {matrix: null, packages: [*cudf_unsuffixed]} + depends_on_dask_cudf: + common: + - output_types: conda + packages: + - &dask_cudf_unsuffixed dask-cudf==25.10.*,>=0.0.0a0 + - output_types: requirements + packages: + # pip recognizes the index as a global option for the requirements.txt file + - --extra-index-url=https://pypi.nvidia.com + - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple + specific: + - output_types: [requirements, pyproject] + matrices: + - matrix: + cuda: "12.*" + cuda_suffixed: "true" + packages: + - dask-cudf-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - dask-cudf-cu13==25.10.*,>=0.0.0a0 + - {matrix: null, packages: [*dask_cudf_unsuffixed]} diff --git a/docs/source/user_guide/installation.rst b/docs/source/user_guide/installation.rst index 4f9acf1a..1266550f 100644 --- a/docs/source/user_guide/installation.rst +++ b/docs/source/user_guide/installation.rst @@ -7,7 +7,11 @@ For the most customized way of installing RAPIDS and cuxfilter, visit the select .. code-block:: bash - # for CUDA 12 + # CUDA 13 + conda install -c rapidsai -c conda-forge \ + cuxfilter=25.10 python=3.10 cuda-version=13.0 + + # CUDA 12 conda install -c rapidsai -c conda-forge \ cuxfilter=25.10 python=3.10 cuda-version=12.9 @@ -17,7 +21,10 @@ Install cuxfilter from PyPI using pip: .. code-block:: bash - # for CUDA 12 + # CUDA 13 + pip install cuxfilter-cu13 -extra-index-url=https://pypi.nvidia.com + + # CUDA 12 pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com diff --git a/python/pyproject.toml b/python/pyproject.toml index 1b559272..c6d4f112 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -20,12 +20,13 @@ requires-python = ">=3.10" dependencies = [ "bokeh>=3.1,<=3.6.3", "cudf==25.10.*,>=0.0.0a0", - "cupy-cuda12x>=12.0.0", + "cupy-cuda13x>=13.6.0", "dask-cudf==25.10.*,>=0.0.0a0", "datashader>=0.15", "geopandas>=0.11.0", "holoviews>=1.16.0,<1.21.0a0", "jupyter-server-proxy", + "numba-cuda[cu13]>=0.19.1,<0.20.0a0", "numba>=0.59.1,<0.62.0a0", "numpy>=1.23,<3.0a0", "packaging",