Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RMM: Build CUDA 12 packages #1223

Merged
merged 71 commits into from
Jun 21, 2023
Merged
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
dad5175
Add draft of CUDA 12 custom job.
bdice Feb 23, 2023
5871498
Fix needs.
bdice Feb 23, 2023
2bd733c
Update compiler package names.
bdice Feb 23, 2023
f66899e
Use quotes.
bdice Feb 23, 2023
45417d7
Build on CPU node.
bdice Feb 24, 2023
2dfc9a0
Add cuda-cudart.
bdice Feb 24, 2023
c3fca69
Require cuda-cudart to run, not cuda-nvcc.
bdice Feb 24, 2023
871c420
Use cuda-cudart-dev for building.
bdice Feb 24, 2023
d9f0715
Update to gcc 11.
bdice Feb 25, 2023
83207fb
Add CUDAHOSTCXX before invoking CMake.
bdice Feb 27, 2023
3884d96
Merge branch 'cuda-12-test' of github.com:bdice/rmm into cuda-12-test
bdice Feb 27, 2023
f7e7490
Merge branch 'branch-23.04' into cuda-12-test
bdice Feb 27, 2023
b3f6071
Try adding cuda-cudart.
bdice Feb 28, 2023
859692f
Add cuda-cudart-dev in more places until I understand what sections a…
bdice Feb 28, 2023
f0446c2
Add cuda-cudart-static.
bdice Feb 28, 2023
ca1b765
Merge remote-tracking branch 'upstream/branch-23.04' into cuda-12-test
bdice Feb 28, 2023
5baa99e
Update to GCC 11.
bdice Feb 28, 2023
c1b6f99
Use NVCC_PREPEND_FLAGS instead of CUDAHOSTCXX.
bdice Feb 28, 2023
67f9424
Use CUDA 12 shared-action-workflows branch.
bdice Feb 28, 2023
fdad130
Merge remote-tracking branch 'origin/gcc-11' into cuda-12-test
bdice Feb 28, 2023
5abb2ee
Add CUDA 12.0 to dependencies.yaml.
bdice Feb 28, 2023
504e56f
Attempt at rmm Python CUDA 12 support.
bdice Feb 28, 2023
41bd814
Update conda_build_config.yaml.
bdice Mar 2, 2023
923e479
Fix host requirements for cuda-python.
bdice Mar 4, 2023
1375e40
Fix compiler.
bdice Mar 8, 2023
5be8b3f
Make cuda11 the special case and cuda12 the default case.
bdice Mar 8, 2023
0322a17
Merge remote-tracking branch 'upstream/branch-23.04' into cuda-12-test
bdice Mar 8, 2023
e342c62
Update cuda-python in dependencies.yaml.
bdice Mar 8, 2023
b4f77a2
Remove compiler (shouldn't be needed in host?).
bdice Mar 10, 2023
1685fc6
Merge branch 'branch-23.04' into cuda-12-test
bdice Mar 23, 2023
c3cf48a
Add pyproject.
bdice Mar 23, 2023
f026655
Require nvcc at build time.
bdice Mar 28, 2023
72e0c74
Merge branch 'branch-23.06' into cuda-12-test
bdice Mar 28, 2023
042a67e
Merge branch 'branch-23.06' into cuda-12-test
bdice Apr 6, 2023
b7e52ad
Merge branch 'branch-23.06' into cuda-12-test
vyasr Apr 19, 2023
99e92ea
Hard pin the nvcc and cudart versions for now.
vyasr Apr 19, 2023
9a74395
Comment out unnecessary builds
vyasr Apr 21, 2023
5a58857
Try pinning cuda_version instead of cudart
vyasr Apr 21, 2023
e67075d
Try removing prepend flags
vyasr Apr 21, 2023
1901c8c
Merge branch 'branch-23.06' into cuda-12-test
jakirkham May 24, 2023
3f73f32
Merge branch 'branch-23.08' into cuda-12-test
bdice May 25, 2023
5900a42
Simplify CUDA 12 packaging using conda-forge channel.
bdice May 26, 2023
23aab3b
Fix typo.
bdice May 26, 2023
aca55ad
Use cuda-version.
bdice May 26, 2023
5852545
Bump to numba>=0.57 for CUDA 12 support, with numpy>=1.21 to match nu…
bdice May 26, 2023
8704a75
Merge remote-tracking branch 'upstream/branch-23.08' into cuda-12-test
bdice May 26, 2023
44dc0db
Pin cuda-version for both CUDA 11 and 12.
bdice May 30, 2023
4703e2b
Add back workflows for Python, etc.
bdice Jun 5, 2023
b8d1c12
Merge remote-tracking branch 'upstream/branch-23.08' into cuda-12-test
bdice Jun 5, 2023
a45a93b
Always pin to cuda-version according to major spec.
bdice Jun 6, 2023
943a9dc
Merge branch 'branch-23.08' into cuda-12-test
bdice Jun 13, 2023
4a1a701
Set cuda_spec
vyasr Jun 13, 2023
b5d6a2f
Remove extra line.
bdice Jun 14, 2023
3ab055f
Don't allow alphas of cuda-python.
bdice Jun 14, 2023
64a77b6
Revise cuda-version usage.
bdice Jun 20, 2023
0aeae56
Replace cudatoolkit with cuda-version in host on CUDA 11.
bdice Jun 20, 2023
58bb021
Fix cuda_spec.
bdice Jun 20, 2023
635fae8
Merge branch 'cuda-12-test' of github.com:bdice/rmm into cuda-12-test
bdice Jun 20, 2023
a07dd1c
Specify CUDA 11 versions to avoid breakage in newer CUDA versions tha…
bdice Jun 20, 2023
2fbc09c
Improve cuda-python dependency spec.
bdice Jun 20, 2023
d2d8052
Fix dependencies.yaml.
bdice Jun 20, 2023
7509fff
Revert changes to cuda-python in dependencies.yaml.
bdice Jun 20, 2023
865f707
Add cuda-cudart-dev to CUDA 12 host dependencies.
bdice Jun 21, 2023
3213081
Get cuda-python via run_exports from host.
bdice Jun 21, 2023
31cc259
Merge branch 'branch-23.08' into cuda-12-test
bdice Jun 21, 2023
b2b3b29
Update conda/recipes/librmm/meta.yaml
bdice Jun 21, 2023
a1156d6
Fix ignore_run_exports_from.
bdice Jun 21, 2023
3b74582
Apply suggestions from code review
vyasr Jun 21, 2023
c0f9368
Add CUDA 12 environment.
bdice Jun 21, 2023
748c7b5
Fix cuda-python pinnings to prevent alphas.
bdice Jun 21, 2023
56f8d59
Use pin_compatible.
bdice Jun 21, 2023
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
12 changes: 6 additions & 6 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ concurrency:
jobs:
cpp-build:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand All @@ -37,7 +37,7 @@ jobs:
python-build:
needs: [cpp-build]
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-build.yaml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand All @@ -46,7 +46,7 @@ jobs:
upload-conda:
needs: [cpp-build, python-build]
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-upload-packages.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-upload-packages.yaml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand All @@ -56,7 +56,7 @@ jobs:
if: github.ref_type == 'branch'
needs: python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand All @@ -68,7 +68,7 @@ jobs:
run_script: "ci/build_docs.sh"
wheel-build:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-build.yml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-build.yml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand All @@ -80,7 +80,7 @@ jobs:
wheel-publish:
needs: wheel-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-publish.yml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-publish.yml@cuda-120
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,40 +21,40 @@ jobs:
- wheel-build
- wheel-tests
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@cuda-120
checks:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@cuda-120
with:
enable_check_generated_files: false
conda-cpp-build:
needs: checks
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@cuda-120
with:
build_type: pull-request
conda-cpp-tests:
needs: conda-cpp-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@cuda-120
with:
build_type: pull-request
conda-python-build:
needs: conda-cpp-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-build.yaml@cuda-120
with:
build_type: pull-request
conda-python-tests:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-tests.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-tests.yaml@cuda-120
with:
build_type: pull-request
docs-build:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@cuda-120
with:
build_type: pull-request
node_type: "gpu-v100-latest-1"
Expand All @@ -64,7 +64,7 @@ jobs:
wheel-build:
needs: checks
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-build.yml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-build.yml@cuda-120
with:
build_type: pull-request
package-dir: python
Expand All @@ -73,7 +73,7 @@ jobs:
wheel-tests:
needs: wheel-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-test.yml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-test.yml@cuda-120
with:
build_type: pull-request
package-name: rmm
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,23 @@ on:
jobs:
cpp-tests:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@cuda-120
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
python-tests:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-tests.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-python-tests.yaml@cuda-120
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
wheel-tests:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-test.yml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux-test.yml@cuda-120
with:
build_type: nightly
branch: ${{ inputs.branch }}
Expand Down
1 change: 1 addition & 0 deletions conda/environments/all_cuda-118_arch-x86_64.yaml
bdice marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ dependencies:
- ninja
- numba>=0.57
- numpy>=1.21
- nvcc_linux-64=11.8
vyasr marked this conversation as resolved.
Show resolved Hide resolved
- pre-commit
- pytest
- pytest-cov
Expand Down
3 changes: 3 additions & 0 deletions conda/recipes/librmm/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ cxx_compiler_version:
- 11

cuda_compiler:
- cuda-nvcc

cuda11_compiler:
- nvcc
bdice marked this conversation as resolved.
Show resolved Hide resolved

cmake_version:
Expand Down
30 changes: 28 additions & 2 deletions conda/recipes/librmm/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,15 @@ requirements:
- ninja
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- {{ compiler('cuda') }} {{ cuda_version }}
{% if cuda_major == "11" %}
- {{ compiler('cuda11') }} {{ cuda_version }}
{% else %}
- {{ compiler('cuda') }}
{% endif %}
- cuda-version ={{ cuda_version }}
- sysroot_{{ target_platform }} {{ sysroot_version }}
host:
- cudatoolkit ={{ cuda_version }}
- cuda-version ={{ cuda_version }}
# We require spdlog and fmt (which was devendored from spdlog
# conda-forge packages in 1.11.0) so that the spdlog headers are not
# pulled by CPM and installed as a part of the rmm packages. However,
Expand Down Expand Up @@ -60,12 +65,19 @@ outputs:
run_exports:
- {{ pin_subpackage("librmm", max_pin="x.x") }}
ignore_run_exports_from:
{% if cuda_major == "11" %}
- {{ compiler('cuda11') }}
{% else %}
- {{ compiler('cuda') }}
vyasr marked this conversation as resolved.
Show resolved Hide resolved
{% endif %}
bdice marked this conversation as resolved.
Show resolved Hide resolved
requirements:
build:
- cmake {{ cmake_version }}
bdice marked this conversation as resolved.
Show resolved Hide resolved
run:
{% if cuda_major == "11" %}
- cudatoolkit {{ cuda_spec }}
{% endif %}
- cuda-version {{ cuda_spec }}
- fmt {{ fmt_version }}
- spdlog {{ spdlog_version }}
test:
Expand Down Expand Up @@ -113,12 +125,26 @@ outputs:
number: {{ GIT_DESCRIBE_NUMBER }}
string: cuda{{ cuda_major }}_{{ date_string }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }}
ignore_run_exports_from:
{% if cuda_major == "11" %}
- {{ compiler('cuda11') }}
{% else %}
- {{ compiler('cuda') }}
{% endif %}
bdice marked this conversation as resolved.
Show resolved Hide resolved
requirements:
build:
- cmake {{ cmake_version }}
host:
- cuda-version ={{ cuda_version }}
{% if cuda_major == "11" %}
- cudatoolkit ={{ cuda_version }}
{% else %}
- cuda-cudart-dev
{% endif %}
run:
{% if cuda_major == "11" %}
- cudatoolkit {{ cuda_spec }}
{% endif %}
- cuda-version {{ cuda_spec }}
- {{ pin_subpackage('librmm', exact=True) }}
- gtest {{ gtest_version }}
- gmock {{ gtest_version }}
Expand Down
3 changes: 3 additions & 0 deletions conda/recipes/rmm/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ cxx_compiler_version:
- 11

