-
Notifications
You must be signed in to change notification settings - Fork 92
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 C++17 support #1603
Require C++17 support #1603
Conversation
This also means bumping GCC to version 7, Clang to version 5 and CUDA to version 11 |
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.
another question: Maybe I miss the discussion, do we drop the cuda 10.1/10.2 support?
@@ -291,40 +159,6 @@ test/cuda110/nompi/clang/cuda/release/static: | |||
needs: [ "build/cuda110/nompi/clang/cuda/release/static" ] | |||
|
|||
|
|||
build/cuda110/nompi/intel/cuda/debug/static: |
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.
why is it removed?
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.
nvcc
with icpc
as the host compiler can't compile a simple C++17 header like <variant>
, so I would say that qualifies as not properly supporting C++17, see https://gitlab.com/ginkgo-project/ginkgo-public-ci/-/jobs/7265870465
target_compile_features("${TEST_TARGET_NAME}" PUBLIC cxx_std_14) | ||
target_compile_features("${TEST_TARGET_NAME}" PUBLIC cxx_std_17) |
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.
only this changes from 14 to 17, but others are just removed.
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.
the others are all implied by the PUBLIC property on the ginkgo
target
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.
Please also change the include/ginkgo/core/base/std_extensions.hpp
(for example, remove the make_void
and change the implementation of uncaught_exception()
).
I would also like to know why the tests/pipelines were dropped.
@thoasm changes in std_extensions would technically break interface, so I wanted to avoid them |
@upsj I'm not suggesting to drop the functions/structures completely, but you can implement |
4fc0bce
to
b59f135
Compare
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.
LGTM!
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.
Because it removes the check for cuda_arch 35, need to add this back to other jobs.
I think setting the standard through the property is more clear.
For example, hip_std_17 is not searchable in cmake 3.21.7 (the minimal requirement for hip module).
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.
only needs some tests for cuda arch 35
ginkgo has the PUBLIC property cxx_std_17, so we don't need to set it in tests. pkg-config doesn't propagate C++ standards
nvcc with clang++ host compiler seems incompatible with libstdc++-10
@yhmtsai I needed to add a new pipeline, since all remaining ones both build and test, so they are restricted to our available GPUs. compute capabilities 3.5 - 5.0 have been deprecated in CUDA 11, so I'm using 5.2 for the build. We don't have any GPUs below compute capability 6.0 anyways. |
|
This requires the compilers to support C++17 and removes no longer necessary workarounds. Related PR: ginkgo-project#1603
This requires C++17 support and removes the workarounds we had in place before