Skip to content

Clients

Ethan edited this page Aug 19, 2021 · 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.

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 value of(time, gflops, roofline). It is based on rocfft-rider or dyna-rocfft-rider.

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:

  • numpy:

    sudo apt-get install python3-numpy

  • tex:

    wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

    tar -xvf install-tl-unx.tar.gz

    cd install-tl-xxxxxxxx

    ./install-tl

    export PATH=${HOME}/tex/bin/x86_64-linux:${PATH}

  • asymptote

    sudo apt-get install texinfo

    wget https://cfhcable.dl.sourceforge.net/project/asymptote/2.61/asymptote-2.61.src.tgz

    tar -xvf asymptote-2.61.src.tgz

    cd asymptote-2.61

    ./configure --prefix=${HOME}/asy && make && make install

    export PATH=${HOME}/asy/bin:${PATH}

  • other plot/doc tools might be required

    pip install python-docx --user

    python3 -m pip install matplotlib

    python3 -m pip install PyLaTeX

    python3 -m pip install scipy

    python3 -m pip install sympy

    python3 -m pip install pandas

    python3 -m pip install dataclasses

    python3 -m pip install plotly==5.1.0

    (plotly 5.1.0 is the minimal required version)

  • to generate html report with existing data:

    html_report.py first_dir second_dir output_dir

Examples:

  • Test 2 builds of rocFFT with rocfft-rider: ./alltime.py -i ../build0/clients/staging/rocfft-rider -i ../build1/clients/staging/rocfft-rider -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/dyna-rocfft-rider -i ../build0/library/src/librocfft.so -i ../build1/library/src/librocfft.so -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