cuda_compiler:
- cuda-nvcc

cuda11_compiler:
- nvcc
bdice marked this conversation as resolved.
Show resolved Hide resolved

sysroot_version:
Expand Down
21 changes: 17 additions & 4 deletions conda/recipes/rmm/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,35 @@ requirements:
- ninja
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- {{ compiler('cuda') }} {{ cuda_version }}
{% if cuda_major == "11" %}
- {{ compiler('cuda11') }} {{ cuda_version }}
{% else %}
- {{ compiler('cuda') }}
{% endif %}
- cuda-version ={{ cuda_version }}
- sysroot_{{ target_platform }} {{ sysroot_version }}
host:
- cuda-python >=11.7.1,<12.0
{% if cuda_major == "11" %}
bdice marked this conversation as resolved.
Show resolved Hide resolved
- cudatoolkit ={{ cuda_version }}
- cuda-python 11.7.1
bdice marked this conversation as resolved.
Show resolved Hide resolved
vyasr marked this conversation as resolved.
Show resolved Hide resolved
{% else %}
jakirkham marked this conversation as resolved.
Show resolved Hide resolved
- cuda-cudart-dev
- cuda-python 12.0
vyasr marked this conversation as resolved.
Show resolved Hide resolved
{% endif %}
- cuda-version ={{ cuda_version }}
- cython >=0.29,<0.30
- librmm ={{ version }}
- python
- scikit-build >=0.13.1
- setuptools >=61.0.0
- tomli # [py<311]
run:
- cuda-python >=11.7.1,<12.0
{% if cuda_major == "11" %}
- {{ pin_compatible('cudatoolkit', max_pin='x', min_pin='x') }}
{% endif %}
- {{ pin_compatible('cuda-version', max_pin='x', min_pin='x') }}
- numba >=0.57
- numpy >=1.21
- {{ pin_compatible('cudatoolkit', max_pin='x', min_pin='x') }}

test:
imports:
Expand Down
43 changes: 41 additions & 2 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ dependencies:
- output_types: [conda, requirements, pyproject]
packages:
- &cmake_ver cmake>=3.26.4
- &cuda_python cuda-python>=11.7.1,<12.0
- cython>=0.29,<0.30
- ninja
- scikit-build>=0.13.1
Expand All @@ -76,6 +75,33 @@ dependencies:
packages:
- wheel
- setuptools>=61.0.0
specific:
- output_types: conda
matrices:
- matrix:
arch: x86_64
cuda: "11.8"
packages:
- nvcc_linux-64=11.8
- matrix:
arch: aarch64
cuda: "11.8"
packages:
- nvcc_linux-aarch64=11.8
- matrix:
cuda: "12.0"
packages:
- cuda-version=12.0
- cuda-nvcc
- output_types: [conda, requirements, pyproject]
matrices:
- matrix:
cuda: "12.0"
packages:
- &cuda_python12 cuda-python>=12.0,<13.0
- matrix: # All CUDA 11 versions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocking comment, but something we should address: this fallback will give incorrect results if someone tries CUDA>=12.1, which may start happening fairly soon (or perhaps in DLFW/some other container where people are using dfg, e.g. I know Paul is doing that for devcontainers in some cases).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can specify each CUDA 11 version here, to enforce a failure for CUDA 12.1 instead of a silent match for the wrong package.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out this is not possible because we need rapids-dependency-file-generator to support pyproject.toml with matrix keys. We have to have a "no matrix" fallback that is used for pyproject.toml generation.

Copy link
Contributor Author

@bdice bdice Jun 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, let's come back to this after we resolve the dfg work.

packages:
- &cuda_python11 cuda-python>=11.7.1,<12.0
checks:
common:
- output_types: [conda, requirements]
Expand Down Expand Up @@ -105,6 +131,10 @@ dependencies:
cuda: "11.8"
packages:
- cudatoolkit=11.8
- matrix:
cuda: "12.0"
packages:
- cuda-version=12.0
develop:
common:
- output_types: [conda, requirements]
Expand Down Expand Up @@ -141,7 +171,16 @@ dependencies:
packages:
- numba>=0.57
- numpy>=1.21
- *cuda_python
specific:
- output_types: [conda, requirements, pyproject]
matrices:
- matrix:
cuda: "12.0"
packages:
- *cuda_python12
- matrix: # All CUDA 11 versions
packages:
- *cuda_python11
test_cpp:
common:
- output_types: conda
Expand Down