pyvkfft-test-suite

Run a complete test suite including the basic test, followed by systematic tests for C2C, R2C, DCT, 1D, 2D and 3D single and double precision, in and out-of-place, different normalisations, with or without LUT (single), radix and non-radix, plus a few asymmetric 2D and 3D tests.

Note that the full test suite typically takes 24 to 30 hours.

To merge the html files at the end, use:

cat pyvkfft-test1*.html > pyvkfft-test.html

usage: pyvkfft-test-suite [-h] [--gpu GPU] [--nproc NPROC] [--gpumem GPUMEM]
                          --backend {pycuda,cupy,pyopencl}
                          [--opencl_platform OPENCL_PLATFORM]
                          [--transform {c2c,r2c,dct,dst} [{c2c,r2c,dct,dst} ...]]
                          [--radix] [--single] [--ndim {1,2,3} [{1,2,3} ...]]
                          [--fast-random FAST_RANDOM] [--dry-run] [--skip]

Named Arguments

--gpu

Name (or sub-string) of the GPU to use. If not given, the first available will be used

--nproc

Maximum number of parallel process to use to speed up tests. This number will be decreased for larger arrays (e.g. 3D), but it should be checked to avoid memory errors. A good valuefor 32 GB is 20 processes.

Default: 10

--gpumem

Available GPU memory.

Default: 16

--backend

Possible choices: pycuda, cupy, pyopencl

GPU backend

--opencl_platform

Name (or sub-string) of the opencl platform to use (case-insensitive)

--transform

Possible choices: c2c, r2c, dct, dst

Transforms to test (defaults to all)

Default: ['c2c', 'r2c', 'dct', 'dst']

--radix

Use this option to only test radix transforms

Default: False

--single

Use this option to only test single precision transforms

Default: False

--ndim

Possible choices: 1, 2, 3

Number of dimensions for the tests. Several values can be given, e.g. 1 2 3

Default: [1, 2, 3]

--fast-random

Use this option to run a random percentage of the systematic tests, for faster results. A number (percentage) between 5 and 100 is required.

--dry-run

Perform a dry-run, printing the commands for each sub-test.

Default: False

--skip

Use this option to skip tests which have already been performed (basedon parsing the html files in the current directory).

Default: False

Examples:

pyvkfft-test-suite --gpumem 32 --backend pycuda --gpu V100

This will run the full test suite with a maximum of 20 parallel process (based on the available memory), using pycuda on a V100 GPU

pyvkfft-test-suite --gpumem 32 --backend pycuda --gpu V100 --transform c2c --ndim 1 2

This will run the test suite only for 1D and 2D C2C transforms