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_RPP
andAMD 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.0
or higher - Google Protobuf - Version
3.12.4
or 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 rocAL
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.
- 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