rocAL#
The AMD ROCm Augmentation Library (rocAL) is designed to efficiently decode and process images and videos from a variety of storage formats and modify them through a processing graph programmable by the user. rocAL currently provides C API. For more details, go to [rocAL user guide](docs) page.
Documentation
Run the steps below to build documentation locally.
- Sphinx documentation cd docspip3 install -r sphinx/requirements.txtpython3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
- Doxygen doxygen .Doxyfile
Supported Operations
rocAL can be currently used to perform the following operations either with randomized or fixed parameters:
Blend | Blur (Gaussian 3x3) | Brightness | Color Temperature |
---|---|---|---|
ColorTwist | Contrast | Crop | Crop Mirror Normalization |
CropResize | Exposure Modification | Fisheye Lens | Flip (Horizontal, Vertical and Both) |
Fog | Gamma | Hue | Jitter |
Lens Correction | Pixelization | Raindrops | Random Crop |
Resize | Resize Crop Mirror | Rotation | Salt And Pepper Noise |
Saturation | Snowflakes | Vignette | Warp Affine |
Prerequisites
- Linux distribution
- Ubuntu -
20.04
/22.04
- CentOS -
7
/8
- RedHat -
8
/9
- SLES -
15-SP4
- Ubuntu -
- ROCm with –usecase=graphics,rocm
- AMD RPP - MIVisionX Component
- AMD OpenVX™ and AMD OpenVX™ Extensions:
VX_RPP
andAMD Media
- MIVisionX Components - Boost library - Version
1.72
or higher - Turbo JPEG - Version 2.0.6.2 from
https://github.com/rrawther/libjpeg-turbo.git
- Half-precision floating-point library - Version
1.12.0
or higher - Google Protobuf - Version
3.12.4
or higher - LMBD Library
- RapidJSON
- PyBind11
Build instructions
Prerequisites setup script for Linux - <tt>rocAL-setup.py</tt>
For the convenience of the developer, we here provide the setup script which will install all the dependencies required by this project.
NOTE: This script only needs to be executed once.
Prerequisites for running the script
- Linux distribution
- Ubuntu -
20.04
/22.04
- CentOS -
7
/8
- RedHat -
8
/9
- SLES -
15-SP4
- Ubuntu -
- ROCm supported hardware
Install ROCm with –usecase=graphics,rocm
usage:
Note:
- ROCm upgrade requires the setup script rerun.
Using <tt>rocAL-setup.py</tt>
- Install ROCm with –usecase=graphics,rocm
- Use the below commands to set up and build rocAL
- Clone rocAL source code
Note: rocAL supports CPU and two GPU backends: OPENCL/**HIP**:
Building rocAL with default HIP backend:
- run the setup script to install all the dependencies required ``` python rocAL-setup.py ```
- run the below commands to build rocAL ``` mkdir build-hip cd build-hip cmake ../ make -j8 sudo cmake –build . –target PyPackageInstall sudo make install ```
- run tests - test option instructions ``` make test ```
Note: sudo is required to build rocAL_pybind package (only supported on HIP backend)
Note:
- rocAL_pybind is not supported on OPENCL backend
- rocAL cannot be installed for both GPU backends in the same default folder (i.e., /opt/rocm/)
- if an app interested in installing rocAL with both GPU backends, then add -DCMAKE_INSTALL_PREFIX in the cmake commands to install rocAL with OPENCL and HIP backends into two separate custom folders.
Tested Configurations
- Linux distribution
- Ubuntu -
20.04
/22.04
- CentOS -
7
- RedHat -
8
/9
- SLES -
15-SP4
- Ubuntu -
- ROCm: rocm-core -
5.7.0.50700-6
- RPP - 1.2.0
- MIVisionX - master
- Boost - 1.72.0
- Protobuf - V3.12.4
- OpenCV - 4.6.0
- FFMPEG - n4.4.2
- RapidJSON- master
- PyBind11 - v2.10.4
- CuPy - v12.2.0
- rocAL Setup Script -
V1.0.2
- Dependencies for all the above packages