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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
gfx900 | pyopencl | Regular multi-dimensional C2C/R2C/R2R test | 2024-01-19 19h24:31 +01h 33m 59s | 0 | ||||||||
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 20h58:41 +00h 22m 36s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 21h21:26 +00h 14m 53s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 21h36:22 +00h 16m 36s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 21h53:01 +00h 28m 39s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 22h21:45 +00h 15m 36s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 22h37:34 +00h 10m 26s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 22h48:12 +01h 02m 51s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-20 23h51:14 +00h 32m 16s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 00h23:41 +00h 20m 49s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 00h44:41 +00h 30m 09s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 01h15:02 +00h 19m 06s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 01h34:10 +00h 10m 21s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 01h44:34 +00h 29m 58s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 02h14:35 +00h 19m 02s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 02h33:39 +00h 10m 23s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 3-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 02h44:06 +00h 45m 54s [ 1846 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 3-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 03h30:03 +00h 24m 07s [ 511 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 3-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 03h54:12 +00h 12m 45s [ 174 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 04h07:00 +01h 05m 52s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 05h13:04 +00h 35m 34s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 05h48:50 +00h 20m 27s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 06h09:29 +00h 33m 51s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 06h43:32 +00h 21m 33s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 07h05:15 +00h 10m 53s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 07h16:11 +00h 33m 48s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 07h50:02 +00h 21m 26s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 08h11:31 +00h 10m 57s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 3-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 08h22:31 +00h 50m 51s [ 1846 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 3-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 09h13:26 +00h 26m 03s [ 511 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 3-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2024-01-21 09h39:31 +00h 13m 30s [ 174 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 09h53:04 +00h 21m 39s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 10h14:47 +00h 20m 32s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 10h35:22 +00h 31m 26s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 11h06:51 +00h 24m 43s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 11h31:36 +00h 16m 36s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 11h48:16 +00h 15m 39s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 12h03:58 +01h 10m 03s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 13h14:07 +00h 32m 49s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 13h47:01 +00h 30m 10s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 14h17:14 +00h 26m 23s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 14h43:39 +00h 19m 37s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 15h03:20 +00h 14m 36s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 15h17:59 +00h 26m 27s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 15h44:32 +00h 19m 31s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 16h04:07 +00h 14m 39s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 3-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 16h18:49 +00h 32m 42s [ 1846 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 3-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 16h51:34 +00h 22m 41s [ 511 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 3-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 17h14:18 +00h 17m 01s [ 174 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 17h31:23 +01h 11m 22s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 18h43:00 +00h 34m 06s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 19h17:17 +00h 30m 52s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 19h48:21 +00h 27m 49s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 20h16:18 +00h 21m 22s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 20h37:46 +00h 15m 11s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 20h53:02 +00h 27m 48s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 21h21:00 +00h 21m 30s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 21h42:39 +00h 15m 11s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 3-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 21h57:53 +00h 34m 06s [ 1846 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 3-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 22h32:09 +00h 24m 07s [ 511 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 3-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2024-01-21 22h56:21 +00h 17m 46s [ 174 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-21 23h14:12 +00h 22m 30s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-21 23h36:51 +00h 14m 50s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-21 23h51:47 +00h 16m 35s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 00h08:29 +00h 31m 41s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 00h40:23 +00h 15m 33s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 00h56:08 +00h 09m 58s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 01h06:13 +01h 03m 13s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 02h09:39 +00h 32m 14s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 02h42:04 +00h 20m 36s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 03h02:55 +00h 30m 06s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 03h33:17 +00h 19m 05s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 03h52:30 +00h 10m 24s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 04h02:57 +00h 30m 07s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 04h33:13 +00h 19m 11s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 04h52:37 +00h 10m 29s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 3-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 05h03:20 +00h 46m 02s [ 1846 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 3-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 05h49:35 +00h 24m 06s [ 511 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 3-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 06h13:44 +00h 12m 52s [ 174 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 06h26:39 +01h 05m 47s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 07h32:39 +00h 35m 33s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 08h08:25 +00h 20m 26s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 08h28:54 +00h 33m 52s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 09h02:49 +00h 21m 21s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 09h24:13 +00h 10m 48s [ 175 tests] | 0 | 0 | |
gfx900 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 09h35:04 +00h 33m 49s [ 1847 tests] | 0 | 0 | |
gfx900 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 10h08:56 +00h 21m 26s [ 512 tests] | 0 | 0 | |
gfx900 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2024-01-22 10h30:26 +00h 11m 00s [ 175 tests] | 0 | 0 |