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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
a100 | pyopencl | Regular multi-dimensional C2C/R2C/DCT test | 2023-07-28 23h52:49 +00h 04m 05s | 0 | 0 | |||||||
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-28 23h56:55 +00h 01m 51s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-28 23h58:49 +00h 01m 07s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-28 23h59:58 +00h 01m 21s [ 175 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h01:21 +00h 01m 58s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h03:20 +00h 00m 50s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h04:11 +00h 00m 37s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-1500 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h04:50 +00h 00m 35s [ 299 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-1024 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h05:27 +00h 00m 35s [ 245 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h06:03 +00h 00m 54s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h06:58 +00h 00m 29s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h07:28 +00h 00m 39s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h08:08 +00h 00m 37s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h08:47 +00h 00m 28s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h09:16 +00h 00m 34s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h09:52 +00h 00m 40s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 3-4096 | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h10:33 +00h 00m 33s [ 488 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 3-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h11:07 +00h 00m 41s [ 348 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 3-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | Auto | 1 | 2023-07-29 00h11:49 +00h 00m 41s [ 164 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h12:35 +00h 02m 04s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h14:41 +00h 01m 21s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h16:05 +00h 03m 01s [ 175 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h19:07 +00h 02m 03s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h21:15 +00h 00m 50s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h22:07 +00h 00m 55s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-760 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h23:03 +00h 00m 23s [ 209 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-512 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h23:28 +00h 00m 28s [ 168 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h23:59 +00h 01m 22s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-3071 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h25:22 +00h 00m 28s [ 424 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h25:52 +00h 00m 39s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h26:33 +00h 00m 53s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-3071 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h27:29 +00h 00m 29s [ 424 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h27:58 +00h 00m 40s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h28:40 +00h 00m 47s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 3-3071 | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h29:28 +00h 00m 28s [ 423 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 3-2047 (N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h29:57 +00h 00m 40s [ 348 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 3-500 (N,N,N) | 2,3,5,7,11,13 | float64 | out-of-place | Auto | 1 | 2023-07-29 00h30:39 +00h 00m 54s [ 164 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h31:35 +00h 01m 50s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h33:28 +00h 01m 05s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h34:36 +00h 01m 06s [ 175 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h35:43 +00h 02m 07s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h37:51 +00h 00m 47s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h38:40 +00h 00m 38s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-1500 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h39:19 +00h 00m 31s [ 299 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-1024 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h39:52 +00h 00m 36s [ 245 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h40:29 +00h 00m 49s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h41:19 +00h 00m 30s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h41:50 +00h 00m 38s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h42:29 +00h 00m 38s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h43:09 +00h 00m 34s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h43:47 +00h 00m 37s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h44:25 +00h 00m 37s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 3-4096 | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h45:03 +00h 00m 36s [ 488 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 3-2047 (N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h45:41 +00h 00m 46s [ 348 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 3-500 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | Auto | 1 | 2023-07-29 00h46:30 +00h 00m 42s [ 164 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h47:14 +00h 02m 01s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h49:16 +00h 01m 11s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h50:27 +00h 01m 40s [ 168 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h52:08 +00h 02m 08s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h54:17 +00h 01m 00s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h55:19 +00h 00m 49s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-760 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h56:10 +00h 00m 26s [ 209 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-512 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h56:37 +00h 00m 29s [ 168 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h57:08 +00h 01m 13s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-3071 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h58:24 +00h 00m 31s [ 424 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h58:56 +00h 00m 39s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 00h59:36 +00h 00m 48s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-3071 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h00:25 +00h 00m 28s [ 424 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h00:57 +00h 00m 40s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h01:40 +00h 00m 52s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 3-3071 | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h02:34 +00h 00m 32s [ 423 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 3-2047 (N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h03:07 +00h 00m 43s [ 348 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 3-500 (N,N,N) | 2,3,5,7,11,13 | float64 | inplace | Auto | 1 | 2023-07-29 01h03:52 +00h 00m 49s [ 164 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h04:42 +00h 02m 00s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h06:43 +00h 01m 07s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h07:51 +00h 01m 16s [ 175 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h09:08 +00h 01m 55s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h11:06 +00h 00m 52s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h12:00 +00h 00m 43s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-1500 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h12:44 +00h 00m 34s [ 299 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-1024 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h13:19 +00h 00m 40s [ 245 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h14:02 +00h 00m 54s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h14:56 +00h 00m 31s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h15:28 +00h 00m 40s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h16:10 +00h 00m 44s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-4096 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h16:57 +00h 00m 30s [ 489 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h17:28 +00h 00m 41s [ 349 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h18:10 +00h 00m 41s [ 165 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 3-4096 | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h18:53 +00h 00m 33s [ 488 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 3-2047 (N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h19:27 +00h 00m 44s [ 348 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 3-500 (N,N,N) | 2,3,5,7,11,13 | float32 | out-of-place | True | 1 | 2023-07-29 01h20:12 +00h 00m 45s [ 164 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h20:58 +00h 02m 06s [ 1847 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h23:06 +00h 01m 08s [ 512 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h24:16 +00h 01m 04s [ 175 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-100000 | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h25:21 +00h 02m 00s [ 1420 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-4500 (N,N) | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h27:22 +00h 00m 47s [ 368 tests] | 0 | 0 | |
a100 | pyopencl | 3 | 2-550 (N,N,N) | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h28:10 +00h 00m 37s [ 118 tests] | 0 | 0 | |
a100 | pyopencl | 1 | 2-1500 | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h28:48 +00h 00m 30s [ 299 tests] | 0 | 0 | |
a100 | pyopencl | 2 | 2-1024 (N,N) | 2,3,5,7,11,13 | float32 | inplace | True | 1 | 2023-07-29 01h29:19 +00h 00m 34s [ 245 tests] | 0 | 0 |