Skip to content

Commit

Permalink
README - Updates and cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
kiritigowda authored Mar 14, 2024
1 parent 668456f commit dc2874c
Showing 1 changed file with 40 additions and 33 deletions.
73 changes: 40 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ The OpenVX framework provides a mechanism to add new vision functionality to Ope

<p align="center"><img width="70%" src="https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/MIVisionX-OpenVX-Extensions.png" /></p>

* [amd_loomsl](amd_openvx_extensions/amd_loomsl/README.md): AMD Radeon Loom stitching library for live 360 degree video applications
* [amd_loomsl](amd_openvx_extensions/amd_loomsl/README.md): AMD Loom stitching library for live 360 degree video applications
* [amd_media](amd_openvx_extensions/amd_media/README.md): AMD media extension module is for encode and decode applications
* [amd_migraphx](amd_openvx_extensions/amd_migraphx/README.md): amd_migraphx extension integrates the <a href="https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#amd-migraphx" target="_blank"> AMD's MIGraphx </a> into an OpenVX graph. This extension allows developers to combine the vision funcions in OpenVX with the MIGraphX and build an end-to-end application for inference.
* [amd_migraphx](amd_openvx_extensions/amd_migraphx/README.md): AMD MIGraphX extension integrates the <a href="https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#amd-migraphx" target="_blank"> AMD's MIGraphx </a> into an OpenVX graph. This extension allows developers to combine the vision funcions in OpenVX with the MIGraphX and build an end-to-end application for inference.
* [amd_nn](amd_openvx_extensions/amd_nn/README.md): OpenVX neural network module
* [amd_opencv](amd_openvx_extensions/amd_opencv/README.md): OpenVX module that implements a mechanism to access OpenCV functionality as OpenVX kernels
* [amd_rpp](amd_openvx_extensions/amd_rpp/README.md): OpenVX extension providing an interface to some of the [RPP](https://github.com/ROCm/rpp)'s (ROCm Performance Primitives) functions. This extension is used to enable [rocAL](rocAL/README.md) to perform image augmentation.
* [amd_winml](amd_openvx_extensions/amd_winml/README.md): WinML extension will allow developers to import a pre-trained ONNX model into an OpenVX graph and add hundreds of different pre & post processing `vision` / `generic` / `user-defined` functions, available in OpenVX and OpenCV interop, to the input and output of the neural net model. This will allow developers to build an end to end application for inference.
* [amd_winml](amd_openvx_extensions/amd_winml/README.md): AMD WinML extension will allow developers to import a pre-trained ONNX model into an OpenVX graph and add hundreds of different pre & post processing `vision` / `generic` / `user-defined` functions, available in OpenVX and OpenCV interop, to the input and output of the neural net model. This will allow developers to build an end to end application for inference.

## Applications

Expand Down Expand Up @@ -70,7 +70,8 @@ MIVisionX provides you with tools for accomplishing your tasks throughout the wh
* **GPU**: [AMD Radeon&trade; Graphics](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) [optional]
* **APU**: [AMD Radeon&trade; `Mobile`/`Embedded`](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) [optional]

**Note:** Some modules in MIVisionX can be built for `CPU ONLY`. To take advantage of `Advanced Features And Modules` we recommend using `AMD GPUs` or `AMD APUs`.
> [!NOTE]
> Some modules in MIVisionX can be built for `CPU ONLY`. To take advantage of `Advanced Features And Modules` we recommend using `AMD GPUs` or `AMD APUs`.
### Operating System

Expand All @@ -86,12 +87,17 @@ MIVisionX provides you with tools for accomplishing your tasks throughout the wh
#### macOS
* macOS - Ventura `13` / Sonoma `14`

## Build and install instructions
## Installation instructions

### Linux

* [ROCm supported hardware](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html)
* Install ROCm with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html) with `--usecase=graphics,rocm --no-32`
The installation process uses the following steps:

* [ROCm-supported hardware](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) install verification

* Install ROCm `6.0.0` or later with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html) with `--usecase=rocm`

* Use either [Package install](#package-install) or [Source install](#source-install) as described below.

#### Package install

Expand All @@ -100,40 +106,37 @@ Install MIVisionX runtime, development, and test packages.
* Development package - `mivisionx-dev`/`mivisionx-devel` provides the libraries, executables, header files, and samples
* Test package - `mivisionx-test` provides ctest to verify installation

##### On `Ubuntu`
##### Ubuntu
```shell
sudo apt-get install mivisionx mivisionx-dev mivisionx-test
```
##### On `CentOS`/`RedHat`
##### CentOS / RedHat
```shell
sudo yum install mivisionx mivisionx-devel mivisionx-test
```
##### On `SLES`
##### SLES
```shell
sudo zypper install mivisionx mivisionx-devel mivisionx-test
```

**Note:**
* Package install requires `OpenCV V4.6` and `Protobuf V3.12.4` manual install
* `CentOS`/`RedHat`/`SLES` requires `FFMPEG Dev` package manual install
> [!IMPORTANT]
> * Package install requires `OpenCV V4.6` and `Protobuf V3.12.4` manual install
> * `CentOS`/`RedHat`/`SLES` requires `FFMPEG Dev` package manual install
#### Source build and install
#### Source install

##### Prerequisites setup script for Linux

For the convenience of the developer, we provide the setup script `MIVisionX-setup.py` which will install all the dependencies required by this project.

**NOTE:** This script only needs to be executed once.
> [!NOTE]
> This script only needs to be executed once.
##### Prerequisites for running the script

* Linux distribution
+ Ubuntu - `20.04` / `22.04`
+ CentOS - `7`
+ RedHat - `8` / `9`
+ SLES - `15-SP4`
* [ROCm supported hardware](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html)
* Install ROCm with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html) with `--usecase=graphics,rocm --no-32`
* Install ROCm with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html) with `--usecase=rocm`

