Skip to content
/ rpp Public

AMD ROCm Performance Primitives (RPP) library is a comprehensive high-performance computer vision library for AMD processors with HIP/OpenCL/CPU back-ends.

License

Notifications You must be signed in to change notification settings

ROCm/rpp

Repository files navigation

MIT licensed doc

Note

The published documentation is available at ROCm Performance Primitives (RPP) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the docs folder of this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see Contribute to ROCm documentation.

AMD ROCm Performance Primitives (RPP) library is a comprehensive, high-performance computer vision library for AMD processors that have HIP, OpenCL, or CPU backends.

Latest release

GitHub tag (latest SemVer)

Supported functionalities and variants

Supported 3D Functionalities Samples

Input
(nifti1 .nii medical image)
fused_multiply_add_scalar
(brightened 3D image)

Supported audio functionalities and variants

  • Below are the list of audio functions supported
    • Non Silent Region Detection (HOST and HIP)
    • To Decibels (HOST and HIP)
    • Downmixing (HOST and HIP)
    • Preemphasis Filter (HOST and HIP)
    • Resample (HOST and HIP)
    • Mel Filter Bank (HOST and HIP)
    • Spectrogram (HOST and HIP)

Spectrogram kernel output represented as a image

Prerequisites

Important

gfx908 or higher GPU required

  • Install ROCm 6.1.0 or later with amdgpu-install: Required usecase:rocm

Important

sudo amdgpu-install --usecase=rocm

  • CMake Version 3.10 and above

    sudo apt install cmake
  • AMD Clang++ Version 18.0.0 or later - installed with ROCm

Note

  • For CPU only backend use Clang Version 5.0.1 and above
     sudo apt install clang

Important

  • Compiler features required
    • C++17
      sudo apt install libstdc++-12-dev
    • OpenMP
      sudo apt install libomp-dev
    • Threads

Note

  • All package installs are shown with the apt package manager. Use the appropriate package manager for your operating system.

Installation instructions

The installation process uses the following steps:

Important

Use either package install or source install as described below.

Package install

Install RPP runtime, development, and test packages.

  • Runtime package - rpp only provides the rpp library librpp.so
  • Development package - rpp-dev/rpp-devel provides the library, header files, and samples
  • Test package - rpp-test provides CTest to verify installation

Note

Package install will auto install all dependencies.

Ubuntu

sudo apt install rpp rpp-dev rpp-test

RHEL

sudo yum install rpp rpp-devel rpp-test

SLES

sudo zypper install rpp rpp-devel rpp-test

Source build and install

  • Clone RPP git repository

    git clone https://github.com/ROCm/rpp.git

Note

RPP has support for two GPU backends: OPENCL and HIP:

HIP Backend

mkdir build-hip
cd build-hip
cmake ../rpp
make -j8
sudo make install
make test

Important

make test requires test suite prerequisites installed

OCL Backend

mkdir build-ocl
cd build-ocl
cmake -DBACKEND=OCL ../rpp
make -j8
sudo make install

Verify installation

The installer will copy

  • Libraries into /opt/rocm/lib
  • Header files into /opt/rocm/include/rpp
  • Samples, and test folder into /opt/rocm/share/rpp
  • Documents folder into /opt/rocm/share/doc/rpp

Verify with rpp-test package

Test package will install CTest module to test rpp. Follow below steps to test package install

mkdir rpp-test && cd rpp-test
cmake /opt/rocm/share/rpp/test/
ctest -VV

Important

Test suite prerequisites are required to run tests

Test Functionalities

To test latest Image/Voxel/Audio/Miscellaneous functionalities of RPP using a python script please view AMD ROCm Performance Primitives (RPP) Test Suite

MIVisionX support - OpenVX extension

MIVisionX RPP extension vx_rpp supports RPP functionality through the OpenVX Framework.

Technical support

For RPP questions and feedback, you can contact us at [email protected].

To submit feature requests and bug reports, use our GitHub issues page.

Documentation

You can build our documentation locally using the following code:

  • Sphinx

    cd docs
    pip3 install -r .sphinx/requirements.txt
    python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
  • Doxygen

    doxygen .Doxyfile

Release notes

All notable changes for each release are added to our changelog.

Tested configurations

  • Linux distribution
    • Ubuntu - 22.04 / 24.04
    • RedHat - 8 / 9
    • SLES - 15-SP5
  • ROCm: rocm-core - 6.3.0.60300
  • CMake - Version 3.16.3+
  • AMD Clang++ - Version 18.0.0
  • half - IEEE 754-based half-precision floating-point library - Version 1.12.0 / package V1.12.0.60200
  • OpenCV - 4.6.0