From c8ff82a943b9db97eac4d79b8328c84c4137b7fa Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Fri, 15 Nov 2024 12:35:53 -0800 Subject: [PATCH] SLES - Updates (#454) * SLES - Updates * Updates * Cleanup * Update CHANGELOG.md Co-authored-by: spolifroni-amd * CXX Compiler - Use AMD Clang++ * Docs - Updates * ROCm Version - Upgraded to 6.3.0 * Readme - cleanup * Readme - minor updates * Readme - Fix note --------- Co-authored-by: spolifroni-amd [ROCm/rocdecode commit: 6339767b4c26ec2496d4b03be4422d01d8d952f7] --- projects/rocdecode/CHANGELOG.md | 27 ++++++++++++++ projects/rocdecode/CMakeLists.txt | 26 +++++++------ projects/rocdecode/README.md | 37 ++++++++----------- projects/rocdecode/api/rocdecode_version.h | 2 +- .../docs/install/rocDecode-prerequisites.rst | 8 ++-- projects/rocdecode/rocDecode-setup.py | 13 ++----- .../samples/videoDecode/CMakeLists.txt | 4 +- .../samples/videoDecodeBatch/CMakeLists.txt | 4 +- .../samples/videoDecodeMem/CMakeLists.txt | 4 +- .../videoDecodeMultiFiles/CMakeLists.txt | 4 +- .../samples/videoDecodePerf/CMakeLists.txt | 4 +- .../samples/videoDecodeRGB/CMakeLists.txt | 9 ++--- .../samples/videoToSequence/CMakeLists.txt | 4 +- projects/rocdecode/test/CMakeLists.txt | 2 +- 14 files changed, 82 insertions(+), 66 deletions(-) diff --git a/projects/rocdecode/CHANGELOG.md b/projects/rocdecode/CHANGELOG.md index 7232568bef..4bf5897696 100644 --- a/projects/rocdecode/CHANGELOG.md +++ b/projects/rocdecode/CHANGELOG.md @@ -2,6 +2,33 @@ Full documentation for rocDecode is available at [https://rocm.docs.amd.com/projects/rocDecode/en/latest/](https://rocm.docs.amd.com/projects/rocDecode/en/latest/) +## (Unreleased) rocDecode 0.9.0 + +### Changed + +* AMD Clang++ is now the default CXX compiler. +* `rocDecode-setup.py` setup script updates to common package install: Setup no longer installs public clang package. + +### Removed + +* + +### Resolved issues + +* + +### Tested configurations + +* Linux + * Ubuntu - `22.04` / `24.04` + * RHEL - `8` / `9` + * SLES - `15 SP5` +* ROCm: `6.3.0` +* libva-amdgpu-dev - `2.16.0` +* mesa-amdgpu-va-drivers - `1:24.3.0` +* FFmpeg - `4.4.2` / `6.1.1` +* rocDecode Setup Script - `V2.4.0` + ## rocDecode 0.8.0 for ROCm 6.3 ### Changed diff --git a/projects/rocdecode/CMakeLists.txt b/projects/rocdecode/CMakeLists.txt index 904dfcab71..750cd5c52e 100644 --- a/projects/rocdecode/CMakeLists.txt +++ b/projects/rocdecode/CMakeLists.txt @@ -21,13 +21,24 @@ # # ############################################################################## -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.10) + +# ROCM Path +if(DEFINED ENV{ROCM_PATH}) + set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") +elseif(ROCM_PATH) + message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") +else() + set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") +endif() + +# Set AMD Clang as default compiler if (NOT DEFINED CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER clang++) + set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) endif() # NOTE: Match version with api/rocdecode_version.h -set(VERSION "0.8.0") +set(VERSION "0.9.0") set(CMAKE_CXX_STANDARD 17) # Set Project Version and Language @@ -45,14 +56,6 @@ find_program(MAKE_NSIS_EXE makensis) find_program(RPMBUILD_EXE rpmbuild) find_program(DPKG_EXE dpkg) -# ROCM Path -if(DEFINED ENV{ROCM_PATH}) - set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path") -elseif(ROCM_PATH) - message("-- INFO:ROCM_PATH Set -- ${ROCM_PATH}") -else() - set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path") -endif() # avoid setting the default installation path to /usr/local if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX ${ROCM_PATH} CACHE PATH "rocDecode default installation path" FORCE) @@ -78,7 +81,6 @@ message("-- ${BoldBlue}rocDecode Install Path -- ${CMAKE_INSTALL_PREFIX}${Colour list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH} ${ROCM_PATH}/hip) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) # rocDecode Build Type if(NOT CMAKE_BUILD_TYPE) diff --git a/projects/rocdecode/README.md b/projects/rocdecode/README.md index ce396f47d8..b0c1baeee1 100644 --- a/projects/rocdecode/README.md +++ b/projects/rocdecode/README.md @@ -17,7 +17,7 @@ access the video decoding features available on your GPU. ## Prerequisites * Linux distribution - * Ubuntu - `20.04` / `22.04` + * Ubuntu - `22.04` / `24.04` * RHEL - `8` / `9` * SLES - `15 SP5` @@ -25,17 +25,17 @@ access the video decoding features available on your GPU. > [!IMPORTANT] > `gfx908` or higher GPU required -* Install ROCm `6.1.0` or later with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html): Required usecase - rocm +* Install ROCm `6.3.0` or later with [amdgpu-install](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html): Required usecase - rocm > [!IMPORTANT] > `sudo amdgpu-install --usecase=rocm` -* [Video Acceleration API](https://en.wikipedia.org/wiki/Video_Acceleration_API) - `Libva` is an implementation for VA-API +* [Video Acceleration API](https://en.wikipedia.org/wiki/Video_Acceleration_API) - `libva-amdgpu-dev` is an AMD implementation for VA-API ```shell sudo apt install libva-amdgpu-dev ``` > [!NOTE] -> RPM Packages for `RHEL`/`SLES` - `libva-amdgpu-devel` -> libva-amdgpu is strongly recommended over system libva as it is used for building mesa-amdgpu-va-driver +> * RPM Packages for `RHEL`/`SLES` - `libva-amdgpu-devel` +> * `libva-amdgpu` is strongly recommended over system `libva` as it is used for building mesa-amdgpu-va-driver * AMD VA Drivers ```shell @@ -44,16 +44,13 @@ access the video decoding features available on your GPU. > [!NOTE] > RPM Packages for `RHEL`/`SLES` - `libva-amdgpu mesa-amdgpu-va-drivers` -* CMake Version `3.5` or later +* CMake Version `3.10` or later ```shell sudo apt install cmake ``` -* Clang Version `5.0.1` or later - ```shell - sudo apt install clang - ``` +* AMD Clang++ Version `18.0.0` or later - installed with ROCm * [pkg-config](https://en.wikipedia.org/wiki/Pkg-config) @@ -76,7 +73,6 @@ access the video decoding features available on your GPU. >[!NOTE] > * All package installs are shown with the `apt` package manager. Use the appropriate package manager for your operating system. -> * To install rocDecode with minimum requirements, follow the [quick-start](./docs/install/quick-start.rst) instructions ### Prerequisites setup script @@ -94,9 +90,10 @@ 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.1.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` +* Install ROCm `6.3.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. +>[!IMPORTANT] +> Use **either** [package install](#package-install) **or** [source install](#source-install) as described below. ### Package install @@ -219,13 +216,11 @@ You can find rocDecode Docker containers in our ## Tested configurations * Linux - * Ubuntu - `20.04` / `22.04` + * Ubuntu - `22.04` / `24.04` * RHEL - `8` / `9` * SLES - `15 SP5` -* ROCm: - * rocm-core - `6.2.0.60200-66` - * amdgpu-core - `1:6.2.60200-2009582` -* libva-dev - `2.7.0-2` / `2.14.0-1` -* mesa-amdgpu-va-drivers - `1:24.2.0.60200-2009582` -* FFmpeg - `4.2.7` / `4.4.2-0` -* rocDecode Setup Script - `V2.2.0` +* ROCm: `6.3.0` +* libva-amdgpu-dev - `2.16.0` +* mesa-amdgpu-va-drivers - `1:24.3.0` +* FFmpeg - `4.4.2` / `6.1.1` +* rocDecode Setup Script - `V2.4.0` diff --git a/projects/rocdecode/api/rocdecode_version.h b/projects/rocdecode/api/rocdecode_version.h index 3c9955fc24..403fc555e5 100644 --- a/projects/rocdecode/api/rocdecode_version.h +++ b/projects/rocdecode/api/rocdecode_version.h @@ -35,7 +35,7 @@ extern "C" { #endif /* NOTE: Match version with CMakeLists.txt */ #define ROCDECODE_MAJOR_VERSION 0 -#define ROCDECODE_MINOR_VERSION 8 +#define ROCDECODE_MINOR_VERSION 9 #define ROCDECODE_MICRO_VERSION 0 diff --git a/projects/rocdecode/docs/install/rocDecode-prerequisites.rst b/projects/rocdecode/docs/install/rocDecode-prerequisites.rst index 5c27827f57..d3ad6b940f 100644 --- a/projects/rocdecode/docs/install/rocDecode-prerequisites.rst +++ b/projects/rocdecode/docs/install/rocDecode-prerequisites.rst @@ -16,7 +16,7 @@ ROCm must be installed using the [AMDGPU installer](https://rocm.docs.amd.com/pr rocDecode can be installed on the following Linux environments: -* Ubuntu 20.04, 22.04 +* Ubuntu 22.04, 24.04 * RHEL 8 or 9 * SLES: 15-SP5 @@ -28,10 +28,10 @@ The following prerequisites are installed by the package installer. If you are b If you're installing using the rocDecode source code, the ``rocDecode-setup.py`` script must be run with ``--developer`` set to ``ON``. -* Libva, an implementation for Video Acceleration API (VA-API) +* Libva-amdgpu-dev, an AMD implementation for Video Acceleration API (VA-API) * AMD VA Drivers -* CMake version 3.5 or later -* Clang Version 5.0.1 or later +* CMake version 3.10 or later +* AMD Clang++ Version 18.0.0 or later * pkg-config * FFmpeg runtime and headers * libstdc++-12-dev for installations on Ubuntu 22.04 diff --git a/projects/rocdecode/rocDecode-setup.py b/projects/rocdecode/rocDecode-setup.py index 381b0a6064..ef48572267 100644 --- a/projects/rocdecode/rocDecode-setup.py +++ b/projects/rocdecode/rocDecode-setup.py @@ -29,7 +29,7 @@ else: import subprocess __copyright__ = "Copyright (c) 2023 - 2024, AMD ROCm rocDecode" -__version__ = "2.3.0" +__version__ = "2.4.0" __email__ = "mivisionx.support@amd.com" __status__ = "Shipping" @@ -160,12 +160,7 @@ if userName == 'root': # source install - common package dependencies commonPackages = [ - 'gcc', - 'clang', 'cmake', - 'git', - 'wget', - 'unzip', 'pkg-config', 'rocm-hip-runtime' ] @@ -173,7 +168,7 @@ commonPackages = [ # Debian packages coreDebianPackages = [ 'libva-amdgpu-dev', - 'rocm-hip-runtime-dev', + 'rocm-hip-runtime-dev' ] coreDebianU22Packages = [ 'libstdc++-12-dev' @@ -196,12 +191,12 @@ ffmpegDebianPackages = [ # RPM Packages coreRPMPackages = [ 'libva-amdgpu-devel', - 'rocm-hip-runtime-devel', + 'rocm-hip-runtime-devel' ] runtimeRPMPackages = [ 'libva-amdgpu', - 'libva-utils', 'mesa-amdgpu-va-drivers', + 'libva-utils' ] # update diff --git a/projects/rocdecode/samples/videoDecode/CMakeLists.txt b/projects/rocdecode/samples/videoDecode/CMakeLists.txt index 0f40f91044..30dbd903d2 100644 --- a/projects/rocdecode/samples/videoDecode/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecode/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecode) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/samples/videoDecodeBatch/CMakeLists.txt b/projects/rocdecode/samples/videoDecodeBatch/CMakeLists.txt index 322112a52f..d4458d1557 100644 --- a/projects/rocdecode/samples/videoDecodeBatch/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecodeBatch/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecodebatch) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/samples/videoDecodeMem/CMakeLists.txt b/projects/rocdecode/samples/videoDecodeMem/CMakeLists.txt index bf576f5205..c0eb2865c6 100644 --- a/projects/rocdecode/samples/videoDecodeMem/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecodeMem/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecodemem) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/samples/videoDecodeMultiFiles/CMakeLists.txt b/projects/rocdecode/samples/videoDecodeMultiFiles/CMakeLists.txt index d24770cfb1..2b9e90c7b2 100644 --- a/projects/rocdecode/samples/videoDecodeMultiFiles/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecodeMultiFiles/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecodemultifiles) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/samples/videoDecodePerf/CMakeLists.txt b/projects/rocdecode/samples/videoDecodePerf/CMakeLists.txt index c5cf40f3f7..d79dd765e6 100644 --- a/projects/rocdecode/samples/videoDecodePerf/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecodePerf/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecodeperf) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/samples/videoDecodeRGB/CMakeLists.txt b/projects/rocdecode/samples/videoDecodeRGB/CMakeLists.txt index 1c52edc994..0c976d4ae2 100644 --- a/projects/rocdecode/samples/videoDecodeRGB/CMakeLists.txt +++ b/projects/rocdecode/samples/videoDecodeRGB/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videodecodergb) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") @@ -57,10 +57,7 @@ else() endif() # Set supported GPU Targets -set(DEFAULT_GPU_TARGETS "gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102") -if (BUILD_WITH_AMD_ADVANCE) - set(DEFAULT_GPU_TARGETS ${DEFAULT_GPU_TARGETS} "gfx1200;gfx1201") -endif() +set(DEFAULT_GPU_TARGETS "gfx908;gfx90a;gfx942;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201") # Set AMD GPU_TARGETS if((AMDGPU_TARGETS OR DEFINED ENV{AMDGPU_TARGETS}) AND (NOT GPU_TARGETS)) diff --git a/projects/rocdecode/samples/videoToSequence/CMakeLists.txt b/projects/rocdecode/samples/videoToSequence/CMakeLists.txt index 09964f1e1d..0b8dd1b039 100644 --- a/projects/rocdecode/samples/videoToSequence/CMakeLists.txt +++ b/projects/rocdecode/samples/videoToSequence/CMakeLists.txt @@ -21,7 +21,7 @@ # ################################################################################ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(videotosequence) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake) list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}/hip ${ROCM_PATH}) -set(CMAKE_CXX_COMPILER ${ROCM_PATH}/lib/llvm/bin/clang++) +set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/amdclang++) # rocDecode sample build type set(DEFAULT_BUILD_TYPE "Release") diff --git a/projects/rocdecode/test/CMakeLists.txt b/projects/rocdecode/test/CMakeLists.txt index 88325e1f5a..e1f6f760be 100644 --- a/projects/rocdecode/test/CMakeLists.txt +++ b/projects/rocdecode/test/CMakeLists.txt @@ -20,7 +20,7 @@ # SOFTWARE. # # ############################################################################## -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.10) project(rocdecode-test)