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 build system and docs to new minimum cudf-0.20 requirements #7780

Conversation

robertmaynard
Copy link
Contributor

@robertmaynard robertmaynard commented Mar 31, 2021

cudf-0.20 increase the minimum requirements in the following way:

  • GCC version 9.0+ is required
  • CUDA and C++ code now is compiled with -std=c++17
  • We require CUDA Toolkit version 11.0 or greater

This updates the build-system and the README with these new requirements

@robertmaynard robertmaynard requested a review from a team as a code owner March 31, 2021 13:15
@github-actions github-actions bot added CMake CMake build issue libcudf Affects libcudf (C++/CUDA) code. labels Mar 31, 2021
@jrhemstad
Copy link
Contributor

Can we include updating to C++17 with this change?

@robertmaynard
Copy link
Contributor Author

Can we include updating to C++17 with this change?

Will do.

@robertmaynard robertmaynard changed the title Update build system and docs to state cuda 11 required Update build system and docs to new minimum rmm-0.20 requirements Mar 31, 2021
@robertmaynard robertmaynard changed the title Update build system and docs to new minimum rmm-0.20 requirements Update build system and docs to new minimum cudf-0.20 requirements Mar 31, 2021
@robertmaynard robertmaynard force-pushed the update_build_system_and_docs_to_state_cuda_11_required branch from 2a8a42b to 468ecfc Compare March 31, 2021 14:50
@robertmaynard
Copy link
Contributor Author

It is expected that all the builds won't pass since we still have CUDA 10.1 and 10.2 testers

@karthikeyann
Copy link
Contributor

It is expected that all the builds won't pass since we still have CUDA 10.1 and 10.2 testers

Will this PR include update to those CI testers as well?

@robertmaynard
Copy link
Contributor Author

It is expected that all the builds won't pass since we still have CUDA 10.1 and 10.2 testers

Will this PR include update to those CI testers as well?

Currently working on how to update CI

@harrism
Copy link
Member

harrism commented Mar 31, 2021

@robertmaynard can you confirm this will also resolve #7695 ?

@harrism
Copy link
Member

harrism commented Mar 31, 2021

CUDA 11.0 supports Ubuntu 18.0, where the default compiler is GCC 8.x. GCC 8.x supports C++17. So shouldn't our min GCC be 8.x, not 9.x?

https://docs.nvidia.com/cuda/archive/11.0/cuda-installation-guide-linux/index.html

@kkraus14
Copy link
Collaborator

CUDA 11.0 supports Ubuntu 18.0, where the default compiler is GCC 8.x. GCC 8.x supports C++17. So shouldn't our min GCC be 8.x, not 9.x?

https://docs.nvidia.com/cuda/archive/11.0/cuda-installation-guide-linux/index.html

I believe not all C++17 features are supported until GCC 9.x. Additionally, conda uses gcc 9.3.0 for everything which means it's not safe for us to mix gcc 8 and conda in CI.

@jlowe
Copy link
Contributor

jlowe commented Apr 1, 2021

I believe not all C++17 features are supported until GCC 9.x. Additionally, conda uses gcc 9.3.0 for everything which means it's not safe for us to mix gcc 8 and conda in CI.

According to https://gcc.gnu.org/projects/cxx-status.html everything in the C++17 standard is covered by GCC 8.

Conda may require the packages to be built with a GCC 9.3.0 toolchain, but it would be very nice to not force 9.3.0 on everyone else as a result if all we really care about source-wise is C++17 compliance.

@kkraus14
Copy link
Collaborator

kkraus14 commented Apr 1, 2021

I may be misremembering a discussion we had surrounding this where it may have been gcc 7 vs 8 instead of 8 vs 9. If we set our minimum version to gcc 8 that works for me.

@jrhemstad
Copy link
Contributor

jrhemstad commented Apr 1, 2021

<memory_resource> wasn't added to libstdc++ until GCC 9. It would be kinda nice to be able to rely on that in the future.

