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 page.
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
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 |
- 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_RPPandAMD Media- MIVisionX Components - Turbo JPEG - Version 2.0.6.2 from
https://github.com/rrawther/libjpeg-turbo.git - Half-precision floating-point library - Version
1.12.0or higher - Google Protobuf - Version
3.12.4or higher - LMBD Library
- RapidJSON
- PyBind11
- HIP
- OpenMP
- C++17
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.
-
Linux distribution
- Ubuntu -
20.04/22.04 - CentOS -
7/8 - RedHat -
8/9 - SLES -
15-SP4
- Ubuntu -
-
Install ROCm with --usecase=graphics,rocm
usage:
python rocAL-setup.py --directory [setup directory - optional (default:~/)] --opencv [OpenCV Version - optional (default:4.6.0)] --protobuf [ProtoBuf Version - optional (default:3.12.4)] --rpp [RPP Version - optional (default:1.2.0)] --mivisionx [MIVisionX Version - optional (default:master)] --pybind11 [PyBind11 Version - optional (default:v2.10.4)] --reinstall [Remove previous setup and reinstall (default:no)[options:yes/no]] --backend [rocAL Dependency Backend - optional (default:HIP) [options:OCL/HIP]] --rocm_path [ROCm Installation Path - optional (default:/opt/rocm) - ROCm Installation Required]Note:
- ROCm upgrade requires the setup script rerun.
-
Install ROCm with --usecase=graphics,rocm
-
Use the below commands to set up and build rocAL
- Clone rocAL source code
git clone https://github.com/ROCmSoftwarePlatform/rocAL.git cd rocALNote: 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 testNote: 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.
- 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
- 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
