pyVkFFT test results

pyvkfft: 2025.2b0, VkFFFT:1.3.5[v1.3.4-24-ge8e6a39] CUDA: driver 12.4.0, runtime 12.2.0, compiled 12.2.0 host : scisoft13

Methodology: the included graphs measure the accuracy of the forward and backward transforms: an array is generated with random uniform values between -0.5 and 0.5, and the results of its transform are compared with either pyfftw (in long double precision) if available, or scipy if available, or numpy fft. The L2 curve measures the average square norm difference, and the L the maximum difference.

Note: for the R2C inverse transform, the result of the forward transform is used instead of re-using the random array (in order to have a proper half-Hermitian array), contrary to what is done for other transforms. This explains why the IFFT R2C maximum (L) errors are larger.

Note 2: some "errors" for DCT may be due to unsupported sizes in VkFFT, which vary depending on the card and language used (amount of shared/local memory). So they just indicate a current limit for the transform sizes rather than a real error.

[Click on the highlighted cells for details and accuracy graphs vs the transform size]

GPU backend transform ndim range radix dtype inplace LUT norm time-duration FAIL ERROR
gfx900pyopencl Regular multi-dimensional C2C/R2C/R2R test2025-07-25 09h45:40 +02h 24m 10s 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h09:52 +00h 02m 44s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h12:40 +00h 02m 12s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h14:55 +00h 10m 54s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h25:53 +00h 03m 18s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h29:16 +00h 01m 52s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto12025-07-25 12h31:11 +00h 02m 56s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto12025-07-25 12h34:10 +00h 06m 16s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto12025-07-25 12h40:29 +00h 02m 45s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto12025-07-25 12h43:18 +00h 24m 31s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto12025-07-25 13h07:53 +00h 07m 39s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto12025-07-25 13h15:34 +00h 06m 46s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto12025-07-25 13h22:23 +00h 07m 53s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto12025-07-25 13h30:20 +00h 02m 43s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto12025-07-25 13h33:06 +00h 02m 12s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto12025-07-25 13h35:21 +00h 05m 55s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto12025-07-25 13h41:19 +00h 03m 19s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto12025-07-25 13h44:42 +00h 01m 51s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto12025-07-25 13h46:36 +00h 02m 17s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto12025-07-25 13h48:56 +00h 04m 42s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto12025-07-25 13h53:41 +00h 02m 42s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto12025-07-25 13h56:27 +00h 10m 55s [ 168 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto12025-07-25 14h07:26 +00h 09m 38s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto12025-07-25 14h17:07 +00h 03m 07s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto12025-07-25 14h20:17 +00h 03m 53s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h24:14 +00h 05m 57s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h30:15 +00h 04m 57s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h35:15 +00h 11m 08s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h46:27 +00h 04m 18s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h50:48 +00h 03m 58s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue12025-07-25 14h54:50 +00h 02m 51s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue12025-07-25 14h57:44 +00h 07m 14s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue12025-07-25 15h05:02 +00h 04m 24s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue12025-07-25 15h09:29 +00h 06m 10s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue12025-07-25 15h15:42 +00h 08m 36s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue12025-07-25 15h24:21 +00h 04m 06s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue12025-07-25 15h28:31 +00h 07m 18s [ 175 tests] 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h35:51 +00h 02m 42s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h38:36 +00h 02m 11s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h40:51 +00h 11m 43s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h52:38 +00h 03m 15s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h55:56 +00h 01m 51s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto02025-07-25 15h57:50 +00h 02m 54s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h00:48 +00h 04m 36s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h05:27 +00h 02m 47s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h08:17 +00h 24m 28s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h32:49 +00h 08m 06s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h40:57 +00h 02m 15s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto02025-07-25 16h43:16 +00h 07m 57s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto02025-07-25 16h51:16 +00h 02m 43s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto02025-07-25 16h54:03 +00h 02m 11s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto02025-07-25 16h56:17 +00h 06m 24s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto02025-07-25 17h02:45 +00h 03m 18s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto02025-07-25 17h06:07 +00h 01m 50s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto02025-07-25 17h08:01 +00h 02m 15s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto02025-07-25 17h10:20 +00h 06m 00s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto02025-07-25 17h16:23 +00h 05m 46s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto02025-07-25 17h22:12 +00h 10m 04s [ 168 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto02025-07-25 17h32:20 +00h 08m 04s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto02025-07-25 17h40:27 +00h 04m 11s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto02025-07-25 17h44:41 +00h 03m 57s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue02025-07-25 17h48:42 +00h 07m 19s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue02025-07-25 17h56:04 +00h 05m 03s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue02025-07-25 18h01:10 +00h 10m 57s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue02025-07-25 18h12:10 +00h 04m 37s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue02025-07-25 18h16:50 +00h 04m 28s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue02025-07-25 18h21:21 +00h 02m 54s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue02025-07-25 18h24:19 +00h 04m 34s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue02025-07-25 18h28:56 +00h 05m 30s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue02025-07-25 18h34:29 +00h 06m 01s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue02025-07-25 18h40:33 +00h 05m 56s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue02025-07-25 18h46:32 +00h 02m 36s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue02025-07-25 18h49:11 +00h 02m 19s [ 175 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat32out-of-placeAuto12025-07-25 18h51:33 +00h 38m 15s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluestein/Raderfloat32out-of-placeAuto12025-07-25 19h29:52 +01h 08m 18s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluestein/Raderfloat32out-of-placeAuto12025-07-25 20h38:14 +01h 28m 45s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat32out-of-placeAuto12025-07-25 22h07:02 +00h 42m 09s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluestein/Raderfloat32out-of-placeAuto12025-07-25 22h49:14 +00h 39m 06s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluestein/Raderfloat32out-of-placeAuto12025-07-25 23h28:24 +00h 28m 16s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat64out-of-placeAuto12025-07-25 23h56:43 +00h 32m 49s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluestein/Raderfloat64out-of-placeAuto12025-07-26 00h29:36 +01h 59m 43s [ 3987 tests] 0 0
gfx900pyopencl 32-508 (N,N,N)Bluestein/Raderfloat64out-of-placeAuto12025-07-26 02h29:22 +01h 25m 03s [ 340 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat64out-of-placeAuto12025-07-26 03h54:29 +00h 34m 16s [ 9267 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluestein/Raderfloat64out-of-placeAuto12025-07-26 04h48:00 +01h 12m 46s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat32inplaceAuto12025-07-26 06h00:50 +00h 38m 11s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluestein/Raderfloat32inplaceAuto12025-07-26 06h39:04 +00h 45m 05s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluestein/Raderfloat32inplaceAuto12025-07-26 07h24:13 +00h 48m 33s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat32inplaceAuto12025-07-26 08h12:50 +00h 41m 59s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluestein/Raderfloat32inplaceAuto12025-07-26 08h54:52 +00h 38m 54s [ 3987 tests] 0
gfx900pyopencl 32-550 (N,N,N)Bluestein/Raderfloat32inplaceAuto12025-07-26 09h33:49 +00h 12m 38s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluestein/Raderfloat64inplaceAuto12025-07-26 09h46:31 +00h 32m 53s [ 9267 tests] 0 0