@harrism
Copy link
Member

harrism commented Apr 1, 2021

<memory_resource> wasn't added to libstdc++ until GCC 9. It would be kinda nice to be able to rely on that in the future.

Damn. That would be nice. BTW, for reference https://en.cppreference.com/w/cpp/compiler_support

@harrism
Copy link
Member

harrism commented Apr 1, 2021

The question is whether our non-conda users are going to complain about upgrading their compiler.

@kkraus14
Copy link
Collaborator

kkraus14 commented Apr 1, 2021

The question is whether our non-conda users are going to complain about upgrading their compiler.

I believe we've required gcc 7.x for a while now which required installing an updated compiler on CentOS and Ubuntu 16.04. We got a few one off issues here and there related to compiler versions, but nothing significant.

I suspect we're going to get much more backlash from dropping CUDA 10.x.

@robertmaynard
Copy link
Contributor Author

robertmaynard commented Apr 1, 2021

CUDA 11.0 supports Ubuntu 18.0, where the default compiler is GCC 8.x. GCC 8.x supports C++17. So shouldn't our min GCC be 8.x, not 9.x?
https://docs.nvidia.com/cuda/archive/11.0/cuda-installation-guide-linux/index.html

I believe not all C++17 features are supported until GCC 9.x. Additionally, conda uses gcc 9.3.0 for everything which means it's not safe for us to mix gcc 8 and conda in CI.

In GCC 8, the <filesystem> implementation was in a separate library ( -lstdc++fs ), while in 9 it is part of the libstdc++. GCC 9 is the first release where libstdc++ C++17 support was no longer experimental ( https://gcc.gnu.org/gcc-9/changes.html ).

@robertmaynard
Copy link
Contributor Author

@robertmaynard can you confirm this will also resolve #7695 ?

It does fix the documentation being out of date, but not in the ideal way ( a single central RAPIDS requirements doc ).

@jrhemstad
Copy link
Contributor

The fact that both <filesystem> and <memory_resource> aren't available until gcc9 seals the deal imo.

@robertmaynard
Copy link
Contributor Author

rerun tests

1 similar comment
@robertmaynard
Copy link
Contributor Author

rerun tests

@robertmaynard robertmaynard force-pushed the update_build_system_and_docs_to_state_cuda_11_required branch from fbc0b5c to 71be28e Compare April 2, 2021 14:31
@robertmaynard robertmaynard requested a review from kkraus14 April 6, 2021 17:55
Copy link
Collaborator

@kkraus14 kkraus14 left a comment

Choose a reason for hiding this comment

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

CMake / docs lgtm

@mythrocks
Copy link
Contributor

Given that the requirements of CUDA version and min compiler version have both changed, should we mark this as a breaking change?

@kkraus14 kkraus14 added breaking Breaking change feature request New feature or request labels Apr 6, 2021
Copy link
Contributor

@codereport codereport left a comment

Choose a reason for hiding this comment

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

Upgraded NVIDIA drivers/CUDA and pulled down changes and got this PR / branch-0.20 building 👍

@ttnghia
Copy link
Contributor

ttnghia commented Apr 7, 2021

Rerun tests.

@robertmaynard robertmaynard force-pushed the update_build_system_and_docs_to_state_cuda_11_required branch from 33b3552 to d6132a8 Compare April 7, 2021 12:54
@robertmaynard
Copy link
Contributor Author

Looks like a single consistent failure of:

10:33:04  1 FAILED TEST
10:33:04 + remove_libcudf_kernel_cache_dir
10:33:04 + EXITCODE=1
10:33:04 + gpuci_logger 'TRAP: Removing kernel cache dir: /workspace/.jitify-cache'
10:33:04 
10:33:04 gpuCI logger » [04/07/2021 14:33:02]
10:33:04 ┌─────────────────────────────────────────────────────────────────┐
10:33:04 |    TRAP: Removing kernel cache dir: /workspace/.jitify-cache    |
10:33:04 └─────────────────────────────────────────────────────────────────┘

Which seems to be independent of these changes.

@robertmaynard
Copy link
Contributor Author

I think the failure is actually: https://gpuci.gpuopenanalytics.com/job/rapidsai/job/gpuci-v0.20/job/cudf/job/prb/job/cudf-gpu-test/CUDA=11.0,GPU_LABEL=gpu-a100,OS=ubuntu16.04,PYTHON=3.7/33/testReport/(root)/ListsColumnTest/ConcatenateEmptyLists/

Looks #7892 addresses that issue. So once that is merged in I will rebase this

@robertmaynard robertmaynard force-pushed the update_build_system_and_docs_to_state_cuda_11_required branch from d6132a8 to faea028 Compare April 7, 2021 21:39
@codecov
Copy link

codecov bot commented Apr 8, 2021

Codecov Report

Merging #7780 (1a2865d) into branch-0.20 (599f62d) will increase coverage by 0.44%.
The diff coverage is 87.68%.

❗ Current head 1a2865d differs from pull request most recent head faea028. Consider uploading reports for the commit faea028 to get more accurate results
Impacted file tree graph

@@               Coverage Diff               @@
##           branch-0.20    #7780      +/-   ##
===============================================
+ Coverage        82.30%   82.74%   +0.44%     
===============================================
  Files              101      103       +2     
  Lines            17053    17721     +668     
===============================================
+ Hits             14035    14663     +628     
- Misses            3018     3058      +40     
Impacted Files Coverage Δ
python/cudf/cudf/utils/dtypes.py 83.44% <46.66%> (-6.45%) ⬇️
python/cudf/cudf/core/groupby/groupby.py 92.41% <78.57%> (-1.04%) ⬇️
python/cudf/cudf/core/column/lists.py 87.41% <80.00%> (+0.19%) ⬆️
python/dask_cudf/dask_cudf/backends.py 89.58% <85.71%> (-0.05%) ⬇️
python/cudf/cudf/core/column/struct.py 96.29% <86.66%> (-3.71%) ⬇️
python/cudf/cudf/core/index.py 93.04% <88.09%> (+0.01%) ⬆️
python/cudf/cudf/core/column/decimal.py 92.92% <91.48%> (-0.92%) ⬇️
python/cudf/cudf/core/column/interval.py 91.11% <92.30%> (+0.48%) ⬆️
python/cudf/cudf/core/column/column.py 87.99% <92.59%> (+0.56%) ⬆️
python/cudf/cudf/core/join/join.py 96.75% <93.75%> (+0.24%) ⬆️
... and 61 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2a995e5...faea028. Read the comment docs.

@jrhemstad
Copy link
Contributor

@gpucibot merge

@rapids-bot rapids-bot bot merged commit acf155d into rapidsai:branch-0.20 Apr 8, 2021
@robertmaynard robertmaynard deleted the update_build_system_and_docs_to_state_cuda_11_required branch April 8, 2021 13:36
rapids-bot bot pushed a commit to rapidsai/cugraph that referenced this pull request Apr 26, 2021
…#1552)

Close #1528 

Following cuDF (rapidsai/cudf#7780)

cugraph-0.20 increase the minimum requirements in the following way:

    GCC version 9.3+ is required
    CUDA and C++ code now is compiled with -std=c++17
    We require CUDA Toolkit version 11.0 or greater

This updates the build-system and the README with these new requirements

Authors:
  - Seunghwa Kang (https://github.com/seunghwak)

Approvers:
  - Chuck Hastings (https://github.com/ChuckHastings)
  - AJ Schmidt (https://github.com/ajschmidt8)
  - Brad Rees (https://github.com/BradReesWork)

URL: #1552
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking Breaking change CMake CMake build issue feature request New feature or request libcudf Affects libcudf (C++/CUDA) code.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants