Skip to content

Clients

Fei Zheng edited this page Jun 9, 2020 · 25 revisions

1. Accuracy Tests

rocfft-test is the functional coverage test of rocFFT. As default, it goes through all enabled tests. One also could run rocfft-test manually with the options similar to rocfft-rider to verify specific case.

Source: https://github.com/ROCmSoftwarePlatform/rocFFT/tree/develop/clients/tests

CMake build option: BUILD_CLIENTS_TESTS

Check running options: ./rocfft-test -h

2. Performance Tests

2.1 rocfft-rider

rofft-rider benchmarks on a single FFT problem with various configurations.

Source: https://github.com/ROCmSoftwarePlatform/rocFFT/blob/develop/clients/rider/rider.cpp

CMake build option: BUILD_CLIENTS_RIDER

Check running options: ./rocfft-rider -h

2.2 dyna-rocfft-rider

dyna-rocfft-rider benchmarks on a single FFT problem as well. It provides advanced option to test one problem within single test binary but dynamic loading rocFFT libraries from different builds. And the execution of runs are randomized.

The rocFFT library to be tested with dyna-rocfft-rider need to be built with CMake option "-DSINGLELIB=ON".

Source: https://github.com/ROCmSoftwarePlatform/rocFFT/blob/develop/clients/rider/dyna-rider.cpp

CMake build option: BUILD_CLIENTS_RIDER

Check running options: ./dyna-rocfft-rider -h

2.3 perf test script

alltime.py is the tool to benchmark, plot, and generate performance report of rocFFT with a group of test suites. For each suite, It outputs median(time, gflops, roofline) and its detailed scatter(time) diagram. It is based on rocfft-rider or dyna-rocfft-rider. The interactive mode allows user doing EXECUTE/PLOT/DOCUMENT separately.

Source: https://github.com/ROCmSoftwarePlatform/rocFFT/tree/develop/scripts/perf

Check running options: ./alltime.py -h

Dependency: It requires python3, numpy, tex, asymptote. The setup could be:

Examples:

  • Test 2 builds of rocFFT with rocfft-rider: ./alltime.py -i ../build0/clients/staging/ -i ../build1/clients/staging/ -o ../working_dir/old -o ../working_dir/new/ -l old -l new -w ../working_dir/report -d 1
  • Test 2 builds of rocFFT with dyna-rocfft-rider: ./alltime.py -b ../rocFFT/build/clients/staging/ -i ../build0/library/src/ -i ../build1/library/src/ -o ../working_dir/old -o ../working_dir/new/ -l old -l new -w ../working_dir/report -d 1

3. Self Tests

Clone this wiki locally