pyVkFFT test results

pyvkfft: 2024.2b0, VkFFFT:1.3.5[v1.3.4-20-g79f7b7a] CUDA: driver 12.2.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 test2024-09-27 12h55:16 +02h 18m 01s 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h13:18 +00h 02m 19s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h15:39 +00h 02m 13s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h17:53 +00h 11m 28s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h29:23 +00h 02m 58s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h32:23 +00h 02m 02s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto12024-09-27 15h34:26 +00h 03m 04s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto12024-09-27 15h37:32 +00h 03m 57s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto12024-09-27 15h41:30 +00h 02m 57s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto12024-09-27 15h44:29 +00h 24m 30s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto12024-09-27 16h09:00 +00h 03m 31s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto12024-09-27 16h12:32 +00h 02m 37s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto12024-09-27 16h15:11 +00h 08m 09s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto12024-09-27 16h23:21 +00h 02m 17s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto12024-09-27 16h25:40 +00h 02m 12s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto12024-09-27 16h27:53 +00h 05m 39s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto12024-09-27 16h33:34 +00h 03m 23s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto12024-09-27 16h36:58 +00h 02m 03s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto12024-09-27 16h39:02 +00h 02m 21s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto12024-09-27 16h41:25 +00h 03m 39s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto12024-09-27 16h45:06 +00h 06m 18s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto12024-09-27 16h51:25 +00h 11m 16s [ 168 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto12024-09-27 17h02:42 +00h 03m 51s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto12024-09-27 17h06:34 +00h 04m 44s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto12024-09-27 17h11:20 +00h 04m 05s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h15:26 +00h 04m 13s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h19:40 +00h 02m 22s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h22:03 +00h 11m 33s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h33:38 +00h 04m 05s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h37:45 +00h 06m 20s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue12024-09-27 17h44:06 +00h 03m 06s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue12024-09-27 17h47:13 +00h 03m 44s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue12024-09-27 17h50:58 +00h 03m 54s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue12024-09-27 17h54:54 +00h 05m 46s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue12024-09-27 18h00:41 +00h 04m 36s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue12024-09-27 18h05:18 +00h 04m 40s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue12024-09-27 18h09:59 +00h 06m 19s [ 175 tests] 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h16:19 +00h 02m 17s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h18:37 +00h 02m 14s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h20:53 +00h 11m 19s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h32:13 +00h 02m 57s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h35:12 +00h 02m 02s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeAuto02024-09-27 18h37:15 +00h 03m 01s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto02024-09-27 18h40:17 +00h 02m 25s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto02024-09-27 18h42:44 +00h 02m 58s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto02024-09-27 18h45:43 +00h 24m 53s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64out-of-placeAuto02024-09-27 19h10:37 +00h 04m 45s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64out-of-placeAuto02024-09-27 19h15:23 +00h 06m 51s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64out-of-placeAuto02024-09-27 19h22:15 +00h 08m 12s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto02024-09-27 19h30:29 +00h 02m 16s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto02024-09-27 19h32:46 +00h 02m 13s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto02024-09-27 19h35:00 +00h 05m 32s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceAuto02024-09-27 19h40:34 +00h 03m 23s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceAuto02024-09-27 19h43:58 +00h 02m 02s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceAuto02024-09-27 19h46:02 +00h 02m 19s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto02024-09-27 19h48:22 +00h 04m 09s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto02024-09-27 19h52:32 +00h 03m 14s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto02024-09-27 19h55:47 +00h 11m 27s [ 168 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float64inplaceAuto02024-09-27 20h07:16 +00h 03m 33s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float64inplaceAuto02024-09-27 20h10:51 +00h 03m 53s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float64inplaceAuto02024-09-27 20h14:45 +00h 04m 11s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h18:57 +00h 05m 13s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h24:11 +00h 04m 50s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h29:03 +00h 11m 27s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h40:32 +00h 05m 04s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h45:37 +00h 04m 43s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32out-of-placeTrue02024-09-27 20h50:21 +00h 03m 09s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue02024-09-27 20h53:31 +00h 02m 24s [ 1847 tests] 0 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue02024-09-27 20h55:56 +00h 02m 43s [ 512 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue02024-09-27 20h58:41 +00h 05m 37s [ 175 tests] 0 0
gfx900pyopencl 12-1000002,3,5,7,11,13float32inplaceTrue02024-09-27 21h04:19 +00h 06m 10s [ 1847 tests] 0
gfx900pyopencl 22-4500 (N,N)2,3,5,7,11,13float32inplaceTrue02024-09-27 21h10:31 +00h 04m 28s [ 512 tests] 0
gfx900pyopencl 32-550 (N,N,N)2,3,5,7,11,13float32inplaceTrue02024-09-27 21h15:00 +00h 08m 08s [ 175 tests] 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeAuto12024-09-27 21h23:09 +00h 12m 29s [ 2740 tests] 0 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeTrue12024-09-27 21h35:40 +00h 17m 59s [ 2740 tests] 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32inplaceAuto12024-09-27 21h53:40 +00h 12m 26s [ 2740 tests] 0 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float64out-of-placeAuto12024-09-27 22h06:07 +00h 18m 01s [ 2740 tests] 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeAuto12024-09-27 22h24:10 +00h 10m 03s [ 5848 tests] 0 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeTrue12024-09-27 22h34:14 +00h 16m 54s [ 5848 tests] 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32inplaceAuto12024-09-27 22h51:09 +00h 10m 02s [ 5848 tests] 0 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float64out-of-placeAuto12024-09-27 23h01:13 +00h 13m 34s [ 5848 tests] 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeAuto12024-09-27 23h14:48 +00h 10m 59s [ 2740 tests] 0 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeTrue12024-09-27 23h25:48 +00h 21m 13s [ 2740 tests] 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32inplaceAuto12024-09-27 23h47:02 +00h 11m 07s [ 2740 tests] 0 0
gfx900pyopencl 22-4500 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float64out-of-placeAuto12024-09-27 23h58:10 +00h 18m 11s [ 2740 tests] 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeAuto12024-09-28 00h16:23 +00h 12m 54s [ 5848 tests] 0 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32out-of-placeTrue12024-09-28 00h29:18 +00h 20m 32s [ 5848 tests] 0 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float32inplaceAuto12024-09-28 00h49:51 +00h 12m 58s [ 5848 tests] 0 0
gfx900pyopencl 32-150 [|Ni-N1|<={8; 4%N1}]2,3,5,7,11,13[^N,N<=3]float64out-of-placeAuto12024-09-28 01h02:51 +00h 20m 29s [ 5848 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluesteinfloat32inplaceAuto12024-09-28 01h23:22 +05h 31m 56s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluesteinfloat32inplaceAuto12024-09-28 06h55:19 +00h 57m 31s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluesteinfloat64inplaceAuto12024-09-28 07h52:52 +05h 02m 17s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluesteinfloat64inplaceAuto12024-09-28 12h55:10 +06h 03m 54s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluesteinfloat64inplaceAuto12024-09-28 18h59:05 +01h 28m 04s [ 343 tests] 0 0
gfx900pyopencl 12-10000Bluesteinfloat64inplaceAuto12024-09-28 20h27:10 +05h 29m 18s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluesteinfloat64inplaceAuto12024-09-29 01h56:30 +05h 10m 02s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluesteinfloat64inplaceAuto12024-09-29 07h06:33 +01h 12m 33s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluesteinfloat32out-of-placeTrue12024-09-29 08h19:07 +05h 33m 55s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluesteinfloat32out-of-placeTrue12024-09-29 13h53:04 +05h 40m 53s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluesteinfloat32out-of-placeTrue12024-09-29 19h33:59 +01h 30m 10s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluesteinfloat32out-of-placeTrue12024-09-29 21h04:10 +05h 53m 20s [ 9267 tests] 0 0
gfx900pyopencl 22-4500 (N,N)Bluesteinfloat32out-of-placeTrue12024-09-30 02h57:32 +05h 30m 42s [ 3987 tests] 0 0
gfx900pyopencl 32-550 (N,N,N)Bluesteinfloat32out-of-placeTrue12024-09-30 08h28:15 +00h 55m 19s [ 374 tests] 0 0
gfx900pyopencl 12-10000Bluesteinfloat32inplaceTrue12024-09-30 09h23:35 +05h 37m 43s [ 9267 tests] 0 0