-
-
Notifications
You must be signed in to change notification settings - Fork 64
Enable CUDA support. #123
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
Enable CUDA support. #123
Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
|
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
|
@conda-forge-admin, please rerender |
|
Hi! This is the friendly automated conda-forge-webservice. |
…onda-forge-pinning 2020.03.14
…onda-forge-pinning 2020.03.14
|
There are CI failures: What is the proper way to fix it? |
|
@isuruf do you have ideas how to fix the nvcc_linux-64=None issue reported above? |
|
That's there to enable a build without cuda. Do you want a build without cuda? Or do you want only builds with cuda? If the former, use |
|
Thanks @isuruf for the hints! The answer to your question actually depends on whether a single feedstock can support both cuda and non-cuda versions of the packages for the same platform (linux64 here) and how. The aim is that arrow-cpp would be installable to environments without cuda (the current master behavior) and to environments with cuda (the extension from this PR, the package needs to include Btw, in this particular case of arrow-cpp package, any cuda version of the package would likely work in environments with no cuda installed, libarrow_cuda library would just not be unused. |
|
Would take a look at |
|
Thanks @jakirkham for the link! The current PR is using the same approach as ucx-split. |
|
Please review. |
kkraus14
left a comment
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.
Looks good to me, thanks @pearu!
|
Will we need similar changes for |
|
Looks like this only links to |
|
Yeah sorry Isuru. I may not be able to answer your question as I don't know enough about Arrow's code base. Hopefully someone more knowledgeable there can provide us some idea of what CUDA features they are using 🙂 |
Yes, there is a |
|
@xhochy, this PR should not have been merged. As it is right now, some users who don't even have a GPU will get a proprietary binary blob (cuda-toolkit). |
Oh, then I didn't understand the how selection mechanism for cuda vs non-cuda works. |
|
@isuruf Is there something easy to fix or should we revert and mark as broken? |
|
It's better to mark as broken for now. There are some issues that needs to be discussed before fixing. |
|
Sorry I'm confused @isuruf, what is the issue here? |
|
Question to @xhochy. If arrow is built with CUDA enabled, do downstream packages need to enable CUDA too? (I know that downstream package can enable CUDA, but do they need to?) @jakirkham, there's no features added here, so the conda solver is free to choose a CUDA build which brings in |
No, downstream packages without cuda will just work fine. The CUDA support/usage is contained in |
Got it. Yeah this seems like a feature we would want for other reasons. Missed that wasn't included here. For context @pearu @xhochy, we handle this in the Another way to solve this is to add some |
|
Sorry I may have misunderstood your comment before, @xhochy. Are you already using |
|
No, we're not using
|
|
Marking the builds as broken: conda-forge/admin-requests#22 |
|
Ok then borrowing |
|
I am not sure how the splitting of arrow-cpp should work. ucx-split seems to produce two conda packages:
I can think of the following solution:
Btw, I have created #125 but it might be nonsense. |
|
Here's an option. Have 2 variants.
|
|
Though users may want to use the CPU-only package on machines that have a GPU. |
|
@jakirkham, then they can use the build string to get the package that doesn't use the GPU. |
|
Build strings of non-mutex package tend to have other things like build numbers, which can make this a bit hard to use in practice. |
Checklist
conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)