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

Update to CMake 3.13 for better CUDA support and to enable build concurrency #3261

Merged
merged 19 commits into from Jan 17, 2022

Commits on Jan 15, 2022

  1. Require CMake 3.18

    From https://cliutils.gitlab.io/modern-cmake/chapters/packages/CUDA.html:
    
        Unlike the older languages, CUDA support has been rapidly
        evolving, and building CUDA is hard, so I would recommend you
        require a very recent version of CMake! CMake 3.17 and 3.18 have a
        lot of improvements directly targeting CUDA.
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    e77094d View commit details
    Browse the repository at this point in the history
  2. Fix a doc typo

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    3a3c3b9 View commit details
    Browse the repository at this point in the history
  3. Replace deprecated usage of FindCUDA with CMake's CUDA language and F…

    …indCUDAToolkit
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    d0533b3 View commit details
    Browse the repository at this point in the history
  4. Enable build parallelism by default

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    db1c859 View commit details
    Browse the repository at this point in the history
  5. Remove a few concessions for old versions of CMake

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    bdfe11f View commit details
    Browse the repository at this point in the history
  6. Update Dockerfiles to install CMake 3.18

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    dac507f View commit details
    Browse the repository at this point in the history
  7. Mention DOCKER_BUILDKIT=1 in Readme

    Else build arg NCCL_VERSION does not override env variable from base container.
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    d81cb54 View commit details
    Browse the repository at this point in the history
  8. Update some docs and changelog

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    f1be10a View commit details
    Browse the repository at this point in the history
  9. Fix --std=c++... argument redefinition

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    b51882f View commit details
    Browse the repository at this point in the history
  10. Fix enabling CUDA for mixed cpu+gpu Horovod builds

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    bebd206 View commit details
    Browse the repository at this point in the history
  11. Require cmake>=3.18 in Jenkinsfile.ppc64le

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    852bf85 View commit details
    Browse the repository at this point in the history
  12. Limit default build concurrency to -j8

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    9ddea9c View commit details
    Browse the repository at this point in the history
  13. Add misging gpg to Dockerfiles

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    7e28c00 View commit details
    Browse the repository at this point in the history
  14. Update changelog

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    7c15c17 View commit details
    Browse the repository at this point in the history
  15. Fix sudo in horovod-ray/Dockerfile

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    cfc6058 View commit details
    Browse the repository at this point in the history
  16. Fix linking CUDA runtime libraries (fixes TF 1.15 test case)

    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    c7ad067 View commit details
    Browse the repository at this point in the history
  17. ppc64le: Workaround "error: identifier "__ieee128" is undefined"

    This appears to be a bug with GCC 8+ and CUDA 10. It's mitigated
    by not building with C++11.
    
    Alternatively we could disable quadruple precision.
    LLNL/blt#341 (comment)
    However, libstdc++8 with gcc 8.2 has a bug preventing
    compilation with-mno-float128.
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84654
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    a1739b1 View commit details
    Browse the repository at this point in the history
  18. Reduce required CMake version to 3.13

    We achieve this by shipping a FindCUDAToolkit.cmake based
    on CMake 3.17.5.
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    97c8825 View commit details
    Browse the repository at this point in the history
  19. Docker: Install CMake via pip

    Version 3.13 seems to be unavailable via Kitware's apt repo and
    the pip command line is easier anyway.
    
    Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
    maxhgerlach committed Jan 15, 2022
    Configuration menu
    Copy the full SHA
    9f42442 View commit details
    Browse the repository at this point in the history