Bug#882667: hypre: CUDA support: hacks impeded by -W flags

Drew Parsons dparsons at debian.org
Sat Nov 25 18:10:21 UTC 2017


On Sat, 25 Nov 2017 20:24:50 +0800 Drew Parsons <dparsons at debian.org>
wrote:
> 
> Again, the problem is that -W is not recognised by nvcc.  Would have
> to hack the soname patch to encapsulate it inside --compiler-options

Can get further using nvcc --linker-options to carry -Wl options.

But "CC=mpiCC CUDACXX=mpiCC dh_auto_configure" seems better than
"CC=nvcc", together with export OMPI_CXX=g++-5 to set mpiCC.

With other sundry hacks, gets to src/struct_mv and stalls at
assumed_part.c, apparently because of inconsistencies in C/C++
standards between nvcc and CC.Depending on whether g++-5 or clang++-3.8 
is used, whether -std=c++11 or c++14 or c++98 is passed to gcc, get
either

 - conflict in multiple definitions of isnan, conflicting between 
CUDA's /usr/include/math_functions.h and /usr/include/x86_64-linux-
gnu/bits/mathcalls.h

 - or similar multiple definitions in abs(float)

 - or  /usr/include/cuda_fp16.h:985:68: error: C does not support default arguments
__CUDA_FP16_DECL__ __half2 __shfl(__half2 var, int delta, int width=warpSize);

- or inconsistent C/C++ definitions
    ./_hypre_struct_mv.h:1464:8: error: expected identifier or '('
    extern "C++" {
           ^
    ./_hypre_struct_mv.h:1488:22: error: unexpected OpenMP directive '#pragma omp parallel for'
    #pragma omp parallel for schedule(static)



More information about the debian-science-maintainers mailing list