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

Boost Template Aliases: Fix Workaround #2706

Conversation

ax3l
Copy link
Member

@ax3l ax3l commented Sep 25, 2018

The workaround disabling template aliases causes compile errors on Titan (ORNL), both when compiling with CPU backend or CUDA 9.1.85.

Modern versions of boost need template aliases, otherwise e.g boost/type_traits fails with:

include/boost/type_traits/detail/has_binary_operator.hpp:50:61: error: 'void_t' in namespace 'boost' does not name a template type
       template <class T, class U, class Ret, class = boost::void_t<>>
                                                             ^
include/boost/type_traits/detail/has_binary_operator.hpp:50:67: error: expected '>' before '<' token
       template <class T, class U, class Ret, class = boost::void_t<>>

Seen with Boost 1.67.0.

Applies the following logic changes:

Note: FindCUDA only provides CUDA up to two version digits. So we can only compare <9.1 and not < 9.1.85.

@ax3l ax3l added bug a bug in the project's code component: PMacc in PMacc affects latest release a bug that affects the latest stable release backend: cuda CUDA backend backend: omp2b OpenMP2 backend labels Sep 25, 2018
@ax3l ax3l requested a review from psychocoderHPC September 25, 2018 20:50
@ax3l ax3l force-pushed the fix-boostBrokenWorkaround branch from b7993a3 to 3aff105 Compare September 25, 2018 20:51
The workaround disabling template aliases causes compile errors on
Titan (ORNL), both when compiling with CPU backend or CUDA 9.1.85.

Applies the following logic changes:
- only enable when compiling with NVCC for CUDA backend
- only enable when NVCC < 9.1
- NVCC 8.0 known to be broken
- NVCC 9.0 unknown, maybe fixed this already:
  https://svn.boost.org/trac10/ticket/11897#comment:22
@ax3l ax3l force-pushed the fix-boostBrokenWorkaround branch from 3aff105 to a7f6be8 Compare September 25, 2018 20:55
@ax3l ax3l mentioned this pull request Sep 25, 2018
8 tasks
@psychocoderHPC psychocoderHPC merged commit 39527f9 into ComputationalRadiationPhysics:dev Sep 26, 2018
@ax3l ax3l deleted the fix-boostBrokenWorkaround branch October 2, 2018 15:03
@ax3l
Copy link
Member Author

ax3l commented Feb 23, 2019

I am currently seeing this compile error again with:

  • PIConGPU 0.4.3
  • GCC 5.4.0
  • Boost 1.68.0
  • CUDA 9.0.176

in our Docker build. Opened as #2907

ax3l added a commit to ComputationalRadiationPhysics/spack-repo that referenced this pull request Feb 23, 2019
See if this work-arounds
  ComputationalRadiationPhysics/picongpu#2706 (comment)

for now.

```
I am currently seeing this compile error again with:
- PIConGPU 0.4.3
- GCC 5.4.0
- Boost 1.68.0
- CUDA 9.0.176

in our Docker build.
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects latest release a bug that affects the latest stable release backend: cuda CUDA backend backend: omp2b OpenMP2 backend bug a bug in the project's code component: PMacc in PMacc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants