Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop - Merge to TOT #1190

Merged
merged 5 commits into from
Sep 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@

### Added

* CTest - OpenVX Tests
* Hardware Support
* CTest - Tests for install verification
* Hardware Support updates
* Doxygen - Support for API documentation

### Optimizations

* CMakeList Cleanup
* Readme

### Changed

Expand All @@ -30,28 +32,28 @@

* rocAL bug fix and updates

### Tested Configurations
### Tested configurations

* Windows `10` / `11`
* Linux distribution
+ Ubuntu - `20.04` / `22.04`
+ CentOS - `7` / `8`
+ RHEL - `8` / `9`
+ SLES - `15-SP4`
* ROCm: rocm-core - `5.4.3.50403-121`
* miopen-hip - `2.19.0.50403-121`
* miopen-opencl - `2.18.0.50300-63`
* migraphx - `2.4.0.50403-121`
* ROCm: rocm-core - `5.7.0.50700-6`
* miopen-hip - `2.20.0.50700-63`
* 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.2.0](https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/releases/tag/1.2.0)
* RPP - [1.2.0.50700-63](https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/releases/tag/1.2.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.5.5`

### Known issues

* OpenCV 4.X support for some apps missing
* MIVisionX Package install requires manual prerequisites installation

## MIVisionX 2.4.0

Expand Down
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path")
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX ${ROCM_PATH} CACHE PATH "MIVisionX default installation path" FORCE)
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

# MIVisionX Default Options
option(ENHANCED_MESSAGE "MIVisionX Enhanced Message Option" ON)
Expand Down
70 changes: 37 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ MIVisionX toolkit is a set of comprehensive computer vision and machine intellig
- [Utilities](#utilities)
- [Prerequisites](#prerequisites)
- [Hardware](#hardware)
- [Operating System](#operating-system)
- [Operating System \& Prerequisites](#operating-system--prerequisites)
- [Windows](#windows)
- [macOS](#macos)
- [Linux](#linux)
- [Prerequisites setup script for Linux](#prerequisites-setup-script-for-linux)
- [Prerequisites for running the script](#prerequisites-for-running-the-script)
- [Build \& Install MIVisionX](#build--install-mivisionx)
- [Building on Windows](#building-on-windows)
- [Windows](#windows-1)
- [Using `Visual Studio`](#using-visual-studio)
- [Building on macOS](#building-on-macos)
- [Building on Linux](#building-on-linux)
- [macOS](#macos-1)
- [Linux](#linux-1)
- [Using `apt-get` / `yum` / `zypper`](#using-apt-get--yum--zypper)
- [Using MIVisionX-setup.py](#using-mivisionx-setuppy)
- [Using `MIVisionX-setup.py`](#using-mivisionx-setuppy)
- [Verify the Installation](#verify-the-installation)
- [Verifying on Linux / macOS](#verifying-on-linux--macos)
- [Verifying on Windows](#verifying-on-windows)
Expand Down Expand Up @@ -128,10 +128,10 @@ MIVisionX provides you with tools for accomplishing your tasks throughout the wh

## Utilities

* [inference_generator](utilities/inference_generator/README.md#inference-generator): generate inference library from pre-trained CAFFE models
* [loom_shell](utilities/loom_shell/README.md#radeon-loomsh): an interpreter to prototype 360 degree video stitching applications using a script
* [RunVX](utilities/runvx/README.md#amd-runvx): command-line utility to execute OpenVX graph described in GDF text file
* [mv_deploy](utilities/mv_deploy/README.md): consists of a model-compiler and necessary header/.cpp files which are required to run inference for a specific NeuralNet model
* [RunCL](utilities/runcl/README.md#amd-runcl): command-line utility to build, execute, and debug OpenCL programs
* [RunVX](utilities/runvx/README.md#amd-runvx): command-line utility to execute OpenVX graph described in GDF text file

## Prerequisites

Expand All @@ -143,7 +143,7 @@ MIVisionX provides you with tools for accomplishing your tasks throughout the wh

**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
### Operating System & Prerequisites

#### Windows

Expand Down Expand Up @@ -172,7 +172,7 @@ MIVisionX provides you with tools for accomplishing your tasks throughout the wh
+ **CentOS** - `7` / `8`
+ **RedHat** - `8` / `9`
+ **SLES** - `15-SP4`
* Install [ROCm](https://docs.amd.com)
* Install [ROCm](https://rocmdocs.amd.com/en/latest/deploy/linux/installer/install.html) with `--usecase=graphics,rocm`
* CMake 3.5 or later
* MIOpen for [vx_nn](amd_openvx_extensions/amd_nn/README.md#openvx-neural-network-extension-library-vx_nn) extension
* MIGraphX for `vx_migraphx` extension
Expand All @@ -194,8 +194,8 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
+ CentOS - `7` / `8`
+ RedHat - `8` / `9`
+ SLES - `15-SP4`
* [ROCm supported hardware](https://docs.amd.com)
* [ROCm](https://docs.amd.com)
* [ROCm supported hardware](https://rocm.docs.amd.com/en/latest/release/gpu_os_support.html)
* Install [ROCm](https://rocmdocs.amd.com/en/latest/deploy/linux/installer/install.html) with `--usecase=graphics,rocm`

**usage:**

Expand All @@ -215,12 +215,12 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set
--rocm_path [ROCm Installation Path - optional (default:/opt/rocm) - ROCm Installation Required]
```
**Note:**
* **ROCm upgrade** with `sudo apt upgrade` requires the setup script **rerun**.
* **ROCm upgrade** requires the setup script **rerun**.
* use `X Window` / `X11` for [remote GUI app control](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/X-Window-forwarding)

## Build & Install MIVisionX

### Building on Windows
### Windows

#### Using `Visual Studio`

Expand All @@ -229,16 +229,16 @@ For the convenience of the developer, we provide the setup script `MIVisionX-set

**NOTE:** `vx_nn` is not supported on `Windows` in this release

### Building on macOS
### macOS

macOS [build instructions](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/macOS#macos-build-instructions)

### Building on Linux
### Linux

#### Using `apt-get` / `yum` / `zypper`
* [ROCm supported hardware](https://rocm.docs.amd.com/en/latest/release/gpu_os_support.html)
* Install [ROCm](https://rocmdocs.amd.com/en/latest/deploy/linux/installer/install.html) with `--usecase=graphics,rocm`

* [ROCm supported hardware](https://docs.amd.com)
* Install [ROCm](https://docs.amd.com)
#### Using `apt-get` / `yum` / `zypper`

* On `Ubuntu`
```
Expand All @@ -250,7 +250,7 @@ macOS [build instructions](https://github.com/GPUOpen-ProfessionalCompute-Librar
```
* On `SLES`
```
sudo zypper install mivisionxF
sudo zypper install mivisionx
```

**Note:**
Expand All @@ -265,22 +265,21 @@ macOS [build instructions](https://github.com/GPUOpen-ProfessionalCompute-Librar
+ Docs folder into `/opt/rocm/share/doc/mivisionx`
* Package (.deb & .rpm) install requires `OpenCV v4.6` to execute `AMD OpenCV extensions`

#### Using MIVisionX-setup.py
#### Using `MIVisionX-setup.py`

* Install [ROCm](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html)
* Use the below commands to set up and build MIVisionX
* Clone MIVisionX git repository

```
git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX.git
cd MIVisionX
```

**Note:** MIVisionX has support for two GPU backends: **OPENCL** and **HIP**:

+ Instructions for building MIVisionX with the **HIP** GPU backend (i.e., default GPU backend):
* Instructions for building MIVisionX with the **HIP** GPU backend (i.e., default GPU backend):

+ run the setup script to install all the dependencies required by the **HIP** GPU backend:
```
cd MIVisionX
python MIVisionX-setup.py
```

Expand All @@ -293,12 +292,17 @@ macOS [build instructions](https://github.com/GPUOpen-ProfessionalCompute-Librar
sudo cmake --build . --target PyPackageInstall
sudo make install
```

+ run tests - [test option instructions](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/CTest)
```
make test
```
**Note:**
+ `PyPackageInstall` used for rocal_pybind installation
+ rocal_pybind not supported on windows.
+ `sudo` required for pybind installation

+ Instructions for building MIVisionX with [**OPENCL** GPU backend](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/OpenCL-Backend)
* Instructions for building MIVisionX with [**OPENCL** GPU backend](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/wiki/OpenCL-Backend)


## Verify the Installation
Expand Down Expand Up @@ -350,8 +354,8 @@ Docker files to build MIVisionX containers are [available](docker#mivisionx-dock

#### Prerequisites
* Ubuntu `20.04`/`22.04`
* [ROCm supported hardware](https://docs.amd.com)
* [ROCm](https://docs.amd.com)
* [ROCm supported hardware](https://rocm.docs.amd.com/en/latest/release/gpu_os_support.html)
* Install [ROCm](https://rocmdocs.amd.com/en/latest/deploy/linux/installer/install.html) with `--usecase=graphics,rocm`
* [Docker](https://docs.docker.com/engine/install/ubuntu/)

#### Workflow
Expand Down Expand Up @@ -432,20 +436,20 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release
+ CentOS - `7` / `8`
+ RHEL - `8` / `9`
+ SLES - `15-SP4`
* ROCm: rocm-core - `5.4.3.50403-121`
* miopen-hip - `2.19.0.50403-121`
* miopen-opencl - `2.18.0.50300-63`
* migraphx - `2.4.0.50403-121`
* ROCm: rocm-core - `5.7.0.50700-6`
* miopen-hip - `2.20.0.50700-63`
* 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.2.0](https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/releases/tag/1.2.0)
* RPP - [1.2.0.50700-63](https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/releases/tag/1.2.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.5.5`

### Known issues

* Package install requires **OpenCV** `V-4.6.0` to execute `AMD OpenCV extensions`
* OpenCV 4.X support for some apps missing
* MIVisionX Package install requires manual prerequisites installation

## MIVisionX Dependency Map

Expand Down
2 changes: 1 addition & 1 deletion amd_openvx_extensions/amd_nn/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ if(BUILD_DEV)
install(DIRECTORY ../../apps/dg_test DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/apps)
install(DIRECTORY ../../apps/mivisionx_inference_analyzer DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/apps)
install(DIRECTORY ../../apps/mivisionx_openvx_classifier DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/apps)
install(DIRECTORY ../../samples/inference/mv_objdetect DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/samples)
install(DIRECTORY ../../samples/mv_objdetect DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/samples)
install(DIRECTORY ../../samples/model_compiler_samples DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/samples)
endif(BUILD_DEV)

Expand Down
2 changes: 1 addition & 1 deletion apps/image_augmentation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This application demonstrates the basic usage of rocAL's C API to load JPEG imag

### Pre-requisites

* Ubuntu Linux, [version `16.04` or later](https://www.microsoft.com/software-download/windows10)
* Ubuntu Linux, [version `20.04` or later](https://www.microsoft.com/software-download/windows10)
* rocAL library (Part of the MIVisionX toolkit)
* [OpenCV 3.1](https://github.com/opencv/opencv/releases) or higher
* Radeon Performance Primitives (RPP)
Expand Down
2 changes: 1 addition & 1 deletion apps/mivisionx_inference_analyzer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Pre-trained models in [ONNX](https://onnx.ai/), [NNEF](https://www.khronos.org/n

## Prerequisites

* Ubuntu `16.04` / `18.04` or CentOS `7.5` / `7.6`
* Ubuntu `20.04` / `22.04` or CentOS `7.5` / `7.6`
* [ROCm supported hardware](https://rocm.github.io/ROCmInstall.html#hardware-support)
+ AMD Radeon GPU or AMD APU required
* Latest [ROCm](https://github.com/RadeonOpenCompute/ROCm#installing-from-amd-rocm-repositories)
Expand Down
2 changes: 1 addition & 1 deletion docs/.sphinx/_toc.yml.in
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ subtrees:
- entries:
- file: samples/c_samples/README
- file: samples/gdf/README
- file: samples/inference/mv_objdetect/README
- file: samples/mv_objdetect/README
- file: samples/loom_360_stitch/README
- file: samples/model_compiler_samples/README
subtrees:
Expand Down
3 changes: 2 additions & 1 deletion docs/.sphinx/requirements.in
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
rocm-docs-core[api_reference]==0.24.0
rocm-docs-core[api_reference]>=0.24.0

4 changes: 2 additions & 2 deletions docs/.sphinx/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fastjsonschema==2.16.3
# via rocm-docs-core
gitdb==4.0.10
# via gitpython
gitpython==3.1.34
gitpython==3.1.35
# via rocm-docs-core
idna==3.4
# via requests
Expand Down Expand Up @@ -110,7 +110,7 @@ requests==2.31.0
# via
# pygithub
# sphinx
rocm-docs-core[api_reference]==0.24.0
rocm-docs-core[api_reference]>=0.24.0
# via -r requirements.in
smmap==5.0.0
# via gitdb
Expand Down
12 changes: 10 additions & 2 deletions samples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ MIVisionX samples using OpenVX and OpenVX extensions. In the samples below we wi
* [GDF - Graph Description Format Samples](#gdf---graph-description-format)
* [Loom 360 Stitch - Radeon Loom 360 Stitch Samples](#loom-360-stitch---radeon-loom-360-stitch-samples)
* [Model Compiler Samples - Run Efficient Inference](#model-compiler-samples---run-efficient-inference)
* [MIVisionX Inference Deploy Samples](inference/mv_objdetect/)
* [MIVisionX Inference Deploy Samples](mv_objdetect)

## GDF - Graph Description Format

Expand Down Expand Up @@ -108,7 +108,7 @@ make

MIVisionX samples using [LoomShell](../utilities/loom_shell/README.md#radeon-loomshell)

[![Loom Stitch](https://raw.githubusercontent.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/develop/docs/data/loom-4.pngloom-4.png)](https://youtu.be/E8pPU04iZjw)
[![Loom Stitch](https://raw.githubusercontent.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/develop/docs/data/loom-4.png)](https://youtu.be/E8pPU04iZjw)

**Note:**

Expand Down Expand Up @@ -225,3 +225,11 @@ In this [sample](model_compiler_samples/README.md#mivisionx-model-compiler-sampl
### [Sample-3: Classification Using Pre-Trained NNEF Model](model_compiler_samples/README.md#sample-3---classification-using-pre-trained-nnef-model)

### [Sample-4: Classification Using Pre-Trained Caffe Model](model_compiler_samples/README.md#sample-4---classification-using-pre-trained-caffe-model)

## MV Object Detect Samples

This [sample](mv_objdetect) shows how to run video decoding and object detection using pre-trained `YoloV2` Caffe Model

The sample demonstrates the use of mv_compile utility to do video decoding and inference.

<p align="center"><img width="80%" src="https://raw.githubusercontent.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/develop/samples/mv_objdetect/data/images/Video_4_screenshot.png" /></p>
20 changes: 16 additions & 4 deletions samples/model_compiler_samples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,31 @@ Pre-trained models in [ONNX](https://onnx.ai/), [NNEF](https://www.khronos.org/n

### Prerequisites

* Ubuntu `18.04`/`20.04` or CentOS `7`/`8`
* Ubuntu `20.04`/`22.04` or CentOS `7`/`8`
* [ROCm supported hardware](https://docs.amd.com/bundle/ROCm-Installation-Guide-v5.1.1/page/Prerequisite_Actions.html)
* AMD Radeon GPU or AMD APU required
* Latest [ROCm](https://docs.amd.com/category/ROCm™%20v5.x)
* Build & Install [MIVisionX](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX#linux-1)

#### Docker for Samples

MIVisionX provides developers with [docker images](https://hub.docker.com/u/mivisionx) for [Ubuntu 18.04](https://hub.docker.com/r/mivisionx/ubuntu-18.04), [Ubuntu 20.04](https://hub.docker.com/r/mivisionx/ubuntu-20.04), [CentOS 7](https://hub.docker.com/r/mivisionx/centos-7), & [CentOS 8](https://hub.docker.com/r/mivisionx/centos-8). Using docker images developers can quickly prototype and build applications without having to be locked into a single system setup or lose valuable time figuring out the dependencies of the underlying software.
MIVisionX provides developers with docker images for Ubuntu `20.04` / `22.04`. Using docker images developers can quickly prototype and build applications without having to be locked into a single system setup or lose valuable time figuring out the dependencies of the underlying software.

##### Docker with display option for the samples
Docker files to build MIVisionX containers are [available](docker#mivisionx-docker)

### MIVisionX Docker
* [Ubuntu 20.04](https://cloud.docker.com/repository/docker/mivisionx/ubuntu-20.04)
* [Ubuntu 22.04](https://cloud.docker.com/repository/docker/mivisionx/ubuntu-22.04)

### Docker Workflow on Ubuntu `20.04`/`22.04`

* Check [docker prerequisites](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX#docker-workflow-sample-on-ubuntu-1804--2004)
#### Prerequisites
* Ubuntu `20.04`/`22.04`
* [ROCm supported hardware](https://docs.amd.com)
* [ROCm](https://docs.amd.com)
* [Docker](https://docs.docker.com/engine/install/ubuntu/)

##### Docker with display option for the samples

* Start docker with display
````
Expand Down
Loading
Loading