Merge amd-dev into amd-master 20240111
Signed-off-by: guanyu12 <guanyu12@amd.com> Change-Id: Id32f687d271216cbc5f34849008e4e29ae9afab8
This commit is contained in:
@@ -22,6 +22,7 @@ add_custom_command(
|
||||
${PY_PACKAGE_DIR}/amdsmi_logger.py
|
||||
${PY_PACKAGE_DIR}/amdsmi_parser.py
|
||||
${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py
|
||||
${PY_PACKAGE_DIR}/rocm_version.py
|
||||
${PY_PACKAGE_DIR}/BDF.py
|
||||
${PY_PACKAGE_DIR}/README.md
|
||||
${PY_PACKAGE_DIR}/Release_Notes.md
|
||||
@@ -35,6 +36,7 @@ add_custom_command(
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_logger.py ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_parser.py ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/BDF.py ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${PY_PACKAGE_DIR}/
|
||||
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/Release_Notes.md ${PY_PACKAGE_DIR}/)
|
||||
@@ -52,6 +54,7 @@ add_custom_target(
|
||||
${PY_PACKAGE_DIR}/amdsmi_logger.py
|
||||
${PY_PACKAGE_DIR}/amdsmi_parser.py
|
||||
${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py
|
||||
${PY_PACKAGE_DIR}/rocm_version.py
|
||||
${PY_PACKAGE_DIR}/BDF.py
|
||||
${PY_PACKAGE_DIR}/README.md
|
||||
${PY_PACKAGE_DIR}/Release_Notes.md)
|
||||
|
||||
@@ -78,7 +78,9 @@ amd-smi will report the version and current platform detected when running the c
|
||||
~$ amd-smi
|
||||
usage: amd-smi [-h] ...
|
||||
|
||||
AMD System Management Interface | Version: 23.4.0.0 | Platform: Linux Baremetal
|
||||
AMD System Management Interface | Version: 23.4.0.0 | ROCm version: 6.1.0 |
|
||||
Platform: Linux Baremetal
|
||||
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
|
||||
@@ -30,6 +30,7 @@ from _version import __version__
|
||||
from amdsmi_helpers import AMDSMIHelpers
|
||||
from amdsmi_logger import AMDSMILogger
|
||||
from amdsmi_cli_exceptions import AmdSmiRequiredCommandException
|
||||
from rocm_version import get_rocm_version
|
||||
from amdsmi import amdsmi_interface
|
||||
from amdsmi import amdsmi_exception
|
||||
|
||||
@@ -93,16 +94,19 @@ class AMDSMICommands():
|
||||
try:
|
||||
amdsmi_lib_version = amdsmi_interface.amdsmi_get_lib_version()
|
||||
amdsmi_lib_version_str = f"{amdsmi_lib_version['year']}.{amdsmi_lib_version['major']}.{amdsmi_lib_version['minor']}.{amdsmi_lib_version['release']}"
|
||||
rocm_version_str = get_rocm_version();
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
amdsmi_lib_version_str = e.get_error_info()
|
||||
|
||||
self.logger.output['tool'] = 'AMDSMI Tool'
|
||||
self.logger.output['version'] = f'{__version__}'
|
||||
self.logger.output['amdsmi_library_version'] = f'{amdsmi_lib_version_str}'
|
||||
self.logger.output['rocm_version'] = f'{rocm_version_str}'
|
||||
|
||||
if self.logger.is_human_readable_format():
|
||||
print(f'AMDSMI Tool: {__version__} | '\
|
||||
f'AMDSMI Library version: {amdsmi_lib_version_str}')
|
||||
f'AMDSMI Library version: {amdsmi_lib_version_str} | ' \
|
||||
f'ROCm version: {rocm_version_str}' )
|
||||
elif self.logger.is_json_format() or self.logger.is_csv_format():
|
||||
self.logger.print_output()
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ from pathlib import Path
|
||||
|
||||
from _version import __version__
|
||||
from amdsmi_helpers import AMDSMIHelpers
|
||||
from rocm_version import get_rocm_version
|
||||
import amdsmi_cli_exceptions
|
||||
|
||||
|
||||
@@ -78,13 +79,14 @@ class AMDSMIParser(argparse.ArgumentParser):
|
||||
|
||||
version_string = f"Version: {__version__}"
|
||||
platform_string = f"Platform: {self.helpers.os_info()}"
|
||||
|
||||
rocm_version = get_rocm_version();
|
||||
rocm_version_string = f"ROCm version: {rocm_version}"
|
||||
program_name = 'amd-smi'
|
||||
|
||||
# Adjust argument parser options
|
||||
super().__init__(
|
||||
formatter_class= lambda prog: AMDSMIParserHelpFormatter(prog),
|
||||
description=f"AMD System Management Interface | {version_string} | {platform_string}",
|
||||
description=f"AMD System Management Interface | {version_string} | {rocm_version_string} | {platform_string}",
|
||||
add_help=True,
|
||||
prog=program_name)
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
import ctypes
|
||||
from pathlib import Path
|
||||
|
||||
# Get the ROCm version for rocm-core library
|
||||
def get_rocm_version():
|
||||
try:
|
||||
librocm_core_file = Path(__file__).resolve().parent.parent.parent / "lib" / "librocm-core.so"
|
||||
if not librocm_core_file.is_file():
|
||||
return "N/A"
|
||||
|
||||
# python binding
|
||||
librocm_core = ctypes.CDLL(librocm_core_file)
|
||||
VerErrors = ctypes.c_uint32
|
||||
get_rocm_core_version = librocm_core.getROCmVersion
|
||||
get_rocm_core_version.restype = VerErrors
|
||||
get_rocm_core_version.argtypes = [ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32),ctypes.POINTER(ctypes.c_uint32)]
|
||||
|
||||
# call the function
|
||||
major = ctypes.c_uint32()
|
||||
minor = ctypes.c_uint32()
|
||||
patch = ctypes.c_uint32()
|
||||
|
||||
if get_rocm_core_version(ctypes.byref(major), ctypes.byref(minor),ctypes.byref(patch)) == 0:
|
||||
return "%d.%d.%d" % (major.value, minor.value, patch.value)
|
||||
return "N/A"
|
||||
except:
|
||||
return "N/A"
|
||||
|
||||
Reference in New Issue
Block a user