From c267dcb4ceac6cec8852c567f4235302a07f6297 Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Wed, 11 Dec 2024 14:36:34 -0600 Subject: [PATCH] ROCm - 6.4 updates (#1466) * ROCm - 6.4 updates * Readme - cleanup * Setup - Updates * Docs - Updates --- CHANGELOG.md | 10 +++--- CMakeLists.txt | 20 +++++------ MIVisionX-setup.py | 34 +++++++------------ README.md | 29 ++++++++-------- amd_openvx_extensions/CMakeLists.txt | 4 +-- .../amd_media/CMakeLists.txt | 2 +- docs/install/installation.rst | 13 ++++--- .../runNeuralNetworkTests.py | 24 ++++++------- 8 files changed, 64 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b261e23d2..87024f23b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,11 +28,13 @@ The full documentation for MIVisionX is available at [https://rocm.docs.amd.com/ * Setup: rocdecode install disabled * Package: rocdecode dependency removed +### Optimizations + +* Setup: only core dependency packages installed + ### Known issues -* Package installation requires the manual installation of OpenCV. -* Installation on CentOS/RedHat/SLES requires the manual installation of the `FFMPEG Dev` package. -* Hardware decode requires the ROCm `graphics` usecase. +* MIVisionX package installation on RedHat/SLES requires the manual installation of the `OpenCV` and `FFMPEG` development package. ### Upcoming changes @@ -66,7 +68,7 @@ The full documentation for MIVisionX is available at [https://rocm.docs.amd.com/ ### Known issues * Package install requires manually installing OpenCV -* Installationon CentOS/RedHat/SLES requires manually installing the `FFMPEG Dev` package +* Installation CentOS/RedHat/SLES requires manually installing the `FFMPEG Dev` package * Hardware decode requires the ROCm `graphics` usecase. ### Upcoming changes diff --git a/CMakeLists.txt b/CMakeLists.txt index c9068ddb9..2688fe269 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,19 +230,17 @@ endif() set(MIVISIONX_RUNTIME_PACKAGE_LIST "rocm-hip-runtime, rpp, rocblas, miopen-hip, migraphx") # Set the dev dependent packages -set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "half, rocm-hip-runtime-dev, rpp-dev, rocblas-dev, miopen-hip-dev, migraphx-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev, libopencv-dev") -# TBD - Some RPM packages need Fusion Packages - ffmpeg, libavcodec-devel, libavformat-devel, libavutil-devel, libswscale-devel, libopencv -set(MIVISIONX_RPM_DEV_PACKAGE_LIST "half, rocm-hip-runtime-devel, rpp-devel, rocblas-devel, miopen-hip-devel, migraphx-devel") +set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "half, rocm-hip-runtime-dev, rpp-dev, rocblas-dev, miopen-hip-dev, migraphx-dev, pkg-config, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev, libopencv-dev, libomp-dev") +# TBD - Some RPM packages need Fusion Packages - libavcodec-devel, libavformat-devel, libavutil-devel, libswscale-devel, libopencv +set(MIVISIONX_RPM_DEV_PACKAGE_LIST "half, rocm-hip-runtime-devel, rpp-devel, rocblas-devel, miopen-hip-devel, migraphx-devel, pkg-config, libomp-devel") -# Add rocDecode Deps - Exclude centos-7 -if (EXISTS "/etc/os-release") +# Add OS specific dependencies +if(EXISTS "/etc/os-release") file(READ "/etc/os-release" OS_RELEASE) - string(REGEX MATCH "CentOS-7" CENTOS_7_FOUND ${OS_RELEASE}) - #if(NOT CENTOS_7_FOUND) - Disable TBD: Turn on with package update - #set(MIVISIONX_RUNTIME_PACKAGE_LIST "${MIVISIONX_RUNTIME_PACKAGE_LIST}, rocdecode") - #set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "${MIVISIONX_DEBIAN_DEV_PACKAGE_LIST}, rocdecode-dev") - #set(MIVISIONX_RPM_DEV_PACKAGE_LIST "${MIVISIONX_RPM_DEV_PACKAGE_LIST}, rocdecode-devel") - #endif() + string(REGEX MATCH "22.04" UBUNTU_22_FOUND ${OS_RELEASE}) + if(UBUNTU_22_FOUND) + set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "${MIVISIONX_DEBIAN_DEV_PACKAGE_LIST}, libstdc++-12-dev") + endif() endif() # '%{?dist}' breaks manual builds on debian systems due to empty Provides diff --git a/MIVisionX-setup.py b/MIVisionX-setup.py index 7519e3077..210b077eb 100644 --- a/MIVisionX-setup.py +++ b/MIVisionX-setup.py @@ -30,7 +30,7 @@ __copyright__ = "Copyright 2018 - 2024, AMD ROCm MIVisionX" __license__ = "MIT" -__version__ = "3.8.0" +__version__ = "3.8.1" __email__ = "mivisionx.support@amd.com" __status__ = "Shipping" @@ -250,9 +250,7 @@ def ERROR_CHECK(waitval): inferenceDebianPackages = [ 'python3-dev', - 'python3-pip', - 'protobuf-compiler', - 'libprotoc-dev' + 'python3-pip' ] neuralNetRPMPackages = [ @@ -262,14 +260,9 @@ def ERROR_CHECK(waitval): 'migraphx-devel' ] -libPythonProto = "python3-protobuf" -if "centos" in os_info_data and "VERSION_ID=7" in os_info_data: - libPythonProto = "protobuf-python" inferenceRPMPackages = [ 'python3-devel', - 'python3-pip', - 'protobuf-devel', - str(libPythonProto) + 'python3-pip' ] pipNumpyVersion = "numpy==1.23.0" @@ -311,7 +304,6 @@ def ERROR_CHECK(waitval): ] ffmpegDebianPackages = [ - 'ffmpeg', 'libavcodec-dev', 'libavformat-dev', 'libavutil-dev', @@ -347,8 +339,7 @@ def ERROR_CHECK(waitval): 'libjpeg-devel', 'libpng-devel', 'libtiff-devel', - 'libavc1394', - 'unzip' + 'libavc1394' ] # update @@ -456,14 +447,15 @@ def ERROR_CHECK(waitval): # Install base Deps for i in range(len(pip3InferencePackagesRPM)): ERROR_CHECK(os.system('pip3 install '+ pip3InferencePackagesRPM[i])) - if "SLES" in platfromInfo or "Mariner" in platfromInfo or "redhat-8" in platfromInfo: - ERROR_CHECK(os.system('mkdir -p '+modelCompilerDeps+'/nnef-deps')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps; git clone -b nnef-v1.0.0 https://github.com/KhronosGroup/NNEF-Tools.git)')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/cpp; mkdir -p build && cd build; '+linuxCMake+' ..; make -j$(nproc); sudo make install)')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/python; sudo python3 setup.py install)')) + # NNEF Manual Install + if "SLES" in platfromInfo or "Mariner" in platfromInfo or "redhat-8" in platfromInfo: + ERROR_CHECK(os.system('mkdir -p '+modelCompilerDeps+'/nnef-deps')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps; git clone -b nnef-v1.0.0 https://github.com/KhronosGroup/NNEF-Tools.git)')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/cpp; mkdir -p build && cd build; '+linuxCMake+' ..; make -j$(nproc); sudo make install)')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/python; sudo python3 setup.py install)')) else: print("STATUS: Model Compiler Deps Pre-Installed - " +modelCompilerDeps+"\n") else: diff --git a/README.md b/README.md index dc4e15683..e5ca895fe 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) -[![doc](https://img.shields.io/badge/doc-readthedocs-blueviolet)](https://rocm.docs.amd.com/projects/MIVisionX/en/latest/doxygen/html/index.html) +[![doc](https://img.shields.io/badge/doc-readthedocs-blueviolet)](https://rocm.docs.amd.com/projects/MIVisionX/en/latest/)

@@ -64,7 +64,7 @@ MIVisionX toolkit provides tools for accomplishing your tasks throughout the who ### Hardware * **CPU**: [AMD64](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) -* **GPU**: [AMD Radeon™ Graphics](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) [optional] +* **GPU**: [AMD Radeon™ Graphics](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) / [AMD Instinct™ Accelerators](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) [optional] * **APU**: [AMD Radeon™ `Mobile`/`Embedded`](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) [optional] > [!IMPORTANT] @@ -83,8 +83,12 @@ MIVisionX toolkit provides tools for accomplishing your tasks throughout the who #### macOS * macOS - Ventura `13` / Sonoma `14` / Sequoia `15` -### Libraries +### Compiler * AMD Clang++ Version `18.0.0` or later - installed with ROCm +>[!NOTE] +> AMD Clang++ is the preferred compiler, users can change this with the `CMAKE_CXX_COMPILER` variable + +### Libraries * CMake - Version `3.10` and above ```shell sudo apt install cmake @@ -117,7 +121,7 @@ MIVisionX toolkit provides tools for accomplishing your tasks throughout the who ```shell sudo apt install pkg-config ``` -* FFmpeg - Version `4.X` +* FFmpeg - Version `4.4.2` and above ```shell sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev ``` @@ -167,7 +171,7 @@ Install MIVisionX runtime, development, and test packages. > [!IMPORTANT] > * Package install supports `HIP` backend. For OpenCL backend build from source. -> * `CentOS`/`RedHat`/`SLES` requires `OpenCV` & `FFMPEG` development packages manually installed +> * `RedHat`/`SLES` requires `OpenCV` & `FFMPEG` development packages manually installed #### Source install @@ -177,7 +181,7 @@ For your convenience, we provide the setup script, `MIVisionX-setup.py`, which i ```shell python MIVisionX-setup.py --directory [setup directory - optional (default:~/)] - --opencv [OpenCV Version - optional (default:4.6.0)] + --opencv [OpenCV Version - optional (default for non Ubuntu:4.6.0)] --ffmpeg [FFMPEG Installation - optional (default:ON) [options:ON/OFF]] --amd_rpp [MIVisionX VX RPP Dependency Install - optional (default:ON) [options:ON/OFF]] --neural_net[MIVisionX Neural Net Dependency Install - optional (default:ON) [options:ON/OFF]] @@ -301,12 +305,11 @@ ctest -VV ## Docker -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. +MIVisionX provides developers with docker images for Ubuntu `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 files to build MIVisionX containers and suggested workflow are [available](docker/README.md#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) ## Documentation @@ -353,12 +356,10 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release * OpenCV - `4.6` * FFMPEG - [n4.4.2](https://github.com/FFmpeg/FFmpeg/releases/tag/n4.4.2) * Dependencies for all the above packages -* MIVisionX Setup Script - `V3.8.0` +* MIVisionX Setup Script - `V3.8.1` ### Known issues - -* Package install `OpenCV` manual install -* Package install in `RHEL`/`SLES`/`CentOS` requires manual `FFMPEG Dev` install +* MIVisionX Package install in `RHEL`/`SLES` requires manual `OpenCV` and `FFMPEG` development packages installed ## MIVisionX dependency map @@ -374,8 +375,8 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release | `Level_1` | cmake
gcc
g++ | amd_openvx
utilities | ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libopenvx.so` - OpenVX™ Lib - CPU
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvxu.so` - OpenVX™ immediate node Lib - CPU
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `runvx` - OpenVX™ Graph Executor - CPU with Display OFF | [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/kiritigowda/ubuntu-18.04/mivisionx-level-1?style=flat-square)](https://hub.docker.com/repository/docker/kiritigowda/ubuntu-18.04) | | `Level_2` | ROCm HIP
+Level 1 | amd_openvx
amd_openvx_extensions
utilities | ![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libopenvx.so` - OpenVX™ Lib - CPU/GPU
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvxu.so` - OpenVX™ immediate node Lib - CPU/GPU
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `runvx` - OpenVX™ Graph Executor - Display OFF | [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/kiritigowda/ubuntu-18.04/mivisionx-level-2?style=flat-square)](https://hub.docker.com/repository/docker/kiritigowda/ubuntu-18.04) | | `Level_3` | OpenCV
FFMPEG
+Level 2 | amd_openvx
amd_openvx_extensions
utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX™ Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX™ immediate node Lib
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_amd_media.so` - OpenVX™ Media Extension
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_opencv.so` - OpenVX™ OpenCV InterOp Extension
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `mv_compile` - Neural Net Model Compile
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `runvx` - OpenVX™ Graph Executor - Display ON | [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/kiritigowda/ubuntu-18.04/mivisionx-level-3?style=flat-square)](https://hub.docker.com/repository/docker/kiritigowda/ubuntu-18.04) | -| `Level_4` | MIOpen
MIGraphX
ProtoBuf
+Level 3 | amd_openvx
amd_openvx_extensions
apps
utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX™ Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX™ immediate node Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX™ Media Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX™ OpenCV InterOp Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX™ Graph Executor - Display ON
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_nn.so` - OpenVX™ 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
RPP deps
+Level 4 | amd_openvx
amd_openvx_extensions
apps
AMD VX RPP
utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX™ Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX™ immediate node Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX™ Media Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX™ OpenCV InterOp Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX™ Graph Executor - Display ON
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_nn.so` - OpenVX™ Neural Net Extension
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_rpp.so` - OpenVX™ RPP Extension | [![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) | +| `Level_4` | MIOpen
MIGraphX
+Level 3 | amd_openvx
amd_openvx_extensions
utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX™ Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX™ immediate node Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX™ Media Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX™ OpenCV InterOp Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX™ Graph Executor - Display ON
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_amd_migraphx.so` - OpenVX™ MIGraphX Extension
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_nn.so` - OpenVX™ 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
+Level 4 | amd_openvx
amd_openvx_extensions
utilities | ![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libopenvx.so` - OpenVX™ Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvxu.so` - OpenVX™ immediate node Lib
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_amd_media.so` - OpenVX™ Media Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_opencv.so` - OpenVX™ OpenCV InterOp Extension
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `mv_compile` - Neural Net Model Compile
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `runvx` - OpenVX™ Graph Executor - Display ON
![#1589F0](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/blue_square.png) `libvx_nn.so` - OpenVX™ Neural Net Extension
![#c5f015](https://raw.githubusercontent.com/ROCm/MIVisionX/master/docs/data/green_square.png) `libvx_rpp.so` - OpenVX™ RPP Extension | [![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) | > [!IMPORTANT] > OpenVX and the OpenVX logo are trademarks of the Khronos Group Inc. diff --git a/amd_openvx_extensions/CMakeLists.txt b/amd_openvx_extensions/CMakeLists.txt index adf54775e..3d47757de 100644 --- a/amd_openvx_extensions/CMakeLists.txt +++ b/amd_openvx_extensions/CMakeLists.txt @@ -78,9 +78,9 @@ if(GPU_SUPPORT) if(FFMPEG_FOUND) # TBD: FFMPEG multi-version support if(_FFMPEG_AVCODEC_VERSION VERSION_LESS 59.18.100 OR _FFMPEG_AVFORMAT_VERSION VERSION_LESS 59.16.100 OR _FFMPEG_AVUTIL_VERSION VERSION_LESS 57.17.100) - set(FFMPEG_VERSION_4 TRUE) + set(FFMPEG_VERSION_4 TRUE CACHE INTERNAL "") else() - set(FFMPEG_VERSION_4 FALSE) + set(FFMPEG_VERSION_4 FALSE CACHE INTERNAL "") endif() add_subdirectory(amd_media) message("-- ${Green}AMD OpenVX Media Extension -- amd_media module added${ColourReset}") diff --git a/amd_openvx_extensions/amd_media/CMakeLists.txt b/amd_openvx_extensions/amd_media/CMakeLists.txt index 258e66eaf..81c13dd35 100644 --- a/amd_openvx_extensions/amd_media/CMakeLists.txt +++ b/amd_openvx_extensions/amd_media/CMakeLists.txt @@ -78,7 +78,7 @@ elseif (GPU_SUPPORT AND "${BACKEND}" STREQUAL "HIP") target_link_libraries(${PROJECT_NAME} hip::host) endif() set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) -if (FFMPEG_VERSION_4) +if(FFMPEG_VERSION_4) target_compile_definitions(${PROJECT_NAME} PUBLIC WITH_FFMPEG_VERSION_4=1) else() target_compile_definitions(${PROJECT_NAME} PUBLIC WITH_FFMPEG_VERSION_4=0) diff --git a/docs/install/installation.rst b/docs/install/installation.rst index 8fbef75af..78c71014a 100644 --- a/docs/install/installation.rst +++ b/docs/install/installation.rst @@ -37,18 +37,21 @@ Operating Systems * Windows 10 or 11 * macOS Ventura 13 or Sonoma 14 -Libraries +Compiler ------------------ * AMD Clang++ + +Libraries +------------------ * CMake - Version 3.10 and above * Half-precision floating-point(half) library - Version `1.12.0` * MIOpen * MIGraphX * RPP -* OpenCV - Version 3.X or 4.X * OpenMP * pkg-config -* FFmpeg - Version 4.X +* OpenCV - Version 3.X or 4.X +* FFmpeg - Version 4.4.2 and above Linux installation =========================== @@ -330,8 +333,8 @@ MIVisionX dependency map Level_1, cmake |br| gcc |br| g++, amd_openvx |br| utilities, |green-sq| ``libopenvx.so`` - OpenVX Lib - CPU |br| |green-sq| ``libvxu.so`` - OpenVX immediate node Lib - CPU |br| |green-sq| ``runvx`` - OpenVX Graph Executor - CPU with Display OFF, |ub-lvl1| Level_2, ROCm HIP |br| +Level 1, amd_openvx |br| amd_openvx_extensions |br| utilities, |green-sq| ``libopenvx.so`` - OpenVX Lib - CPU/GPU |br| |green-sq| ``libvxu.so`` - OpenVX immediate node Lib - CPU/GPU |br| |green-sq| ``runvx`` - OpenVX Graph Executor - Display OFF, |ub-lvl2| Level_3, OpenCV |br| FFMPEG |br| +Level 2, amd_openvx |br| amd_openvx_extensions |br| utilities, |blue-sq| ``libopenvx.so`` - OpenVX Lib |br| |blue-sq| ``libvxu.so`` - OpenVX immediate node Lib |br| |green-sq| ``libvx_amd_media.so`` - OpenVX Media Extension |br| |green-sq| ``libvx_opencv.so`` - OpenVX OpenCV InterOp Extension |br| |green-sq| ``mv_compile`` - Neural Net Model Compile |br| |green-sq| ``runvx`` - OpenVX Graph Executor - Display ON, |ub-lvl3| - Level_4, MIOpen |br| MIGraphX |br| ProtoBuf |br| +Level 3, amd_openvx |br| amd_openvx_extensions |br| apps |br| utilities, |blue-sq| ``libopenvx.so`` - OpenVX Lib |br| |blue-sq| ``libvxu.so`` - OpenVX immediate node Lib |br| |blue-sq| ``libvx_amd_media.so`` - OpenVX Media Extension |br| |blue-sq| ``libvx_opencv.so`` - OpenVX OpenCV InterOp Extension |br| |blue-sq| ``mv_compile`` - Neural Net Model Compile |br| |blue-sq| ``runvx`` - OpenVX Graph Executor - Display ON |br| |green-sq| ``libvx_nn.so`` - OpenVX Neural Net Extension, |ub-lvl4| - Level_5, AMD_RPP |br| RPP deps |br| +Level 4, amd_openvx |br| amd_openvx_extensions |br| apps |br| AMD VX RPP |br| utilities, |blue-sq| ``libopenvx.so`` - OpenVX Lib |br| |blue-sq| ``libvxu.so`` - OpenVX immediate node Lib |br| |blue-sq| ``libvx_amd_media.so`` - OpenVX Media Extension |br| |blue-sq| ``libvx_opencv.so`` - OpenVX OpenCV InterOp Extension |br| |blue-sq| ``mv_compile`` - Neural Net Model Compile |br| |blue-sq| ``runvx`` - OpenVX Graph Executor - Display ON |br| |blue-sq| ``libvx_nn.so`` - OpenVX Neural Net Extension |br| |green-sq| ``libvx_rpp.so`` - OpenVX RPP Extension, |ub-lvl5| + Level_4, MIOpen |br| MIGraphX |br| +Level 3, amd_openvx |br| amd_openvx_extensions |br| utilities, |blue-sq| ``libopenvx.so`` - OpenVX Lib |br| |blue-sq| ``libvxu.so`` - OpenVX immediate node Lib |br| |blue-sq| ``libvx_amd_media.so`` - OpenVX Media Extension |br| |blue-sq| ``libvx_opencv.so`` - OpenVX OpenCV InterOp Extension |br| |blue-sq| ``mv_compile`` - Neural Net Model Compile |br| |blue-sq| ``runvx`` - OpenVX Graph Executor - Display ON |br| |green-sq| ``libvx_nn.so`` - OpenVX Neural Net Extension |br| |green-sq| ``libvx_amd_migraphx.so`` - OpenVX MIGraphX Extension, |ub-lvl4| + Level_5, AMD RPP |br| +Level 4, amd_openvx |br| amd_openvx_extensions |br| utilities, |blue-sq| ``libopenvx.so`` - OpenVX Lib |br| |blue-sq| ``libvxu.so`` - OpenVX immediate node Lib |br| |blue-sq| ``libvx_amd_media.so`` - OpenVX Media Extension |br| |blue-sq| ``libvx_opencv.so`` - OpenVX OpenCV InterOp Extension |br| |blue-sq| ``mv_compile`` - Neural Net Model Compile |br| |blue-sq| ``runvx`` - OpenVX Graph Executor - Display ON |br| |blue-sq| ``libvx_nn.so`` - OpenVX Neural Net Extension |br| |green-sq| ``libvx_rpp.so`` - OpenVX RPP Extension, |ub-lvl5| .. note:: diff --git a/tests/neural_network_tests/runNeuralNetworkTests.py b/tests/neural_network_tests/runNeuralNetworkTests.py index c9fb72f82..be2568876 100644 --- a/tests/neural_network_tests/runNeuralNetworkTests.py +++ b/tests/neural_network_tests/runNeuralNetworkTests.py @@ -230,17 +230,13 @@ def script_info(): inferenceDebianPackages = [ 'inxi', 'python3-dev', - 'python3-pip', - 'protobuf-compiler', - 'libprotoc-dev' + 'python3-pip' ] inferenceRPMPackages = [ 'inxi', 'python3-devel', - 'python3-pip', - 'protobuf-devel', - 'python3-protobuf' + 'python3-pip' ] # Debian based @@ -364,14 +360,14 @@ def script_info(): ' '+linuxSystemInstall_check+' install -y '+ inferenceRPMPackages[i])) for i in range(len(pip3InferencePackagesRPM)): ERROR_CHECK(os.system('pip3 install '+ pip3InferencePackagesRPM[i])) - if "SLES" in platfromInfo or "Mariner" in platfromInfo or "redhat-8" in platfromInfo: - ERROR_CHECK(os.system('mkdir -p '+modelCompilerDeps+'/nnef-deps')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps; git clone -b nnef-v1.0.0 https://github.com/KhronosGroup/NNEF-Tools.git)')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/cpp; mkdir -p build && cd build; '+linuxCMake+' ..; make -j$(nproc); sudo make install)')) - ERROR_CHECK(os.system( - '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/python; sudo python3 setup.py install)')) + if "SLES" in platfromInfo or "Mariner" in platfromInfo or "redhat-8" in platfromInfo: + ERROR_CHECK(os.system('mkdir -p '+modelCompilerDeps+'/nnef-deps')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps; git clone -b nnef-v1.0.0 https://github.com/KhronosGroup/NNEF-Tools.git)')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/cpp; mkdir -p build && cd build; '+linuxCMake+' ..; make -j$(nproc); sudo make install)')) + ERROR_CHECK(os.system( + '(cd '+modelCompilerDeps+'/nnef-deps/NNEF-Tools/parser/python; sudo python3 setup.py install)')) else: print("STATUS: Model Compiler Deps Pre-Installed - "+modelCompilerDeps+"\n") if "centos-7" in platfromInfo: