Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from ROCm/rpp

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

arvindcheru/rpp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT licensed doc Build Status

ROCm Performance Primitives Library

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

Latest Release

GitHub tag (latest SemVer)

Top level design

Supported Functionalities and Variants

Supported Functionalities List

Supported Functionalities Samples

Documentation

Run the steps below to build documentation locally.

  • sphinx documentation
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

Prerequisites

  • OS

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

  • ROCm 5.4.3 and above

  • 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

      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
      

      NOTE: Use ROCm LLVM Clang

  • CMake Version 3.5 and above

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

    wget https://sourceforge.net/projects/half/files/half/1.12.0/half-1.12.0.zip
    unzip half-1.12.0.zip -d half-files
    sudo mkdir /usr/local/include/half
    sudo cp half-files/include/half.hpp /usr/local/include/half
    

Prerequisites for Test Suite

  • OpenCV 3.4.0/4.5.5 - pre-requisites

    sudo apt-get update
    sudo -S apt-get -y --allow-unauthenticated install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy
    sudo -S apt-get -y --allow-unauthenticated install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev unzip wget
    
  • OpenCV 3.4.0 /4.5.5 - download

    wget https://github.com/opencv/opencv/archive/3.4.0.zip
    unzip 3.4.0.zip
    cd opencv-3.4.0/
    

    OR

    wget https://github.com/opencv/opencv/archive/4.5.5.zip
    unzip 4.5.5.zip
    cd opencv-4.5.5/
    
  • OpenCV 3.4.0/4.5.5 - installation

    mkdir build
    cd build
    cmake -D WITH_GTK=ON -D WITH_JPEG=ON -D BUILD_JPEG=ON -D WITH_OPENCL=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCLAMDBLAS=OFF -D WITH_VA_INTEL=OFF -D WITH_OPENCL_SVM=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
    sudo -S make -j128 <Or other number of threads to use>
    sudo -S make install
    sudo -S ldconfig
    
  • TurboJpeg installation

    sudo apt-get install nasm
    sudo apt-get install wget
    git clone -b 2.0.6.1 https://github.com/rrawther/libjpeg-turbo.git
    cd libjpeg-turbo
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr \
          -DCMAKE_BUILD_TYPE=RELEASE  \
          -DENABLE_STATIC=FALSE       \
          -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.0.3 \
          -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib  \
          ..
    make -j$nproc
    sudo make install
    

Build & Install RPP

The ROCm Performance Primitives (RPP) library has support for three backends: HIP, OpenCL, and CPU:

  • Building RPP with the HIP backend (default):
$ git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git
$ mkdir build && cd build
$ cmake -DBACKEND=HIP ../rpp
$ make -j8
$ sudo make install
  • Building RPP with the OPENCL backend:
$ git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git
$ mkdir build && cd build
$ cmake -DBACKEND=OCL ../rpp
$ make -j8
$ sudo make install
  • Building RPP with the CPU backend:
$ git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp.git
$ mkdir build && cd build
$ cmake -DBACKEND=CPU ../rpp
$ make -j8
$ sudo make install

Test Functionalities

CPU installation

$ cd rpp/utilities/rpp-unittests/HOST_NEW
$ ./testAllScript.sh

OCL installation

$ cd rpp/utilities/rpp-unittests/OCL_NEW
$ ./testAllScript.sh

HIP installation

$ cd rpp/utilities/rpp-unittests/HIP_NEW
$ ./testAllScript.sh

MIVisionX Support - OpenVX Extension

MIVisionX RPP Extension vx_rpp supports RPP functionality through OpenVX Framework.

Technical Support

Please email [email protected] for questions, and feedback on AMD RPP.

Please submit your feature requests, and bug reports on the GitHub issues page.

Release Notes

Latest Release

GitHub tag (latest SemVer)

Changelog

Review all notable changes with the latest release

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.9%
  • C 2.4%
  • Shell 0.4%
  • CMake 0.2%
  • Python 0.1%
  • Groovy 0.0%