**usage:**
```shell
Expand All @@ -150,8 +153,8 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
--backend [MIVisionX Dependency Backend - optional (default:HIP) [options:HIP/OCL/CPU]]
--rocm_path [ROCm Installation Path - optional (default:/opt/rocm) - ROCm Installation Required]
```
**Note:**
* **ROCm upgrade** requires the setup script **rerun**
> [!NOTE]
> **ROCm upgrade** requires the setup script **rerun**
##### Using MIVisionX-setup.py
Expand All @@ -161,7 +164,8 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
git clone https://github.com/ROCm/MIVisionX.git
```
**Note:** MIVisionX has support for two GPU backends: **OPENCL** and **HIP**:
> [!NOTE]
> MIVisionX has support for two GPU backends: **OPENCL** and **HIP**
* Instructions for building MIVisionX with the **HIP** GPU backend (default GPU backend):
Expand Down Expand Up @@ -189,9 +193,9 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
make test
```
**Note:**
+ `PyPackageInstall` used for rocal_pybind installation
+ `sudo` required for pybind installation
> [!NOTE]
> + `PyPackageInstall` used for rocal_pybind installation
> + `sudo` required for pybind installation
* Instructions for building MIVisionX with [**OPENCL** GPU backend](https://github.com/ROCm/MIVisionX/wiki/OpenCL-Backend)
Expand All @@ -209,13 +213,15 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
#### Using Visual Studio
* Use `MIVisionX.sln` to build for x64 platform
**NOTE:** Some modules in MIVisionX are only supported on Linux
> [!IMPORTANT]
> Some modules in MIVisionX are only supported on Linux
### macOS
macOS [build instructions](https://github.com/ROCm/MIVisionX/wiki/macOS#macos-build-instructions)
**NOTE:** MIVisionX CPU backend is supported in macOS
> [!NOTE]
> MIVisionX CPU only backend is supported in macOS
## Verify installation
Expand All @@ -239,9 +245,9 @@ macOS [build instructions](https://github.com/ROCm/MIVisionX/wiki/macOS#macos-bu
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib
runvx /opt/rocm/share/mivisionx/samples/gdf/canny.gdf
```
**Note:** More samples are available [here](samples#samples)
**Note:** For `macOS` use `export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/rocm/lib`
> [!NOTE]
> * More samples are available [here](samples#samples)
> * For `macOS` use `export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/rocm/lib`
#### Verify with mivisionx-test package
Expand Down Expand Up @@ -314,7 +320,7 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release
* migraphx - `2.7.0.50700-63`
* Protobuf - [V3.12.4](https://github.com/protocolbuffers/protobuf/releases/tag/v3.12.4)
* OpenCV - [4.6.0](https://github.com/opencv/opencv/releases/tag/4.6.0)
* RPP - [1.5.0]
* RPP - 1.5.0
* FFMPEG - [n4.4.2](https://github.com/FFmpeg/FFmpeg/releases/tag/n4.4.2)
* Dependencies for all the above packages
* MIVisionX Setup Script - `V2.6.1`
Expand All @@ -341,4 +347,5 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release
| `Level_4` | MIOpen <br> MIGraphX <br> ProtoBuf <br> +Level 3 | amd_openvx <br> amd_openvx_extensions <br> apps <br> utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX&trade; Lib <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX&trade; immediate node Lib <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX&trade; Media Extension <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX&trade; OpenCV InterOp Extension <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX&trade; Graph Executor - Display ON <br> ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_nn.so` - OpenVX&trade; Neural Net Extension | [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/kiritigowda/ubuntu-18.04/mivisionx-level-4?style=flat-square)](https://hub.docker.com/repository/docker/kiritigowda/ubuntu-18.04) |
| `Level_5` | AMD_RPP <br> rocAL deps <br> +Level 4 | amd_openvx <br> amd_openvx_extensions <br> apps <br> rocAL <br> utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX&trade; Lib <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX&trade; immediate node Lib <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX&trade; Media Extension <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX&trade; OpenCV InterOp Extension <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX&trade; Graph Executor - Display ON <br> ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_nn.so` - OpenVX&trade; Neural Net Extension <br> ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_rpp.so` - OpenVX&trade; RPP Extension <br> ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `librocal.so` - Radeon Augmentation Library <br> ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `rocal_pybind.so` - rocAL Pybind Lib | [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/kiritigowda/ubuntu-18.04/mivisionx-level-5?style=flat-square)](https://hub.docker.com/repository/docker/kiritigowda/ubuntu-18.04) |
**NOTE:** OpenVX and the OpenVX logo are trademarks of the Khronos Group Inc.
> [!IMPORTANT]
> OpenVX and the OpenVX logo are trademarks of the Khronos Group Inc.

0 comments on commit dc2874c

Please sign in to comment.