Skip to content

Commit

Permalink
RPP - float, int & tensor support: required for RALI-SOW3 (#32)
Browse files Browse the repository at this point in the history
* Changed Channel extract and channel combine function call

* updated erode dilate kernals [OCL]

* Non Working [FULLY BUILD] code for min_max_loc and mean_stddev

* Updated Rain GPU kernel for multiple destination image calls [OCL]

* Updated Median, Non Max and Histogram and added support for mean

* Updated tensor [OCL]

* updated table lookup [OCL]

* small updates in mean and stddev [OCL]

* Full functioning code for mean and standard deviation [OCL]

* Added Support to Min Max Location [OCL]

* Added support for gaussian_image_pyramid [OCL]

* Added support for laplacian_image_pyramid [OCL]

* small modification in LIP [OCL]

* small modification in Min Max Location and Mean stddev [OCL]

* box filter hisEq [OCL]

* Added support for gaussian filter

* Added support for bin in Histogram [OCL]

* updated sobel [OCL]

* Update in Temperature [CPU]

* FIX SNP CPU half noise issue [OCL]

* fin small change in Absolute difference [OCL]

* Small changes in Custom convolution and table lookup [OCL}

* Fix regressions due to scripting [cl & CPU].

* fix histogram [OCL]

* Updated snow [OCL]

* updated snow [CPU]

* small update in Snow [OCL]

* Modify filter_operations to add gaussian_filter with same backend as blur

* Fix issue with rain Grey Scale [OCL]

* Fix Rain GPU Transparancy [OCL]

* Add Kernel Caching using Map/Kernelmanger

* Resolved histogram grayscale issue in GPU

* Resolved histogram grayscale issue in GPU

* Fix the bug in warp affine planar call

* Fix issue with resize crop validation [cl & CPU].

* Cl_enque_buffer, the argument is set to CL_FALSE

* Fix Gamma correction [OCL]

* minor changes to gamma_correction, vignette commons, flip functionalities

* Fix Jitter with new Implementation [CPU & OCL]

* Modify brightness bug that gave patches in output

* Fix the buy with Lens correction [OCL].

* Fix Median filter issue

* Modify rotate to match GPU functionality

* Fix median filter

* merge abi-dev-host-ms4 to main-hipcl-dev

* Fix a round about fix for Hue and Saturation Shift

* Modify scale to match GPU functionality

* Fix a round about fix for Hue and Saturation Shift

* Fix syntax error in hsvkernel

* changed CL_False to CL_True in minmax location

* Resolve merg

* Modify warp affine to match GPU - inversion exists

* Add validation for Warp Affine Matrix

* changes in Warp Affine

* Add Blocking calls [CL_TRUE flag is on]

* Removed validation printf statements in the library

* Removed a syntax error

* Add extra validation for contrast

* Fix issue with rain [CPU]

* Added support to new Pixelate [OCL & CPU]

* Fix issue with Fish eye [OCL]

* Modify Histogram Implementation

* Histogram Balance Fix

* Update Readme.md

Amended the list

* Update Readme.md

* Fix Histogram Planar Version

* Add new support to Histogram [OCL]

* Remove all files to include batch version

* Move Mem-Mgmt_HIP branch files to master

* Update Readme.md

* Put all the recent changes or RPP here

* Fix Border issues in crop mirror normalize and crop

* Fix Crop mirror normalize border issue

* Add RPP UnitTests

* Add f32 support for crop_mirror_normalize

* Add f32 support for crop

* Add f32 support for resize_crop_mirror

* Add f32 support for resize and resize_crop

* Add f32 support for color_twist

* Correct blur

* Add f32 support for rotate

* Add f16 host support for rotate, resize, resize_crop, crop, resize_crop_mirror, crop_mirror_normalize, color_twist

* Major changes to host test suite

* Separate host test suites for pkd3 and pln1

* modify rpp_unittests host

* correct additional folder creation and readme

* Minor correction in pln1/pkd3 host test scripts

* Add basic float tensor support

* Add FP32 and FP16 support for Crop function

* Fix bug in crop

* crop mirror normalize report

* Float Support for Rotate GPU

* Add Kernel Support in OCL for colorTwist and resize funtionalities

* Add float support for ColorTwist and Resize Crop Mirror - FP16 and FP32

* Code Refactoring and Rotate Support for FP16 and FP32

* Fix Rotate Float issue

* Fix FP32 Rotate Issue

* Add Resize Function

* Add Resize Crop Mirror in GPU OCL

* Fix Typo

* Add Resize Crop GPU FP16 and FP32 support

* Update rppdefs.h

* Crop Mirror Normalize Support is added

* Support for ColorTwist in Float space

* Update Colortwwist.cl - temp

* Remove MIOPEN dependency in RPP build set-up

* Update colortwist.cl

* Fix Bug in ColorTwist

* Fix Bug in ColorTwist (#6)

* API refactoring for fused_functions

* Fix make_data-type bug and code formatting

* Testsuite for Float Support Functions

* Removed the brace in switchcase

* Add free statements for unreleased memomry and f16 fix for colortwist

* rename folders

* Fix Resize for U8 case

* minor change in BatchPD host

* Fix type error in resize.cl

* Fix float errors for resize fucntions

* foramt file

* Fix Bug in ColorTwist (#6) (#8)

* Fix Bug in ColorTwist (#6) (#8) (#9)

* Update

* update (#10)

* Fix Bug in ColorTwist (#6)

* Fix Bug in ColorTwist (#6) (#8) (#9)

* Update

* Format files

* New Changes (#11)

* Fix Bug in ColorTwist (#6)

* Fix Bug in ColorTwist (#6) (#8) (#9)

* Update

* Format files

* Correct f16 color twist host bug

* Change test suite to input 0-1 normalized values for all f16/f32 functionalities

* Refactor API code for geometry_transforms

* Added Testsuite for Float Functions in OCL

* AMD Docs

* Create install.rst

* Update index.rst

* Add host support for u8->f16 and u8->f32 for resize, crop, crop_mirror_normalize

* Add host support in test suite for u8->f16 and u8->f32 for resize, crop, crop_mirror_normalize

* Add host support for i8 in resize, crop, cmn, rotate, resize_crop, resize_crop_mirror and color_twist

* Add host test suite support for i8

* Add host support for u8->i8 in crop, resize, crop_mirror_normalize

* modify test suite

* Add host plan1 test suite to SOW3_HOST

* crop mirror normalize full support in w.r.t type change and layout change

* Add API calls for CMN function for new set of variations

* Fix bug with respect to I8

* change type info in kernels

* Fix cmn bub

* Support I8 for Rotate

* Int 8 support for colortwist and code refactoring

* Add int8 support for resize crop mirror function

* resize crop mirror int8 support is added

* Crop various variations are added

* Add crop support for all the conversions

* Add host support for resize outputFormatToggle

* Add host support for crop outputFormatToggle

* Add host support for rotate outputFormatToggle

* Add host support for resize_crop outputFormatToggle

* Add host support for resize_crop_mirror outputFormatToggle

* Add host support for crop_mirror_normalize outputFormatToggle

* Add host support for color_twist outputFormatToggle and all other pln->pkd support

* Add missing pln3 API for crop host

* Major modifications in test suite and ReadMe for pkd3, pln3 and pln1 inputs for host

* Modify resize kernel

* Add outputtoggle in the API and functions

* Add new changes to all the fused function w.r.t to outputFormatToggle

* Add pln3 api for Crop on GPU

* add missing API for resize cro

* Fix compilation bugs

* Remove unnecessary functions  and fix build bug

* Add ocl testing framework

* Fix bug in rotate helper

* Minor temp changes in test code to accomodate PKD3 input U8 cases with toggle format

* Correct resize_u8_i8_pkd

* Fix resize kenel issues for output toogle change

* colortwist bug fix

* Fix colortwist bug

* resize tensor fix

* Minor mods to both pln3 and pkd3 test suite to accomodate CMN's ability to do U8 format toggles

* Corrections in PLN3 input funcitons for host

* Fix bugs in Fused function new code

* Add changes relatedd to planar format in padded

* Fix issues with pln3 colortwist

* Fix issue with test suite

* Add pln3 testing and fix issues

* Modify a few things in test script

* Fix pln3 issue for FP16 for Rotate

* Fix index issues with Test suit

* Add output layout toggle for host API

* ix pln3 issues in test suite
Fix pln1 issues in testsuite
Fix other minor bugs

* Change paramerter order in resize pd pln host

* remove print statements

* Update README.MD

* Codacy issues corrections in utilities/rpp-unittests

* Codacy issues corrections for resize kernel

* Codacy issues corrections in utilities/rpp-unittests OCL/HIP

* Codacy issues corrections in utilities/rpp-unittests

* Codacy issues corrections in utilities/rpp-unittests

* Fix some codecy issues

* Remove some Codecy issues in rpp unnittests

* Remove a few codecy issues

* Remove Print statements

Co-authored-by: Muthukumaravel <muthukumaravel@multicorewareinc.com>
Co-authored-by: shobana-mcw <shobana@multicorewareinc.com>
Co-authored-by: r-abishekmcw <abishek@multicorewareinc.com>
Co-authored-by: LokeshBonta <you@example.com>
Co-authored-by: Reza <Seyedreza.Najafi@amd.com>
Co-authored-by: Swetha B S <swetha@multicorewareinc.com>
  • Loading branch information
7 people committed Aug 25, 2020
1 parent b0fb765 commit 35d5480
Show file tree
Hide file tree
Showing 48 changed files with 39,216 additions and 18,586 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.vscode
build/
build*
sample_test
build.sh
temp/
Gtest
opencv_test
cmake-3.16.0-rc2-Linux-x86_64/
stb-test/
hip_build/
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

if "%1" == "" goto help

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
62 changes: 62 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))


# -- Project information -----------------------------------------------------

project = 'AMD-RPP'
copyright = '2020, Lokeswara Rao Bonta(MCW-AMD)'
author = 'Lokeswara Rao Bonta(MCW-AMD)'

# The full version, including alpha/beta/rc tags
release = '0.4'


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'C/C++'

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'alabaster'

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
22 changes: 22 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.. AMD-RPP documentation master file, created by
sphinx-quickstart on Tue May 28 19:04:33 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to AMD-RPP's documentation!
===================================

.. toctree::
:maxdepth: 3
:caption: Contents:

install



Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
114 changes: 114 additions & 0 deletions docs/source/install.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
Installation
************

Build and Install Instructions


MIOpen supports two programming models


1. OpenCL
2. [HIP](https://github.com/ROCm-Developer-Tools/HIP)

Prerequisites


1. OpenCL - OpenCL libraries and header files
2. HIP - HIP and HCC libraries and header files
3. Ubuntu 16.04/18.04/20.04
4. [ROCm supported hardware](https://rocm.github.io/hardware.html)
5. [ROCm](https://rocm.github.io/install.html)

Functions Included

- Brightness
- Contrast
- Flip(Horizontal, Vertical and Both)
- Blur (Gaussian 3x3)
- Hue and Saturation modification
- HSV2RGB
- RGB2HSV
- Hue
- Saturation
- Vignette
- Exposure

Variations

- Support for 3C(RGB) and 1C(Grayscale) images
- Planar and Packed
- Host and GPU

**Build & Install RPP library**

**Using CMake on Linux**


git clone https://github.com/LokeshBonta/rpp.git

cd rpp

**Building RPP from source**


**Configuring with cmake**


First create a build directory:

mkdir build; cd build;


Next configure cmake. The preferred backend for RPP can be set using the `-DBACKEND` cmake variable.


For OpenCL, run:


`cmake -DBACKEND=OCL ..`

The library can be built, from the `build` directory using the 'make' configuration:

`make -j4`

And can be installed by using the 'install' target:

`sudo make install`

MIVisionX(OpenVX) Support


Extended RPP support as a functionality through OpenVX [MIVisionX](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX)

To build OpenVX with 'RPP extension'


RPP should be installed, follow Instructions to build the library


'git clone https://github.com/mythreyi22/MIVisionX.git'

cd MIVisionX
git checkout gdf_test

For GPU support:

`mkdir build;`
`cd build;`
`cmake ..`
`make -j4`

or

For CPU support:


`cd build;`

`cmake -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=TRUE;`

`make -j4`

`sudo make install`


Loading

0 comments on commit 35d5480

Please sign in to comment.