Hi again Mat,
Thanks for checking!
On my system, I’m seeing errors when building nvcc++ parts too:
# $ mpicxx -fPIC -DENABLE_NVSHMEM -DNVSHMEM_USE_NCCL -DENABLE_NVTX -O3 -std=c++14 -I/home/pedro/Desktop/cuDecomp/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/comm_libs/hpcx/latest/ompi/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/cuda/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/comm_libs/nccl/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/math_libs/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/cuda/include -I/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/comm_libs/nvshmem/include -c -o /home/pedro/Desktop/cuDecomp/build/cudecomp.o src/cudecomp.cc
"/usr/include/stdlib.h", line 141: error: identifier "_Float32" is undefined
extern _Float32 strtof32 (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 147: error: identifier "_Float64" is undefined
extern _Float64 strtof64 (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 153: error: identifier "_Float128" is undefined
extern _Float128 strtof128 (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 159: error: identifier "_Float32x" is undefined
extern _Float32x strtof32x (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 165: error: identifier "_Float64x" is undefined
extern _Float64x strtof64x (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 299: error: identifier "_Float32" is undefined
_Float32 __f)
^
"/usr/include/stdlib.h", line 305: error: identifier "_Float64" is undefined
_Float64 __f)
^
"/usr/include/stdlib.h", line 311: error: identifier "_Float128" is undefined
_Float128 __f)
^
"/usr/include/stdlib.h", line 317: error: identifier "_Float32x" is undefined
_Float32x __f)
^
"/usr/include/stdlib.h", line 323: error: identifier "_Float64x" is undefined
_Float64x __f)
^
"/usr/include/stdlib.h", line 436: error: identifier "_Float32" is undefined
extern _Float32 strtof32_l (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 443: error: identifier "_Float64" is undefined
extern _Float64 strtof64_l (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 450: error: identifier "_Float128" is undefined
extern _Float128 strtof128_l (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 457: error: identifier "_Float32x" is undefined
extern _Float32x strtof32x_l (const char *__restrict __nptr,
^
"/usr/include/stdlib.h", line 464: error: identifier "_Float64x" is undefined
extern _Float64x strtof64x_l (const char *__restrict __nptr,
^
"/usr/include/wchar.h", line 422: error: identifier "_Float32" is undefined
extern _Float32 wcstof32 (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 427: error: identifier "_Float64" is undefined
extern _Float64 wcstof64 (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 432: error: identifier "_Float128" is undefined
extern _Float128 wcstof128 (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 437: error: identifier "_Float32x" is undefined
extern _Float32x wcstof32x (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 442: error: identifier "_Float64x" is undefined
extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 649: error: identifier "_Float32" is undefined
extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 655: error: identifier "_Float64" is undefined
extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 661: error: identifier "_Float128" is undefined
extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 667: error: identifier "_Float32x" is undefined
extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr,
^
"/usr/include/wchar.h", line 673: error: identifier "_Float64x" is undefined
extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr,
^
"/home/pedro/Software/nvidia/hpc_sdk/Linux_x86_64/2023/comm_libs/nvshmem/include/nvshmem_build_options.h", line 24: warning: incompatible redefinition of macro "NVSHMEM_USE_NCCL" [bad_macro_redef]
#define NVSHMEM_USE_NCCL
^
Remark: individual warnings can be suppressed with "--diag_suppress <warning-name>"
"/usr/include/bits/mathcalls.h", line 53: error: identifier "_Float32" is undefined
__MATHCALL_VEC (acos,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 55: error: identifier "_Float32" is undefined
__MATHCALL_VEC (asin,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 57: error: identifier "_Float32" is undefined
__MATHCALL_VEC (atan,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 59: error: identifier "_Float32" is undefined
__MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 62: error: identifier "_Float32" is undefined
__MATHCALL_VEC (cos,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 64: error: identifier "_Float32" is undefined
__MATHCALL_VEC (sin,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 66: error: identifier "_Float32" is undefined
__MATHCALL_VEC (tan,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 71: error: identifier "_Float32" is undefined
__MATHCALL_VEC (cosh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 73: error: identifier "_Float32" is undefined
__MATHCALL_VEC (sinh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 75: error: identifier "_Float32" is undefined
__MATHCALL_VEC (tanh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 79: error: identifier "_Float32" is undefined
__MATHDECL_VEC (void,sincos,,
^
"/usr/include/bits/mathcalls.h", line 85: error: identifier "_Float32" is undefined
__MATHCALL_VEC (acosh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 87: error: identifier "_Float32" is undefined
__MATHCALL_VEC (asinh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 89: error: identifier "_Float32" is undefined
__MATHCALL_VEC (atanh,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 95: error: identifier "_Float32" is undefined
__MATHCALL_VEC (exp,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 98: error: identifier "_Float32" is undefined
__MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent));
^
"/usr/include/bits/mathcalls.h", line 101: error: identifier "_Float32" is undefined
__MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent));
^
"/usr/include/bits/mathcalls.h", line 104: error: identifier "_Float32" is undefined
__MATHCALL_VEC (log,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 107: error: identifier "_Float32" is undefined
__MATHCALL_VEC (log10,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 110: error: identifier "_Float32" is undefined
__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
^
"/usr/include/bits/mathcalls.h", line 114: error: identifier "_Float32" is undefined
__MATHCALL_VEC (exp10,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 119: error: identifier "_Float32" is undefined
__MATHCALL_VEC (expm1,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 122: error: identifier "_Float32" is undefined
__MATHCALL_VEC (log1p,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 125: error: identifier "_Float32" is undefined
__MATHCALL (logb,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 130: error: identifier "_Float32" is undefined
__MATHCALL_VEC (exp2,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 133: error: identifier "_Float32" is undefined
__MATHCALL_VEC (log2,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 140: error: identifier "_Float32" is undefined
__MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
^
"/usr/include/bits/mathcalls.h", line 143: error: identifier "_Float32" is undefined
__MATHCALL (sqrt,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 147: error: identifier "_Float32" is undefined
__MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
^
"/usr/include/bits/mathcalls.h", line 152: error: identifier "_Float32" is undefined
__MATHCALL_VEC (cbrt,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 159: error: identifier "_Float32" is undefined
__MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
^
"/usr/include/bits/mathcalls.h", line 162: error: identifier "_Float32" is undefined
__MATHCALLX (fabs,, (_Mdouble_ __x), (__const__));
^
"/usr/include/bits/mathcalls.h", line 165: error: identifier "_Float32" is undefined
__MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
^
"/usr/include/bits/mathcalls.h", line 168: error: identifier "_Float32" is undefined
__MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y));
^
"/usr/include/bits/mathcalls.h", line 198: error: identifier "_Float32" is undefined
__MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
^
"/usr/include/bits/mathcalls.h", line 203: error: identifier "_Float32" is undefined
__MATHCALL (nan,, (const char *__tagb));
^
"/usr/include/bits/mathcalls.h", line 220: error: identifier "_Float32" is undefined
__MATHCALL (j0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 220: error: expected a ";"
__MATHCALL (j0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 220: error: "_Float32" is not a type name
__MATHCALL (j0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 220: error: expected a ";"
__MATHCALL (j0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 221: error: "_Float32" is not a type name
__MATHCALL (j1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 221: error: expected a ";"
__MATHCALL (j1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 221: error: expected a ";"
__MATHCALL (j1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 222: error: "_Float32" is not a type name
__MATHCALL (jn,, (int, _Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 223: error: "_Float32" is not a type name
__MATHCALL (y0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 223: error: expected a ";"
__MATHCALL (y0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 223: error: expected a ";"
__MATHCALL (y0,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 224: error: "_Float32" is not a type name
__MATHCALL (y1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 224: error: expected a ";"
__MATHCALL (y1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 224: error: expected a ";"
__MATHCALL (y1,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 225: error: "_Float32" is not a type name
__MATHCALL (yn,, (int, _Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 231: error: "_Float32" is not a type name
__MATHCALL_VEC (erf,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 231: error: expected a ";"
__MATHCALL_VEC (erf,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 231: error: expected a ";"
__MATHCALL_VEC (erf,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 232: error: "_Float32" is not a type name
__MATHCALL_VEC (erfc,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 232: error: expected a ";"
__MATHCALL_VEC (erfc,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 232: error: expected a ";"
__MATHCALL_VEC (erfc,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 233: error: "_Float32" is not a type name
__MATHCALL (lgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 233: error: expected a ";"
__MATHCALL (lgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 233: error: expected a ";"
__MATHCALL (lgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 238: error: "_Float32" is not a type name
__MATHCALL (tgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 238: error: expected a ";"
__MATHCALL (tgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 238: error: expected a ";"
__MATHCALL (tgamma,, (_Mdouble_));
^
"/usr/include/bits/mathcalls.h", line 252: error: "_Float32" is not a type name
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 252: error: type name is not allowed
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 252: error: identifier "__signgamp" is undefined
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 252: error: expected a ";"
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 252: error: type name is not allowed
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 252: error: expected a ";"
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
^
"/usr/include/bits/mathcalls.h", line 259: error: "_Float32" is not a type name
__MATHCALL (rint,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 259: error: expected a ")"
__MATHCALL (rint,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 259: error: expected a ";"
__MATHCALL (rint,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 259: error: expected a ")"
__MATHCALL (rint,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 259: error: expected a ";"
__MATHCALL (rint,, (_Mdouble_ __x));
^
"/usr/include/bits/mathcalls.h", line 262: error: "_Float32" is not a type name
__MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y));
^
Error limit reached. Use -fmax-errors=N to change the limit, N=0 for unlimited.
100 errors detected in the compilation of "src/cudecomp.cc".
Compilation terminated.
I’m guessing there is no easy fix on my end for this other than downgrading my system.
Pedro