(N.B.: A number of incidental errors re: parsing parentheses that would not be raised if the missing constructors and operators were available have been removed from the following error log for brevity.)
[ 17%] Building CXX object library/src/device/CMakeFiles/rocfft-device.dir/real2complex.cpp.o
cd /gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT/library/src/device && /sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/hip/bin/hipcc -Drocfft_device_EXPORTS -I/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/roc
FFT/library/src/device -I/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/../include -I/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/kernels -I/gpfs/alpine/stf007/proj-sh
ared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/generator -I/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT/library/src/device -I/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/include -I/gpfs
/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT/include --verbose -std=c++11 "-Xcompiler=''" "-gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_30,code=sm_30" -o CMakeFiles/rocfft-
device.dir/real2complex.cpp.o -c /gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/sw/summit/cuda/10.1.168/bin
#$ _THERE_=/sw/summit/cuda/10.1.168/bin
#$ _TARGET_SIZE_=
#$ _TARGET_DIR_=
#$ _TARGET_DIR_=targets/ppc64le-linux
#$ TOP=/sw/summit/cuda/10.1.168/bin/..
#$ NVVMIR_LIBRARY_DIR=/sw/summit/cuda/10.1.168/bin/../nvvm/libdevice
#$ LD_LIBRARY_PATH=/sw/summit/cuda/10.1.168/bin/../lib:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/lib64:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/lib:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/llvm/lib64:/sw/summit/cuda/
10.1.168/lib64:/opt/ibm/spectrumcomputing/lsf/10.1/linux3.10-glibc2.17-ppc64le-csm/lib:/opt/ibm/spectrum_mpi/jsm_pmix/lib
#$ PATH=/sw/summit/cuda/10.1.168/bin/../nvvm/bin:/sw/summit/cuda/10.1.168/bin:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/hip/bin:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/bin:/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/ll
vm/bin:/sw/sources/lsf-tools/2.0/summit/bin:/autofs/nccs-svm1_sw/summit/.swci/0-core/opt/spack/20180914/linux-rhel7-ppc64le/gcc-4.8.5/git-2.20.1-6zhngdgjqjq4qhp5lxfz6czu3qc2b5lh/bin:/autofs/nccs-svm1_sw/summit/.swci/0-core/opt/spack/201809
14/linux-rhel7-ppc64le/gcc-4.8.5/cmake-3.15.2-xit2o3iepxvqbyku77lwcugufilztu7t/bin:/sw/summit/cuda/10.1.168/bin:/opt/ibm/csm/bin:/opt/ibm/spectrumcomputing/lsf/10.1/linux3.10-glibc2.17-ppc64le-csm/etc:/opt/ibm/spectrumcomputing/lsf/10.1/li
nux3.10-glibc2.17-ppc64le-csm/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/ibm/flightlog/bin:/opt/ibutils/bin:/opt/ibm/spectrum_mpi/jsm_pmix/bin:/opt/puppetlabs/bin:/usr/lpp/mmfs/bin:/ccs/home/belhorn/bin:/ccs/home/belhorn/.l
ocal/bin
#$ INCLUDES="-I/sw/summit/cuda/10.1.168/bin/../targets/ppc64le-linux/include"
#$ LIBRARIES= "-L/sw/summit/cuda/10.1.168/bin/../targets/ppc64le-linux/lib/stubs" "-L/sw/summit/cuda/10.1.168/bin/../targets/ppc64le-linux/lib"
#$ CUDAFE_FLAGS=
#$ PTXAS_FLAGS=
#$ gcc -std=c++11 -D__CUDA_ARCH__=300 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device" -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.
10.0/src/rocFFT/library/src/device/../include" -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/kernels" -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/generator" -I
"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT/library/src/device" -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/include" -I"/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT/in
clude" "-I/sw/summit/cuda/10.1.168/bin/../targets/ppc64le-linux/include" -isystem "/sw/summit/cuda/10.1.168/include" -isystem "/sw/.testing/belhorn/summit/rocm/2.10.0/opt/rocm/hip/include" -D "HIP_VERSION_MAJOR=2" -D "HIP_VERSION_MINOR=
10" -D "HIP_VERSION_PATCH=19455" -D "rocfft_device_EXPORTS" -D__CUDACC_VER_MAJOR__=10 -D__CUDACC_VER_MINOR__=1 -D__CUDACC_VER_BUILD__=168 -include "cuda_runtime.h" "/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src
/device/real2complex.cpp" > "/tmp/tmpxft_0000894c_00000000-8_real2complex.compute_30.cpp1.ii"
#$ cicc --c++11 --gnu_version=50500 --allow_managed --unsigned_chars -arch compute_30 -m64 -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "tmpxft_0000894c_00000000-2_real2complex.fatbin.c" -tused -nvvmir-library "/sw/summit/
cuda/10.1.168/bin/../nvvm/libdevice/libdevice.10.bc" --gen_module_id_file --module_id_file_name "/tmp/tmpxft_0000894c_00000000-3_real2complex.module_id" --orig_src_file_name "/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/l
ibrary/src/device/real2complex.cpp" --gen_c_file_name "/tmp/tmpxft_0000894c_00000000-5_real2complex.compute_30.cudafe1.c" --stub_file_name "/tmp/tmpxft_0000894c_00000000-5_real2complex.compute_30.cudafe1.stub.c" --gen_device_file_name "/tm
p/tmpxft_0000894c_00000000-5_real2complex.compute_30.cudafe1.gpu" "/tmp/tmpxft_0000894c_00000000-8_real2complex.compute_30.cpp1.ii" -o "/tmp/tmpxft_0000894c_00000000-5_real2complex.compute_30.ptx"
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(389): error: no suitable constructor exists to convert from "float" to "float2"
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=float2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(390): error: no suitable constructor exists to convert from "float" to "float2"
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=float2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(395): error: no operator "*" matches these operands
operand types are: float2 * double
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=float2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(396): error: no operator "*" matches these operands
operand types are: float2 * double
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=float2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(439): error: no suitable constructor exists to convert from "float" to "float2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=float2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(440): error: no suitable constructor exists to convert from "float" to "float2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=float2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(442): error: no suitable constructor exists to convert from "float" to "float2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=float2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=float2, R2C=true]"
(560): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(389): error: no suitable constructor exists to convert from "double" to "double2"
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=double2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(390): error: no suitable constructor exists to convert from "double" to "double2"
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=double2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(395): error: no operator "*" matches these operands
operand types are: double2 * double
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=double2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(396): error: no operator "*" matches these operands
operand types are: double2 * double
detected during:
instantiation of "void real_post_process_kernel<T,IN_PLACE>(size_t, size_t, size_t, T *, size_t, T *, size_t, const T *) [with T=double2, IN_PLACE=true]"
(483): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(439): error: no suitable constructor exists to convert from "double" to "double2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=double2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(440): error: no suitable constructor exists to convert from "double" to "double2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=double2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/src/rocFFT/library/src/device/real2complex.cpp(442): error: no suitable constructor exists to convert from "double" to "double2"
detected during:
instantiation of "void real_pre_process_kernel(size_t, size_t, size_t, const Tcomplex *, size_t, Tcomplex *, size_t, const Tcomplex *) [with Tcomplex=double2]"
(503): here
instantiation of "void real_1d_pre_post_process<Tcomplex,R2C>(size_t, size_t, Tcomplex *, Tcomplex *, Tcomplex *, size_t, size_t, size_t, size_t, size_t, hipStream_t) [with Tcomplex=double2, R2C=true]"
(574): here
instantiation of "void real_1d_pre_post<R2C>(const void *, void *) [with R2C=true]"
(580): here
36 errors detected in the compilation of "/tmp/tmpxft_0000894c_00000000-8_real2complex.compute_30.cpp1.ii".
# --error 0x1 --
make[2]: *** [library/src/device/CMakeFiles/rocfft-device.dir/real2complex.cpp.o] Error 1
make[2]: Leaving directory `/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT'
make[1]: *** [library/src/device/CMakeFiles/rocfft-device.dir/all] Error 2
make[1]: Leaving directory `/gpfs/alpine/stf007/proj-shared/belhorn/rocm/2.10.0/build/rocFFT'
make: *** [all] Error 2
The CMakeLists on NVCC platforms also have a few issues.
And lastly, it seems that C++11 standard option is needed but not given by the CMakeLists when using toolchains where it is not the default and CMake 3.15.2 is unable to proceed using hipcc
without expressly declaring the compiler ID: