I am not able to get a minimal cufft example working on my v100 running CentOS and cuda-11.1
It works on cuda-10.2.
It works on cuda-11.0 on Ubuntu with A100’s
Please help me figure out what I missed.
±----------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00 Driver Version: 455.32.00 CUDA Version: 11.1 |
|-------------------------------±---------------------±---------------------+|===============================+======================+======================|
| 0 Tesla V100-SXM2… Off | 00000000:62:00.0 Off | Off |
| N/A 35C P0 55W / 300W | 3787MiB / 32510MiB | 7% Default |
±------------------------------±---------------------±---------------------+
| 1 Tesla V100-SXM2… Off | 00000000:89:00.0 Off | Off |
| N/A 34C P0 40W / 300W | 125MiB / 32510MiB | 0% Default |
±------------------------------±---------------------±---------------------+Linux dev-4 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
CentOS Linux release 7.8.2003 (Core)
testatomicfft.c (1.2 KB)
rename and compile the minimal example.
(it wouldn’t let me upload a .cu)
Observe the correct results:
$ nvcc testatomicfft.cu -lcufft
$ ./a.out
( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1040384.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1040384.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1040384.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1040384.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1040384.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0) ( 0.0, -0.0)
With an FFT size of 1040384 it works.
Observe the bad results:
$ nvcc -DFAIL testatomicfft.cu -lcufft
$ ./a.out
( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
(1001472.0, -0.3) (-0.0, 0.0) (-0.0, 0.0) ( 0.0, -0.0) ( 0.0, 0.0) (-0.0, -0.0) (-0.0, 0.0) (-0.0, 0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0)( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0) ( 1.0, 0.0)
( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0) ( 0.0, 0.0)
With an FFT size of 1001472 it fails.
The source code only creates an fft plan and runs it against the same data.
Any help is appreciated.