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

CUDA: drop support of old CC #17478

Merged
merged 1 commit into from
Aug 3, 2020
Merged

Conversation

tomoaki0705
Copy link
Contributor

@tomoaki0705 tomoaki0705 commented Jun 5, 2020

resolves #16649

  • update minimum requirement of CUDA to 8.0
  • remove deprecated version checks

Still, this PR is open for discussion.
Supporting different CUDA based on branch is one solution.
Updating CUDA 8.0 is also another point to discuss.
It's still possible to build for old CC, by specifying CUDA_ARCH_BIN manually at cmake stage

Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

  • I agree to contribute to the project under OpenCV (BSD) License.
  • To the best of my knowledge, the proposed patch is not based on a code under GPL or other license that is incompatible with OpenCV
  • The PR is proposed to proper branch
  • There is reference to original bug report and related work
  • There is accuracy test, performance test and test data in opencv_extra repository, if applicable
    Patch to opencv_extra has the same branch name.
  • The feature is well documented and sample code can be built with the project CMake
force_builders=Custom
buildworker:Custom=linux-4
build_image:Custom=ubuntu-cuda:18.04

@tomoaki0705
Copy link
Contributor Author

There are many aspects to discuss on this PR.

  • master/3.4 branch
    • May be we can keep the support situation for 3.4, so porting this branch only to master branch makes sense
  • CUDA version
  • Jetson TK1 support
    • If I remember correctly, one of the build machine was based on Jetson TK1.
    • Dropping TK1 might be too early ?
    • If we upgrade to 8.0, user can't enable CUDA feature on TK1, since it only has old CUDA 6.5
  • sm_50
    • Already, there are notice about dropping support sm_50
    • Even we wipe out from the default list, user can specify the CC with CUDA_ARCH_BIN option, so there is a way to use it.

@asmorkalov
Copy link
Contributor

@tomoaki0705 Thanks for the started discussion you touched the same items that I want to bring. I discussed the proposal with @alalek and @vpisarev and outcome is the following:

Key ideas

  • It's not good idea to drop support in minor releases and it's better to do it with major change. We propose to presume support on current level till 5.0.
  • OpenCV 3.4 branch is merged to master weekly or be-weekly and we ask people to propose bug fixes to 3.4. Major changes in build infrastructure leads to merge conflicts and it's better to introduce changes to 3.4 first.
  • It's reasonable to drop CC 1.x and 2.x, but 3.x is still in use and it'll be great to support Jetson TK1.

Technical proposal

  • Exclude not CCs from CUDA_ARCH_BIN and CUDA_ARCH_PTX defaults. and propose only modern arches.
  • Introduce extra cmake flag like `ENABLE_DEPRICATED_CUDA_CC" to turn them on or some solution like that to mark old stuff deprecated and enable it with extra options.
  • Stay with CUDA 6.5 as baseline, see TK1.
  • Enable new functionality for modern CUDA/CC only, if it's needed for DNN.

@tomoaki0705
Copy link
Contributor Author

Sorry for the late reply.
I now understand the key idea of what you meant.
Let me update the PR

@tomoaki0705 tomoaki0705 force-pushed the dropOldCC branch 3 times, most recently from 80ff6e6 to ba298d1 Compare June 18, 2020 12:57
@tomoaki0705
Copy link
Contributor Author

@asmorkalov , I've updated the PR.
Please let me know if this PR is aligned with your thought.

@tomoaki0705 tomoaki0705 force-pushed the dropOldCC branch 2 times, most recently from 2e66ff4 to 9213671 Compare June 21, 2020 21:57
  * keep it possible to build for old CC
  * make sure old generations don't come up for the choice
  * remove related version check of old one
Copy link
Member

@alalek alalek left a 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 👍

@asmorkalov asmorkalov removed the RFC label Aug 3, 2020
@opencv-pushbot opencv-pushbot merged commit ce74285 into opencv:3.4 Aug 3, 2020
@tomoaki0705 tomoaki0705 deleted the dropOldCC branch August 3, 2020 14:31
@alalek alalek mentioned this pull request Aug 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: build/install category: gpu/cuda (contrib) OpenCV 4.0+: moved to opencv_contrib future This issue can't be fixed during restrictions of the compatibility requirements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants