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

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)

Prerequisites

  • Linux

    • Ubuntu - 20.04 / 22.04
    • CentOS - 7
    • RedHat - 8 / 9
    • SLES - 15-SP4
  • ROCm supported hardware

  • Install ROCm with amdgpu-install with --usecase=rocm

  • Clang Version 5.0.1 and above

    • Ubuntu 20/22
    sudo apt-get install clang
    • CentOS 7
    sudo yum install llvm-toolset-7-clang llvm-toolset-7-clang-analyzer llvm-toolset-7-clang-tools-extra
    scl enable llvm-toolset-7 bash
    • RHEL 8/9
    sudo yum install clang
    • SLES 15-SP4 (use ROCm LLVM Clang)
    zypper -n --no-gpg-checks install clang
    update-alternatives --install /usr/bin/clang clang /opt/rocm-*/llvm/bin/clang 100
    update-alternatives --install /usr/bin/clang++ clang++ /opt/rocm-*/llvm/bin/clang++ 100
  • CMake Version 3.5 and above

  • IEEE 754-based half-precision floating-point library (half.hpp)

    • half package install
    sudo apt-get install half
  • Compiler with support for C++ Version 17 and above

  • OpenMP

  • Threads

Note

You must use the appropriate package manager for your operating system.

Build and install instructions

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:

  • Instructions for building RPP with the HIP GPU backend (default GPU backend):

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

Note

make test requires test suite prerequisites installed

  • Instructions for building RPP with OPENCL GPU 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 folder into /opt/rocm/share/rpp
  • Documents folder into /opt/rocm/share/doc/rpp

Note

Test suite prerequisites install is required to run tests

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

Test Functionalities

To test the functionalities of RPP, run the code shown for your backend:

  • HIP

      cd rpp/utilities/rpp-unittests/HIP_NEW
      ./testAllScript.sh
  • OpenCL

      cd rpp/utilities/rpp-unittests/OCL_NEW
      ./testAllScript.sh
    • CPU
      cd rpp/utilities/rpp-unittests/HOST_NEW
      ./testAllScript.sh

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 mivisionx.support@amd.com.

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 - 20.04 / 22.04
    • CentOS - 7
    • RedHat - 8 / 9
    • SLES - 15-SP4
  • ROCm: rocm-core - 5.7.0.50700-63
  • OpenCV - 4.6.0