Skip to content

Build error in std::tuple for cuda 11.1 with gcc102/gcc103 using c++17 #292

@valassi

Description

@valassi

This is similar to #290.

During a cleanup of Makefiles in #281 I have moved cuda from c++14 to c++17 as was already the case for c++. But then I also have to use cuda11.1 because of performance regression #282. Now that I am using more combinations, I am getting more errors:

ccache /usr/local/cuda-11.1/bin/nvcc  -O3  -lineinfo -std=c++17 -I. -I../../src -I../../../../../tools -I../../../../../tools -I/usr/local/cuda-11.1/include/ -DUSE_NVTX -arch=compute_70 -use_fast_math -ccbin /cvmfs/sft.cern.ch/lcg/releases/gcc/10.3.0-f5826/x86_64-centos7/bin/g++ -DMGONGPU_FPTYPE_DOUBLE -DMGONGPU_CURAND_ONDEVICE -c gcheck_sa.cu -o gcheck_sa.o
/cvmfs/sft.cern.ch/lcg/releases/gcc/10.3.0-f5826/x86_64-centos7/include/c++/10.3.0/tuple(570): error: pack "_UElements" does not have the same number of elements as "_Elements"
          detected during:
            instantiation of "__nv_bool std::tuple<_Elements...>::__nothrow_constructible<_UElements...>() [with _Elements=<const std::string &>, _UElements=<>]" 
/cvmfs/sft.cern.ch/lcg/releases/gcc/10.3.0-f5826/x86_64-centos7/include/c++/10.3.0/bits/stl_map.h(502): here
            instantiation of "std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type &std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const std::map<_Key, _Tp, _Compare, _Alloc>::key_type &) [with _Key=std::string, _Tp=float, _Compare=std::less<std::string>, _Alloc=std::allocator<std::pair<const std::string, float>>]" 
timermap.h(40): here

1 error detected in the compilation of "gcheck_sa.cu".

This looks similar to https://githubmemory.com/repo/alpaka-group/cupla/issues/190

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions