From b866e800f4354129ecc2351376689d23d2e3f12b Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Fri, 6 Sep 2024 11:58:40 -0700 Subject: [PATCH] Package - Updates (#1420) * Package - Updates * Changelog - Fix --- CHANGELOG.md | 74 ++++++++++++++++++++++++++++++++++++---------- CMakeLists.txt | 29 +++++++++--------- MIVisionX-setup.py | 40 ++++++++++++------------- README.md | 6 ++-- 4 files changed, 95 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 524b44bc5..a8200f5b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,47 @@ Documentation for MIVisionX is available at [https://rocm.docs.amd.com/projects/MIVisionX/en/latest/doxygen/html/index.html](https://rocm.docs.amd.com/projects/MIVisionX/en/latest/doxygen/html/index.html) -## MIVisionX 3.0.0 +## MIVisionX 3.1.0 (unreleased) -### Additions +### Changes +* Setup: rocdecode install disabled +* Package: rocdecode dependency removed + +### Removals + +### Optimizations + +### Resolved issues + +### Known issues +* Package install requires `OpenCV` manual install +* CentOS/RedHat/SLES requires `FFMPEG Dev` package manual install +* Hardware decode requires rocm usecase `graphics` + +### Upcoming changes +* Optimized audio augmentations support for VX_RPP + +### Tested configurations +* Windows `10` / `11` +* Linux distribution + + Ubuntu - `20.04` / `22.04` + + CentOS - `7` + + RHEL - `8` / `9` + + SLES - `15-SP5` +* ROCm: rocm-core - `6.3.0.60300` +* RPP - `1.9.0.60300` +* miopen-hip - `3.2.0.60300` +* migraphx - `2.11.0.60300` +* OpenCV - [4.6.0](https://github.com/opencv/opencv/releases/tag/4.6.0) +* FFMPEG - [n4.4.2](https://github.com/FFmpeg/FFmpeg/releases/tag/n4.4.2) +* Dependencies for all the above packages +* MIVisionX Setup Script - `V3.7.0` + +## MIVisionX 3.0.0 for ROCm 6.3.0 + +### Changes + * Support for advanced GPUs * Support for PreEmphasis Filter augmentation in openVX extensions * Support for Spectrogram augmentation in openVX extensions @@ -18,21 +55,31 @@ Documentation for MIVisionX is available at * Support for Mel-Filter bank and Normalize augmentations in openVX extensions * Tests - New Tests for all modules +### Removals + +* rocAL: Deprecated with V3.0.0, rocAL will be available at https://github.com/ROCm/rocAL + ### Optimizations - + * Readme * Setup - CentOS 7 support * Setup - SLES 15 SP5 support * FindPackage modules updated - FindMIVisionX + +### Resolved issues + +* MIVisionX compatibility fix - Resample and pre-emphasis filter +* Docs - fix broken image links + +### Known issues -### Changes - -* rocAL: Deprecated with V3.0.0, rocAL will be available at https://github.com/ROCm/rocAL - -### Fixes - -* Dependencies -* Setup bugfix +* Package install requires `OpenCV` manual install +* CentOS/RedHat/SLES requires `FFMPEG Dev` package manual install +* Hardware decode requires rocm usecase `graphics` + +### Upcoming changes + +* Optimized audio augmentations support for VX_RPP ### Tested configurations @@ -51,11 +98,6 @@ Documentation for MIVisionX is available at * Dependencies for all the above packages * MIVisionX Setup Script - `V3.6.0` -### Known issues - -* Package install requires `OpenCV V4.6` manual install -* CentOS/RedHat/SLES requires `FFMPEG Dev` package manual install - ## MIVisionX 2.5.0 ### Additions diff --git a/CMakeLists.txt b/CMakeLists.txt index f05a2011b..15fb6c316 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. cmake_minimum_required(VERSION 3.5) -set(VERSION "3.0.0") +set(VERSION "3.1.0") # Set Project Version and Language project(mivisionx VERSION ${VERSION} LANGUAGES CXX) @@ -217,23 +217,22 @@ if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE}) endif() # Set the dependent packages -set(MIVISIONX_DEBIAN_PACKAGE_LIST "rocm-hip-runtime, rpp, rocblas, miopen-hip, migraphx") -set(MIVISIONX_RPM_PACKAGE_LIST "rocm-hip-runtime, rpp, rocblas, miopen-hip, migraphx") +set(MIVISIONX_RUNTIME_PACKAGE_LIST "rocm-hip-runtime, rpp, rocblas, miopen-hip, migraphx") + # Set the dev dependent packages -set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "rocm-hip-runtime-dev, half, rpp-dev, rocblas-dev, miopen-hip-dev, migraphx-dev, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev") +set(MIVISIONX_DEBIAN_DEV_PACKAGE_LIST "half, rocm-hip-runtime-dev, rpp-dev, rocblas-dev, miopen-hip-dev, migraphx-dev, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev, libswscale-dev") # TBD - Some RPM packages need Fusion Packages - ffmpeg, libavcodec-devel, libavformat-devel, libavutil-devel, libswscale-devel -set(MIVISIONX_RPM_DEV_PACKAGE_LIST "rocm-hip-runtime-devel, half, rpp-devel, rocblas-devel, miopen-hip-devel, migraphx-devel") +set(MIVISIONX_RPM_DEV_PACKAGE_LIST "half, rocm-hip-runtime-devel, rpp-devel, rocblas-devel, miopen-hip-devel, migraphx-devel") # Add rocDecode Deps - Exclude centos-7 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) - set(MIVISIONX_DEBIAN_PACKAGE_LIST "${MIVISIONX_DEBIAN_PACKAGE_LIST}, rocdecode") - set(MIVISIONX_RPM_PACKAGE_LIST "${MIVISIONX_RPM_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() + #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() endif() # '%{?dist}' breaks manual builds on debian systems due to empty Provides @@ -255,25 +254,25 @@ set(CPACK_RPM_PACKAGE_AUTOREQPROV "no") # Debian package - COMPONENT set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}") -set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "rocm-core, ${MIVISIONX_DEBIAN_PACKAGE_LIST}") +set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "rocm-core, ${MIVISIONX_RUNTIME_PACKAGE_LIST}") set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${PROJECT_NAME}-dev") set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "rocm-core, ${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME}, ${MIVISIONX_DEBIAN_DEV_PACKAGE_LIST}") # Debian package - specific variable for ASAN set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) -set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "rocm-core-asan, ${MIVISIONX_DEBIAN_PACKAGE_LIST}" ) +set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "rocm-core-asan, ${MIVISIONX_RUNTIME_PACKAGE_LIST}" ) # Debian package - Test set(CPACK_DEBIAN_TEST_PACKAGE_NAME "${PROJECT_NAME}-test" ) set(CPACK_DEBIAN_TEST_PACKAGE_DEPENDS "rocm-core, ${CPACK_DEBIAN_DEV_PACKAGE_NAME}" ) # RPM package - COMPONENT set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}") -set(CPACK_RPM_RUNTIME_PACKAGE_REQUIRES "rocm-core, ${MIVISIONX_RPM_PACKAGE_LIST}") +set(CPACK_RPM_RUNTIME_PACKAGE_REQUIRES "rocm-core, ${MIVISIONX_RUNTIME_PACKAGE_LIST}") set(CPACK_RPM_DEV_PACKAGE_NAME "${PROJECT_NAME}-devel") set(CPACK_RPM_DEV_PACKAGE_REQUIRES "rocm-core, ${CPACK_RPM_RUNTIME_PACKAGE_NAME}, ${MIVISIONX_RPM_DEV_PACKAGE_LIST}") # RPM package - specific variable for ASAN set(CPACK_RPM_ASAN_PACKAGE_NAME "${PROJECT_NAME}-asan" ) -set(CPACK_RPM_ASAN_PACKAGE_REQUIRES "rocm-core-asan, ${MIVISIONX_RPM_PACKAGE_LIST}" ) +set(CPACK_RPM_ASAN_PACKAGE_REQUIRES "rocm-core-asan, ${MIVISIONX_RUNTIME_PACKAGE_LIST}" ) # RPM package specific variable for ASAN set(CPACK_RPM_TEST_PACKAGE_NAME "${PROJECT_NAME}-test" ) set(CPACK_RPM_TEST_PACKAGE_REQUIRES "rocm-core, ${CPACK_RPM_DEV_PACKAGE_NAME}" ) diff --git a/MIVisionX-setup.py b/MIVisionX-setup.py index cc309d172..f0651990d 100644 --- a/MIVisionX-setup.py +++ b/MIVisionX-setup.py @@ -30,7 +30,7 @@ __copyright__ = "Copyright 2018 - 2024, AMD ROCm MIVisionX" __license__ = "MIT" -__version__ = "3.6.0" +__version__ = "3.7.0" __email__ = "mivisionx.support@amd.com" __status__ = "Shipping" @@ -295,7 +295,7 @@ def ERROR_CHECK(call): pipNNEFversion = "nnef==1.0.7" if "VERSION_ID=7" in os_info_data or "VERSION_ID=8" in os_info_data: pipNumpyVersion = "numpy==1.19.5" - pipNNEFversion = "protobuf==3.12.4" # TBD: NO NNEF Package for SLES + pipNNEFversion = "protobuf==3.12.4" # TBD: NO NNEF Package for RHEL 7/8 if "NAME=SLES" in os_info_data: pipNumpyVersion = "numpy==1.19.5" pipProtoVersion= "protobuf==3.19.5" @@ -399,15 +399,15 @@ def ERROR_CHECK(call): ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + ' '+linuxSystemInstall_check+' install -y '+ rppRPMPackages[i])) - # rocDecode - if "Ubuntu" in platfromInfo: - for i in range(len(rocdecodeDebianPackages)): - ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + - ' '+linuxSystemInstall_check+' install -y '+ rocdecodeDebianPackages[i])) - elif "redhat-7" not in platfromInfo: - for i in range(len(rocdecodeRPMPackages)): - ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + - ' '+linuxSystemInstall_check+' install -y '+ rocdecodeRPMPackages[i])) + # rocDecode - Disable -- TBD: Turn on with package update + # if "Ubuntu" in platfromInfo: + # for i in range(len(rocdecodeDebianPackages)): + # ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + + # ' '+linuxSystemInstall_check+' install -y '+ rocdecodeDebianPackages[i])) + # elif "redhat-7" not in platfromInfo: + # for i in range(len(rocdecodeRPMPackages)): + # ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + + # ' '+linuxSystemInstall_check+' install -y '+ rocdecodeRPMPackages[i])) print("\nMIVisionX Dependencies Re-Installed with MIVisionX-setup.py V-"+__version__+" on "+platfromInfo+"\n") exit() @@ -494,15 +494,15 @@ def ERROR_CHECK(call): else: print("\nSTATUS: MIVisionX Setup: AMD VX RPP only supported with HIP backend\n") - # rocDecode - if "Ubuntu" in platfromInfo: - for i in range(len(rocdecodeDebianPackages)): - ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + - ' '+linuxSystemInstall_check+' install -y '+ rocdecodeDebianPackages[i])) - elif "redhat-7" not in platfromInfo: - for i in range(len(rocdecodeRPMPackages)): - ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + - ' '+linuxSystemInstall_check+' install -y '+ rocdecodeRPMPackages[i])) + # rocDecode - Disable TBD: Turn on with package update + # if "Ubuntu" in platfromInfo: + # for i in range(len(rocdecodeDebianPackages)): + # ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + + # ' '+linuxSystemInstall_check+' install -y '+ rocdecodeDebianPackages[i])) + # elif "redhat-7" not in platfromInfo: + # for i in range(len(rocdecodeRPMPackages)): + # ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall + + # ' '+linuxSystemInstall_check+' install -y '+ rocdecodeRPMPackages[i])) # Install ffmpeg if ffmpegInstall == 'ON': diff --git a/README.md b/README.md index 9134d3206..95fa86b8f 100644 --- a/README.md +++ b/README.md @@ -309,12 +309,12 @@ Review all notable [changes](CHANGELOG.md#changelog) with the latest release * OpenCV - [4.6.0](https://github.com/opencv/opencv/releases/tag/4.6.0) * FFMPEG - [n4.4.2](https://github.com/FFmpeg/FFmpeg/releases/tag/n4.4.2) * Dependencies for all the above packages -* MIVisionX Setup Script - `V3.6.0` +* MIVisionX Setup Script - `V3.7.0` ### Known issues -* OpenCV 4.X support for some apps missing -* MIVisionX Package install requires manual prerequisites installation +* Package install `OpenCV` manual install +* Package install in `RHEL`/`SLES`/`CentOS` requires manual `FFMPEG Dev` install ## MIVisionX dependency map