Device side FFT

Hi,

Does anyone know of a FFT library that can be called from the device? I have a cuda kernel that runs a monte carlo simulation and within each simulation I need to compute an FFT. I don’t believe this can be achieved with cuFFT as it is host side only.

Appreciate any ideas.

Thanks

You want cuFFTDx. You’ll need to sign up for early access.

http://developer.nvidia.com/cudamathlibraryea

Thanks, I signed up 5 days ago but have not heard back yet - how long does approval normally take?

Can you message me directly, the information you used to sign up?

Thanks, I have access now. The library says it is for linux, I tried compiling on Windows (cuda 9.1), and I get a bunch of obscure errors. Any idea if this will work with Windows or do I need a linux setup?

1> C:\cuda\cufftdx\example\FFTExample\FFTExample>“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe” -gencode=arch=compute_70,code=“sm_70,compute_70” --use-local-env --cl-version 2015 -ccbin “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64” -x cu -I"C:\Program Files (x86)\Visual Leak Detector\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --std=c++11 -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MDd " -o x64\Debug\simple_fft_block.cu.obj “C:\cuda\cufftdx\example\simple_fft_block.cu”
1>c:\cuda\cufftdx\include\operators/block_operators.hpp(28): error : a member of type “const dim3” cannot have an in-class initializer
1>c:\cuda\cufftdx\include\operators/block_operators.hpp(28): error : a constexpr variable must have a literal type or a reference type
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(127): error : no operator “+=” matches these operands
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(131): error : no operator “-=” matches these operands
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(135): error : no operator “=" matches these operands
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(136): error : no operator "
=” matches these operands
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(140): error : no operator “/=” matches these operands
1>c:\cuda\cufftdx\include\traits\detail…/…/types.hpp(141): error : no operator “/=” matches these operands
1>c:\cuda\cufftdx\include\database\fft_128_fp16_fwd.hpp.inc(2139): error : identifier “__HALF2_TO_UI” is undefined
1>c:\cuda\cufftdx\include\database\fft_128_fp16_fwd.hpp.inc(2139): error : expression must be a modifiable lvalue
1>c:\cuda\cufftdx\include\database\fft_128_fp16_fwd.hpp.inc(2139): error : an asm operand must have scalar type

According to the documentation, cuFFTDx has the following requirements and has only been tested on Ubuntu. I think the first step is to updated to 10.2.

The cuFFTDx library is a CUDA C++ header only library. Therefore, the list of required software to use the library is relatively small. Users will need:

CUDA (version 10.1 Update 2 or greater).

A CUDA-supported C++11 compiler.

(Optionally) CMake (version 3.14 or greater).

Early Access version of cuFFTDx has been tested using Ubuntu 16.04, gcc 5.5, and nvcc CUDA Toolkit 10.1 Update 2.

Thanks, just upgraded but sadly getting similar errors. Below is the full output of the compiler:

[code]
1>------ Build started: Project: FFTTest, Configuration: Debug x64 ------
1> Compiling CUDA source file …\simple_fft_block.cu…
1>
1> C:\cuda\cufftdx\example\FFTTest\FFTTest>“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe” -gencode=arch=compute_70,code=“sm_70,compute_70” --use-local-env -ccbin “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64” -x cu -I"C:\Program Files (x86)\Visual Leak Detector\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --std=c++11 -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Fdx64\Debug\vc140.pdb /FS /Zi /RTC1 /MDd " -o x64\Debug\simple_fft_block.cu.obj “C:\cuda\cufftdx\example\simple_fft_block.cu”
1>c:\cuda\cufftdx\include\operators/block_operators.hpp(28): error : a member of type “const dim3” cannot have an in-class initializer
1>
1>c:\cuda\cufftdx\include\operators/block_operators.hpp(28): error : a constexpr variable must have a literal type or a reference type
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(137): error : a member of type “const dim3” cannot have an in-class initializer
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(137): error : a constexpr variable must have a literal type or a reference type
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(26): error : a constexpr function cannot have a nonliteral return type “__half2”
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(396): error : a member of type “const dim3” cannot have an in-class initializer
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(396): error : a constexpr variable must have a literal type or a reference type
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\traits\detail…/fft_traits.hpp(68): error : static assertion failed with “Description has neither direction defined, nor it can be deduced from its type”
1> detected during:
1> instantiation of class “cufftdx::direction_of [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(42): here
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\traits\detail…/fft_traits.hpp(73): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::direction_of [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(42): here
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(51): error : static assertion failed with “This FFT configuration is not supported”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(54): error : class “cufftdx::database::detail::block_fft_record<128U, cufftdx::precision_of_t<cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>>, cufftdx::fft_type::c2c, , 700U>” has no member “blobs”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(54): error : incomplete type is not allowed
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(56): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(57): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(389): error : incomplete type is not allowed
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(392): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(371): error : incomplete type is not allowed
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(374): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of “const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\traits\detail…/fft_traits.hpp(68): error : static assertion failed with “Description has neither direction defined, nor it can be deduced from its type”
1> detected during:
1> instantiation of class “cufftdx::direction_of [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(42): here
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\traits\detail…/fft_traits.hpp(73): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::direction_of [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(42): here
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(51): error : static assertion failed with “This FFT configuration is not supported”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(54): error : class “cufftdx::database::detail::block_fft_record<128U, cufftdx::precision_of_t<cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>>>, cufftdx::fft_type::c2c, , 700U>” has no member “blobs”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(54): error : incomplete type is not allowed
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(56): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(57): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(389): error : incomplete type is not allowed
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(392): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(371): error : incomplete type is not allowed
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(374): error : name followed by “::” must be a class or namespace name
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of “const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of “const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(49): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of “const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of “const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail…/traits/detail/check_and_get_trait.hpp(37): error : static assertion failed with “FFT description must be complete to calculate queried information”
1> detected during:
1> instantiation of class “cufftdx::detail::__get_block_config::helper<Description, IsThreadExecution> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>, IsThreadExecution=false]”
1> (149): here
1> instantiation of class “cufftdx::detail::check_and_get_trait<cufftdx::fft_operator::elements_per_thread, Description> [with Description=cufftdx::detail::fft_execution<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(114): here
1> instantiation of class “cufftdx::detail::fft_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(279): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(378): error : static assertion failed with “Can’t calculate storage_size, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_storage_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> (404): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(360): error : static assertion failed with “Can’t calculate shared memory, FFT description is not complete”
1> detected during:
1> instantiation of “unsigned int cufftdx::detail::fft_block_execution<Operators…>::get_shared_memory_size() [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> (405): here
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): error : expression must have a constant value
1> c:\cuda\cufftdx\include\detail/fft_execution.hpp(407): note: attempt to access run-time storage
1> detected during:
1> instantiation of class “cufftdx::detail::fft_block_execution<Operators…> [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Directioncufftdx::fft_direction::forward, cufftdx::Precision, cufftdx::ElementsPerThread<8U>, cufftdx::FFTsPerBlock<2U>>]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(50): here
1> instantiation of “void simple_block_fft() [with Arch=700U]”
1> C:/cuda/cufftdx/example/simple_fft_block.cu(97): here
1>
1>c:\cuda\cufftdx\include\detail/fft_execution.hpp(412): error : a constexpr variable must have a literal type or a reference type
1> detected during:
1> implicit definition of "const dim3 cufftdx::detail::fft_block_execution<Operators…>::block_dim [with Operators=<cufftdx::Block, cufftdx::Size<128U>, cufftdx::Typecufftdx::fft_type::c2c, cufftdx::Direction<cufftdx::fft_direction::forwa

Hi John,I meet the problem seem to you. Have you solved the problem?

No, I was going to try and set up a linux partition to try in under linux, but I have not had time to do this yet. I am hoping someone on the forum has an answer or an update to the FFT package will be made that solves this.