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

Require CUDA 11.2+ #1708

Merged
merged 10 commits into from
Jul 18, 2023
Merged

Conversation

jakirkham
Copy link
Member

@jakirkham jakirkham commented Jul 19, 2021

This bumps the minimum CUDA version to 11.2. Several providers of GPUs (Kaggle, Colab, etc.) have already upgraded to 11.2+. Some libraries already require CUDA 11.2+ (like RAPIDS). Finally the CUDA 10.x Docker images are now EOL. Given the addition of newer CUDA versions (like 12.0+) and the strain of having so many CUDA versions on CI, this proposes we drop any CUDA pre-11.2 versions to lighten the load. This also makes things easier as 11.2 builds have reasonable CUDA version compatibility. This should also minimize the amount of work we need to do with the legacy CUDA build infrastructure as we increasingly move to the new package structure & infra of CUDA 12.0+.


Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

Closes #1053
Closes #1519

@conda-forge-linter
Copy link

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 (recipe) and found it was in an excellent condition.

@jakirkham
Copy link
Member Author

Would be great to get some feedback from @conda-forge/core here 🙂

Not sure if there is anything special we need to do about GCC versions for example.

Also dropped the migrations as those seem to have all been merged and/or created PRs for the migration (with the exception of omniscidb, which is a bit of a special case anyways). So think we are good to mark those as complete.

If anything else sticks out that we need to do here, please let me know

1
build_number:
1
paused: true
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this was paused and docs were added to show how to use this file manually to bring in an older CUDA version if needed.

Copy link
Member

Choose a reason for hiding this comment

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

yes. let's leave this file here.

cc @jaimergp IIRC

Copy link
Member Author

Choose a reason for hiding this comment

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

Do we want to still encourage people to add old versions though? Thought we were concerned about CI getting overwhelmed. No strong feelings personally. Just interested in making the addition of newer CUDA versions easier 🙂

Copy link
Member

Choose a reason for hiding this comment

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

Yes, we need this file for legacy CUDA, even if it's opt-in only and discouraged. If conda-forge/conda-smithy#1494 goes through, CI overusage would be less of a problem.

Copy link
Member Author

Choose a reason for hiding this comment

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

@isuruf do you have any thoughts here?

Copy link
Member Author

Choose a reason for hiding this comment

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

Friendly nudge @isuruf 🙂

Copy link
Member

Choose a reason for hiding this comment

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

We should make a smithy release with conda-forge/conda-smithy#1494 and then keep this config. I can do the smithy release today.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think the challenge with leaving this file here is we want to move to the new compilers as well. If we leave this, it won't work with the new compilers and I'm not exactly sure how we can make it use the old compilers. If someone has a suggestion on that latter point, that would be welcome 🙂 However if we can't come up with anything, I'm not sure it's a good idea to leave a file that doesn't work properly

Copy link
Member Author

Choose a reason for hiding this comment

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

Some time has passed since the discussion above

As the nvidia/cuda images for these versions no longer exist, keeping this doesn't make sense. So going to go ahead with dropping it

@hmaarrfk
Copy link
Contributor

@jakirkham I would be very much in favor of dropping this. The huge build matrix is an increasing strain.

@leofang
Copy link
Member

leofang commented Aug 12, 2021

This is only applicable to linux64, right? For ppc64le/aarch64, aren't we still blocked by the decision for the base OS (conda-forge/conda-forge.github.io#1432)?

@jakirkham
Copy link
Member Author

Yeah we only support CUDA on x86_64 atm. My guess is ppc64le will probably do something similar to this. Though aarch64 has some oddities so may need some special hand-holding.

@hmaarrfk
Copy link
Contributor

@jakirkham any news on this push?

@jakirkham
Copy link
Member Author

Right now am focused on newer CUDA versions and new architectures.

For new CUDA versions specifically, the plan is to implement those with CUDA Enhanced Compatibility using 11.2 as the base (to support 11.2+). Please see PR ( conda-forge/nvcc-feedstock#71 ) and linked PRs/issues for discussion. This will effectively relax the upper bound for packages built with 11.2 so they can be installed with any 11.2+ version as long as they are still 11.x

We are planning on making 11.0 the new minimum and moving to new compilers, but that is down-prioritized atm.

@jakirkham
Copy link
Member Author

JFYI CUDA Enhanced Compatibility is now in use in conda-forge

Copy link
Member

@mariusvniekerk mariusvniekerk left a comment

Choose a reason for hiding this comment

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

Given that the migration has run completely I say we merge this one in

Copy link
Member

@mariusvniekerk mariusvniekerk left a comment

Choose a reason for hiding this comment

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

Given that the migration has run completely I say we merge this one in

@isuruf
Copy link
Member

isuruf commented Oct 13, 2021

Merging this as it is will make the gcc 9 to be used, which is not what we want.

@jakirkham
Copy link
Member Author

Why don't we want that? Know people who have been asking to do exactly that.

@isuruf
Copy link
Member

isuruf commented Oct 13, 2021

Because nvcc doesn't support that? Even if it did, when we change the default to gcc 10, cuda will use gcc 10.

@jakirkham
Copy link
Member Author

As of CUDA 11.0, GCC 9 is supported

https://developer.nvidia.com/blog/cuda-11-features-revealed/

@jakirkham
Copy link
Member Author

Any thoughts on this Isuru? 🙂

Ideally would like to get beyond managing a bunch of migrators here. Especially since that seems to have caused some recent confusion

@isuruf
Copy link
Member

isuruf commented Oct 14, 2021

We are going to go for GCC 10 in CPU builds. How are you going to enforce GCC 9 if you remove the migrators?

@jakirkham
Copy link
Member Author

Can we zip the compiler versions with Docker images or similar?

@isuruf
Copy link
Member

isuruf commented Oct 14, 2021

You've asked this multiple times from me and the answer has always been not without more work in conda-smithy side.

@jakirkham
Copy link
Member Author

I'm sorry. Am just struggling with how we can maintain this.

Originally was trying to get us all to align on the same compiler (GCC 9), but it sounds like you want to move ahead, which agree makes things harder.

Do you have a sense of what is needed on conda-smithy? Are there notes from previous errors I can read up on?

@isuruf
Copy link
Member

isuruf commented Oct 14, 2021

Do you have a sense of what is needed on conda-smithy?

I've told you this before too, but here goes anyway. We can look at the meta.yaml and look for compiler('cuda') in it and set an environment variable CF_CUDA_ENABLED=True and use that env variable here as in https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/conda_build_config.yaml#L111

@jakirkham
Copy link
Member Author

Thank you Isuru 🙂 I appreciate it. I don't always remember everything 😅

Will give that some more thought

@h-vetinari
Copy link
Member

In staged-recipes, CUDA 10.2 is now colliding with the default GCC 9:

#error -- unsupported GNU version! gcc versions later than 8 are not supported!

@jakirkham
Copy link
Member Author

Planning on merge EOD if no comments

@jakirkham jakirkham merged commit 2fc059e into conda-forge:main Jul 18, 2023
@jakirkham jakirkham deleted the req_cuda_11 branch July 18, 2023 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants