Skip to content

nvFuser doesn't support complex reductions #2369

@mruberry

Description

@mruberry
E   CUDA NVRTC compile error: __tmp_kernel5.cu(3993): error: no operator "=" matches these operands
E               operand types are: volatile CudaCodeGen::std::complex<double> = CudaCodeGen::std::complex<double>
E             detected during instantiation of "void CudaCodeGen::reduction::gridReduce<X_BLOCK,Y_BLOCK,Z_BLOCK,X_THREAD,Y_THREAD,Z_THREAD,PERSISTENT_REDUCTION,T,Func>(T &, const T &, Func, volatile T *, CudaCodeGen::int64_t *, T *, __nv_bool, __nv_bool, T, CudaCodeGen::nvfuser_index_t, CudaCodeGen::nvfuser_index_t) [with X_BLOCK=true, Y_BLOCK=false, Z_BLOCK=false, X_THREAD=true, Y_THREAD=false, Z_THREAD=false, PERSISTENT_REDUCTION=false, T=CudaCodeGen::std::complex<double>, Func=lambda [](CudaCodeGen::std::complex<double> &, CudaCodeGen::std::complex<double>)->void]" 
E   (7913): here
E   
E   __tmp_kernel5.cu(3848): error: class "CudaCodeGen::std::complex<double>" has no suitable copy constructor
E             detected during:
E               instantiation of "void CudaCodeGen::reduction::gridReduceLastBlock<X_THREAD,Y_THREAD,Z_THREAD,T,Func>(T &, const volatile T *, CudaCodeGen::nvfuser_index_t, CudaCodeGen::nvfuser_index_t, Func, T *, __nv_bool, T) [with X_THREAD=false, Y_THREAD=true, Z_THREAD=true, T=CudaCodeGen::std::complex<double>, Func=lambda [](CudaCodeGen::std::complex<double> &, CudaCodeGen::std::complex<double>)->void]" 
E   (4019): here
E               instantiation of "void CudaCodeGen::reduction::gridReduce<X_BLOCK,Y_BLOCK,Z_BLOCK,X_THREAD,Y_THREAD,Z_THREAD,PERSISTENT_REDUCTION,T,Func>(T &, const T &, Func, volatile T *, CudaCodeGen::int64_t *, T *, __nv_bool, __nv_bool, T, CudaCodeGen::nvfuser_index_t, CudaCodeGen::nvfuser_index_t) [with X_BLOCK=true, Y_BLOCK=false, Z_BLOCK=false, X_THREAD=true, Y_THREAD=false, Z_THREAD=false, PERSISTENT_REDUCTION=false, T=CudaCodeGen::std::complex<double>, Func=lambda [](CudaCodeGen::std::complex<double> &, CudaCodeGen::std::complex<double>)->void]" 
E   (7913): here
E   
E   2 errors detected in the compilation of "__tmp_kernel5.cu".

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions