Update CHANGELOG.md and README.md for ROCm 6.2

Change-Id: If062cb23290469beef0b04a146c485602377be5d
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Tá an tiomantas seo le fáil i:
Galantsev, Dmitrii
2024-06-26 17:24:41 -05:00
tuismitheoir d85657e5f2
tiomantas bd9901324c
D'athraigh 6 comhad le 71 breiseanna agus 163 scriosta
+1
Féach ar an gComhad
@@ -24,3 +24,4 @@ docs/_doxygen/
# misc
__pycache__/
authentication/CA/
+9
Féach ar an gComhad
@@ -2,6 +2,15 @@
Full documentation for RDC is available at [ROCm DataCenter Tool User Guide](https://rocm.docs.amd.com/projects/rdc/en/latest/).
## RDC for ROCm 6.2.0
- Added [rocprofiler](https://github.com/ROCm/rocprofiler) dmon metrics
- Added new ECC metrics
- Added [ROCmValidationSuite](https://github.com/ROCm/ROCmValidationSuite) diagnostic command
- Fully migrated to [AMDSMI](https://github.com/ROCm/amdsmi)
- Removed RASLIB dependency and blobs
- Removed [rocm_smi_lib](https://github.com/ROCm/rocm_smi_lib) dependency
## RDC for ROCm 6.1.0
- Added `--address` flag to rdcd
+11 -31
Féach ar an gComhad
@@ -26,9 +26,18 @@ cmake_minimum_required(VERSION 3.15)
set(RDC "rdc" CACHE INTERNAL "")
set(RDC_PACKAGE ${RDC} CACHE STRING "")
# ROCM_DIR should be passed in via command line
set(ROCM_DIR "/opt/rocm" CACHE PATH "ROCm directory.")
if(DEFINED ROCM_PATH)
message(WARNING "ROCM_PATH is not used by the build process! Did you mean to set ROCM_DIR instead?")
endif()
# Default libdir to "lib", this skips GNUInstallDirs from trying to take a guess if it's unset:
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory")
# Usually ROCM tools are installed into /opt/rocm
set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE PATH "Default installation directory.")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" CACHE INTERNAL "Default module path.")
# Include common cmake modules
include(utils)
@@ -69,9 +78,6 @@ if(DEFINED ENV{ADDRESS_SANITIZER})
endif()
option(ADDRESS_SANITIZER "Enable address sanitizer" ${ADDRESS_SANITIZER_DEFAULT})
# File reorganization enable/disable
option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" OFF)
option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" OFF)
option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON)
@@ -88,20 +94,13 @@ project(${RDC}
# this must go after project()
include(GNUInstallDirs)
# ROCM_DIR should be passed in via command line; it will be used
# in sub-projects. Override with -DROCM_DIR=
set(ROCM_DIR "/opt/rocm" CACHE PATH "ROCm directory.")
set(ROCM_PATH "${ROCM_DIR}" CACHE PATH "ROCm directory.")
set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common")
set(GRPC_ROOT_DEFAULT "/usr")
set(GRPC_ROOT ${GRPC_ROOT_DEFAULT} CACHE STRING "GRPC installation directory.")
set(GRPC_ROOT ${GRPC_ROOT_DEFAULT} CACHE PATH "GRPC installation directory.")
set(GRPC_DESIRED_VERSION 1.61.0 CACHE STRING "GRPC desired package version.")
set(RDC_SHARE_INSTALL_PREFIX "share/${RDC}" CACHE INTERNAL "Tests and Example install directory")
set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE STRING "Default installation directory.")
# add package search paths
list(APPEND CMAKE_PREFIX_PATH
${GRPC_ROOT}
@@ -120,7 +119,7 @@ set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc." CACHE STRING "")
set(CPACK_PACKAGE_CONTACT "RDC Support <rdc.support@amd.com>" CACHE STRING "")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Radeon Data Center Tools" CACHE STRING "")
set(CPACK_PACKAGE_DESCRIPTION "This package contains the AMD ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}." CACHE STRING "")
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix.")
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Default packaging prefix.")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" CACHE INTERNAL "")
set(CPACK_RPM_PACKAGE_LICENSE "MIT" CACHE INTERNAL "")
set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators.")
@@ -375,25 +374,6 @@ configure_file(
configure_file(
"${PROJECT_SOURCE_DIR}/src/RPM_postun.in"
"${PROJECT_SOURCE_DIR}/RPM/rpm_postun" FILE_PERMISSIONS ${INST_SCR_PERM})
#backward compatibility for file reorganization
if(FILE_REORG_BACKWARD_COMPATIBILITY)
# To enable/disable #error in wrapper header files
if(NOT DEFINED ROCM_HEADER_WRAPPER_WERROR)
if(DEFINED ENV{ROCM_HEADER_WRAPPER_WERROR})
set(ROCM_HEADER_WRAPPER_WERROR "$ENV{ROCM_HEADER_WRAPPER_WERROR}"
CACHE STRING "Header wrapper warnings as errors.")
else()
set(ROCM_HEADER_WRAPPER_WERROR "OFF" CACHE STRING "Header wrapper warnings as errors.")
endif()
endif()
if(ROCM_HEADER_WRAPPER_WERROR)
set(deprecated_error 1)
else()
set(deprecated_error 0)
endif()
include(rdc-backward-compat)
endif()
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}")
message("Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}")
+39 -18
Féach ar an gComhad
@@ -9,7 +9,11 @@ The ROCm™ Data Center Tool simplifies the administration and addresses key inf
For up-to-date document and how to start using RDC from pre-built packages, please refer to the [**ROCm DataCenter Tool User Guide**](https://rocm.docs.amd.com/projects/rdc/en/latest/)
For certificate generation, please refer to [**RDC Developer Handbook**#generate-files-for-authentication](https://rocm.docs.amd.com/projects/rdc/en/latest/install/handbook.html#generate-files-for-authentication)
## Certificate generation
For certificate generation, please refer to
[**RDC Developer Handbook**#generate-files-for-authentication](https://rocm.docs.amd.com/projects/rdc/en/latest/install/handbook.html#generate-files-for-authentication)
Or read the concise guide under authentication/readme.txt
## Supported platforms
@@ -45,9 +49,9 @@ The following tools are required for gRPC build & installation
### Download and build gRPC
By default (without using CMAKE_INSTALL_PREFIX option), gRPC will install to /usr/local lib, include and bin directories.
By default (without using CMAKE_INSTALL_PREFIX option), gRPC will install to `/usr/local` lib, include and bin directories.
It is highly recommended to install gRPC into a unique directory.
Below example installs gRPC into /opt/grpc
Below example installs gRPC into `/opt/grpc`
git clone -b v1.61.0 https://github.com/grpc/grpc --depth=1 --shallow-submodules --recurse-submodules
cd grpc
@@ -69,9 +73,13 @@ Clone the RDC source code from GitHub and use CMake to build and install
git clone https://github.com/ROCm/rdc
cd rdc
mkdir -p build
# default installation location is /opt/rocm, specify with -DROCM_DIR or -DCMAKE_INSTALL_PREFIX
cmake -B build -DGRPC_ROOT="$GRPC_ROOT"
# enable rocprofiler (optional)
cmake -B build -DBUILD_PROFILER=ON
# enable RVS (optional)
cmake -B build -DBUILD_RVS=ON
# build and install
make -C build -j $(nproc)
make -C build install
@@ -89,10 +97,10 @@ The user can choose to not build RDC diagnostic ROCM Run time. This will elimina
## Update System Library Path
RDC_LIB_DIR=/opt/rocm/rdc/lib
GRPC_LIB_DIR=/opt/grpc/lib
echo -e "${GRPC_LIB_DIR}\n${GRPC_LIB_DIR}64" | sudo tee /etc/ld.so.conf.d/x86_64-librdc_client.conf
echo -e "${RDC_LIB_DIR}\n${RDC_LIB_DIR}64" | sudo tee -a /etc/ld.so.conf.d/x86_64-librdc_client.conf
RDC_LIB_DIR=/opt/rocm/lib/rdc
GRPC_LIB_DIR="${RDC_LIB_DIR}/grpc/lib\n/opt/grpc/lib"
echo -e "${RDC_LIB_DIR}" | sudo tee /etc/ld.so.conf.d/x86_64-librdc_client.conf
echo -e "${GRPC_LIB_DIR}" | sudo tee -a /etc/ld.so.conf.d/x86_64-librdc_client.conf
ldconfig
## Running RDC
@@ -111,26 +119,37 @@ When *rdcd* is started from a command-line the *capabilities* are determined by
## NOTE: Replace /opt/rocm with specific rocm version if needed
## To run with authentication. Ensure SSL keys are setup properly
## version will be the version number(ex:3.10.0) of ROCm where RDC was packaged with
/opt/rocm/rdc/bin/rdcd ## rdcd is started with monitor-only capabilities
sudo /opt/rocm/rdc/bin/rdcd ## rdcd is started will full-capabilities
/opt/rocm/bin/rdcd ## rdcd is started with monitor-only capabilities
sudo /opt/rocm/bin/rdcd ## rdcd is started will full-capabilities
## To run without authentication. SSL key & certificates are not required.
## version will be the version number(ex:3.10.0) of ROCm where RDC was packaged with
/opt/rocm/rdc/bin/rdcd -u ## rdcd is started with monitor-only capabilities
sudo /opt/rocm/rdc/bin/rdcd -u ## rdcd is started will full-capabilities
/opt/rocm/bin/rdcd -u ## rdcd is started with monitor-only capabilities
sudo /opt/rocm/bin/rdcd -u ## rdcd is started will full-capabilities
### Start RDCD using systemd
*rdcd* can be started by using the systemctl command. You can copy /opt/rocm/rdc/lib/rdc.service, which is installed with RDC, to the systemd folder. This file has 2 lines that control what *capabilities* with which *rdcd* will run. If left uncommented, rdcd will run with full-capabilities.
*rdcd* can be started by using the systemctl command. You can copy `/opt/rocm/libexec/rdc/rdc.service`, which is installed with RDC, to the systemd folder. This file has 2 lines that control what *capabilities* with which *rdcd* will run. If left uncommented, rdcd will run with full-capabilities.
## file: /opt/rocm/rdc/lib/rdc.service
## file: /opt/rocm/libexec/rdc/rdc.service
## Comment the following two lines to run with monitor-only capabilities
CapabilityBoundingSet=CAP_DAC_OVERRIDE
AmbientCapabilities=CAP_DAC_OVERRIDE
systemctl start rdc ## start rdc as systemd service
Additional options can be passed to *rdcd* by modifying `/opt/rocm/etc/rdc_options`
## file: /opt/rocm/etc/rdc_options
# Append 'rdc' daemon parameters here
RDC_OPTS="-p 50051 -u -d"
Example above does the following:
- Use port 50051
- Use unauthenticated mode
- Enable debug messages
- **NOTE:** You must add `-u` flag to `rdci` calls as well
## Invoke RDC using ROCm™ Data Center Interface (RDCI)
RDCI provides command-line interface to all RDC features. This CLI can be run locally or remotely. Refer to [**user guide**](https://rocm.docs.amd.com/projects/rdc/en/latest/how-to/features.html) for the current list of features.
@@ -140,7 +159,7 @@ RDCI provides command-line interface to all RDC features. This CLI can be run lo
## NOTE: option -u (for unauthenticated) is required if rdcd was started in this mode
## Assuming that rdc is installed into /opt/rocm
cd /opt/rocm/rdc/bin
cd /opt/rocm/bin
./rdci discovery -l <-u> ## list available GPUs in localhost
./rdci discovery <host> -l <-u> ## list available GPUs in host machine
./rdci dmon <host> <-u> -l ## list most GPU counters
@@ -160,8 +179,10 @@ If rdcd was started as a systemd service, then use journalctl to view rdcd logs
To run rdcd with debug log from command-line use
version will be the version number(ex:3.10.0) of ROCm where RDC was packaged with
RDC_LOG=DEBUG /opt/rocm/rdc/bin/rdcd
RDC_LOG=DEBUG /opt/rocm/bin/rdcd
RDC_LOG=DEBUG also works on rdci
ERROR, INFO, DEBUG logging levels are supported
Additional logging messages can be enabled with `RSMI_LOGGING=3`
+11
Féach ar an gComhad
@@ -0,0 +1,11 @@
# How-to generate authentication files
1. Modify openssl.cnf to match your company info
2. ./01gen_root_cert.sh
3. ./02gen_ssl_artifacts.sh
4. cd CA/artifacts
5. sudo ./install_client.sh /etc/rdc
6. sudo ./install_server.sh /etc/rdc
For a full guide refer to:
https://rocm.docs.amd.com/projects/rdc/en/latest/install/handbook.html#generate-files-for-authentication
-114
Féach ar an gComhad
@@ -1,114 +0,0 @@
# Copyright (c) 2022 Advanced Micro Devices, Inc. All Rights Reserved.
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
cmake_minimum_required(VERSION 3.16.8)
set(RDC_WRAPPER_DIR ${CMAKE_CURRENT_BINARY_DIR}/wrapper_dir)
set(RDC_WRAPPER_INC_DIR ${RDC_WRAPPER_DIR}/include/rdc)
set(RDC_WRAPPER_LIB_DIR ${RDC_WRAPPER_DIR}/lib)
set(RDC_WRAPPER_BIN_DIR ${RDC_WRAPPER_DIR}/bin)
set(RDC_SRC_INC_DIR ${PROJECT_SOURCE_DIR}/include/rdc)
#use header template file and generate wrapper header files
function(generate_wrapper_header)
file(MAKE_DIRECTORY ${RDC_WRAPPER_INC_DIR})
#Only rdc.h header file used in packaging
# set include guard
set(include_guard "RDC_WRAPPER_INCLUDE_RDC_H")
#set #include statement
set(file_name "rdc.h")
set(header_name ${file_name})
set(include_statements "#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/rdc/${file_name}\"\n")
configure_file(${PROJECT_SOURCE_DIR}/src/header_template.hpp.in ${RDC_WRAPPER_INC_DIR}/${file_name})
endfunction()
# function to create symlink to libraries
function(create_library_symlink)
file(MAKE_DIRECTORY ${RDC_WRAPPER_LIB_DIR})
set(LIB_RDC "librdc.so")
set(LIB_RDC_BOOTSTRAP "librdc_bootstrap.so")
set(LIB_RDC_CLIENT "librdc_client.so")
set(MAJ_VERSION "${VERSION_MAJOR}")
set(SO_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
set(library_files "${LIB_RDC}" "${LIB_RDC}.${MAJ_VERSION}" "${LIB_RDC}.${SO_VERSION}")
set(library_files "${library_files}" "${LIB_RDC_BOOTSTRAP}" "${LIB_RDC_BOOTSTRAP}.${MAJ_VERSION}" "${LIB_RDC_BOOTSTRAP}.${SO_VERSION}" )
set(library_files "${library_files}" "${LIB_RDC_CLIENT}" "${LIB_RDC_CLIENT}.${MAJ_VERSION}" "${LIB_RDC_CLIENT}.${SO_VERSION}" )
foreach(file_name ${library_files})
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endforeach()
# Symlink for private libraries
set(LIB_RDC_ROCR "librdc_rocr.so")
set(LIB_RDC_ROCP "librdc_rocp.so")
set(LIB_RDC_RVS "librdc_rvs.so")
set(LIB_RDC_CLIENT_SMI "librdc_client_smi.so")
set(library_files "${LIB_RDC_ROCR}" "${LIB_RDC_ROCR}.${MAJ_VERSION}" "${LIB_RDC_ROCR}.${SO_VERSION}" )
set(library_files "${LIB_RDC_ROCP}" "${LIB_RDC_ROCP}.${MAJ_VERSION}" "${LIB_RDC_ROCP}.${SO_VERSION}" )
set(library_files "${library_files}" "${LIB_RDC_CLIENT_SMI}" "${LIB_RDC_CLIENT_SMI}.${MAJ_VERSION}" "${LIB_RDC_CLIENT_SMI}.${SO_VERSION}" )
set(library_files "${library_files}" "${LIB_RDC_RVS}")
foreach(file_name ${library_files})
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endforeach()
# create symlink to grpc directory
# this helps avoid using LD_LIBRARY_PATH
if(BUILD_STANDALONE)
set(file_name "grpc")
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endif()
# create symlink to rdc.service
set(file_name "rdc.service")
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_LIBEXECDIR}/${RDC}/${file_name} ${RDC_WRAPPER_LIB_DIR}/${file_name})
endfunction()
# function to create symlink to binaries
function(create_binary_symlink)
file(MAKE_DIRECTORY ${RDC_WRAPPER_BIN_DIR})
# create symlink for rdcd and rdci
set(binary_files "rdcd" "rdci")
foreach(file_name ${binary_files})
add_custom_target(link_${file_name} ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../../${CMAKE_INSTALL_BINDIR}/${file_name} ${RDC_WRAPPER_BIN_DIR}/${file_name})
endforeach()
endfunction()
# Use template header file and generate wrapper header files
generate_wrapper_header()
install(DIRECTORY ${RDC_WRAPPER_INC_DIR} DESTINATION DESTINATION ${RDC}/include COMPONENT ${CLIENT_COMPONENT})
# Create symlink to library files
create_library_symlink()
install(DIRECTORY ${RDC_WRAPPER_LIB_DIR} DESTINATION ${RDC} COMPONENT ${CLIENT_COMPONENT})
# Create symlink to library binaries
create_binary_symlink()
install(DIRECTORY ${RDC_WRAPPER_BIN_DIR} DESTINATION ${RDC} COMPONENT ${CLIENT_COMPONENT})