Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Refactor CUDA versions in dependencies.yaml. #1422
Refactor CUDA versions in dependencies.yaml. #1422
Changes from 1 commit
3eb8518
2dae27c
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The inclusion of
cudatoolkit
is now handled by a separate dependency list calledcuda
which abstracts over major versions instead of major.minor versions. It turns out that the dependency files where thecudatoolkit
dependency list was being included should already get their required CUDA parts as dependencies of the builtrmm
packages (fortest_cpp
,test_python
, ordocs
environments) orcuda-nvcc
itself (if usingbuild.sh
withconda/environments/all_cuda-120_arch-x86_64.yaml
, see also https://github.com/rapidsai/rmm/pull/1422/files#r1446707857).Therefore, the only relevant purpose this dependency list must serve is to constrain the CUDA major.minor version by providing a pinning on
cuda-version
that matches the input matrix'scuda
key.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does
rapids-dependency-file-generator
have some concept of templating that we could use?If so, maybe we could rewrite this to something like and allow that to be reused across different CUDA versions and cutdown on the boilerplate further
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently, there is not support for anything like that. I think we’ve avoided introducing a templating layer on purpose, in part. It’s a little bit like how conda recipes want to move away from template logic… we’ve gotten quite far without it for dependencies, but I see the value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For clarity Conda recipes will still have templating. It's more that we want the recipe format to reflect YAML. The reason being we can read them with a normal YAML library in one pass (not lots of passes through with Jinja, selectors, etc.)
There are ways to have templating and make it YAML friendly. Though this is maybe another discussion for a different issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency list is empty for CUDA 12. I considered listing
cuda-cudart-dev
here but no packages aside from the compiler are technically needed for CUDA 12. Thecuda-nvcc
package (from thebuild
dependency list) will include thecuda-cudart
pieces needed for runtime. I can't think of a current use of dependencies.yaml where this distinction would matter, but it's possible that we might want to addcuda-cudart-dev
here in the future for reasons I can't think of at the moment. I decided to leave it out because it would result in a new line forcuda-cudart-dev
in theconda/environments/all_cuda-120_arch-x86_64.yaml
file which didn't seem necessary. (Also discussed with @jameslamb)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So in cuDF (or another RAPIDS library), this would include a few more packages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's correct.