Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync-up with master #876

Merged
merged 148 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
1de3be7
Bump rocm-docs-core from 1.6.2 to 1.7.1 in /docs/sphinx (#798)
dependabot[bot] Aug 20, 2024
e228d86
Merge pull request #799 from ROCm/hipblaslt-int
jkottiku Aug 22, 2024
96df93d
logging lib usage in babel instead of cout
Aug 22, 2024
7ecb061
Faster matrix data init.
jkottiku Aug 22, 2024
34840cb
Merge pull request #802 from jkottiku/master
jkottiku Aug 22, 2024
44c9420
1. Lower power target
jkottiku Aug 23, 2024
6a0d4e4
Merge pull request #803 from jkottiku/master
jkottiku Aug 23, 2024
a150424
1. Script cleanup
jkottiku Aug 26, 2024
8b1b2fc
review msgs
Aug 28, 2024
9a1d772
Merge pull request #801 from ROCm/babel-logs
manoj-freyr Aug 28, 2024
e78ff1a
Merge pull request #804 from jkottiku/master
jkottiku Aug 28, 2024
b23093b
Power stress & performance conf.
jkottiku Aug 29, 2024
0768e4d
Comment correction
jkottiku Aug 29, 2024
2a1d2b5
Merge pull request #806 from jkottiku/master
jkottiku Aug 29, 2024
b636579
changes
Sep 2, 2024
d8cbb4c
GST & IET doc. - Update/Correction.
jkottiku Sep 3, 2024
08e9eac
Update GST user guide
jkottiku Sep 4, 2024
37d2981
review comment fix
Sep 4, 2024
3db5f70
Merge pull request #807 from ROCm/json-prasefix
manoj-freyr Sep 4, 2024
7d177c0
Apply suggestions from code review
jkottiku Sep 4, 2024
6c48027
Merge pull request #808 from jkottiku/master
jkottiku Sep 4, 2024
3132882
error correction while using domain and bdf id data type
Sep 5, 2024
46508cd
remove unused code
Sep 5, 2024
dc94924
SWDEV-479816 - Remove the deprecated package hsakmt-roct-dev from pac…
raramakr Sep 5, 2024
5ff2977
Babel Navi-31 (gfx1100) support
jkottiku Sep 6, 2024
646b756
Merge pull request #810 from ROCm/bdf-fixes
manoj-freyr Sep 6, 2024
da40870
Remove Hard Coded install Permissions
arvindcheru Sep 6, 2024
d9be65e
Merge pull request #811 from jkottiku/master
jkottiku Sep 8, 2024
2b98f5b
Merge pull request #812 from arvindcheru/master-patch-temp
arvindcheru Sep 9, 2024
bd38a86
RVS version update
jkottiku Sep 10, 2024
c766b9e
port blaslt changes onto iet
Sep 10, 2024
0f43a12
Review comment - Default ROCm version
jkottiku Sep 10, 2024
2a618c7
Merge pull request #814 from ROCm/iet-blasport
manoj-freyr Sep 11, 2024
310826e
Merge branch 'ROCm:master' into master
jkottiku Sep 11, 2024
8f14545
Merge pull request #813 from jkottiku/master
jkottiku Sep 13, 2024
8264e28
Move build-time parameters to conf. parameters.
jkottiku Sep 17, 2024
7c223fc
Update stream kernel function prototype
Sep 24, 2024
c920413
Merge pull request #818 from jkottiku/master
jkottiku Sep 26, 2024
4ee0490
Added package dependencies
jkottiku Oct 3, 2024
d699ea7
Merge pull request #819 from jkottiku/master
jkottiku Oct 3, 2024
cfd3915
fix larger matrix size to hit target numbers
Oct 8, 2024
84e17bd
cleanup readme and other docs to remove reference to rvs.conf file
Oct 8, 2024
1200bce
Update gst self test conf.
jkottiku Oct 8, 2024
26e71e4
Merge branch 'ROCm:master' into master
jkottiku Oct 9, 2024
4494d6c
Merge pull request #820 from ROCm/nv21-gst
manoj-freyr Oct 9, 2024
3f084ef
Merge pull request #822 from jkottiku/master
jkottiku Oct 9, 2024
a71e949
Merge pull request #821 from ROCm/json-mem-module
manoj-freyr Oct 14, 2024
143a3c0
Corrected cmd. line options parsing.
jkottiku Oct 16, 2024
7ab19e3
rmove unused files
Oct 17, 2024
0abb1ed
enabling json in mem
Oct 17, 2024
98de216
Merge pull request #824 from jkottiku/master
jkottiku Oct 18, 2024
13c8d19
more fields to mem
Oct 21, 2024
666903e
rcqt enable json initial commit
Oct 21, 2024
9370385
add appropriate details to json
Oct 22, 2024
aa7090f
enable for listbased nodes
Oct 22, 2024
f7c4f55
segfault fix
Oct 22, 2024
c47b792
Remove redundant test
jkottiku Oct 22, 2024
abe0d98
Merge branch 'ROCm:master' into master
jkottiku Oct 22, 2024
2f159ae
Merge pull request #829 from jkottiku/master
jkottiku Oct 23, 2024
e1e2b9d
Fix Sphinx config to get VERSION correctly (#823)
peterjunpark Oct 23, 2024
4ac31dd
Bump rocm-docs-core from 1.7.1 to 1.8.3 in /docs/sphinx (#826)
dependabot[bot] Oct 23, 2024
6b49545
cleanup logs for gst
Oct 28, 2024
be142f1
1. CLI options - Number of times "-n".
jkottiku Oct 29, 2024
007c0c3
fix gpup json syntax errors
Oct 29, 2024
5bd3177
keep log level proper
Oct 29, 2024
d3a83c2
update copyright banner with current year 2024
Oct 29, 2024
1c9a5ce
Merge pull request #825 from ROCm/json-mem-module
manoj-freyr Oct 30, 2024
6138225
babel json enablement
Nov 4, 2024
92dffdc
fix runtime symbol load issues for tmeplate
Nov 5, 2024
b539e25
Merge pull request #833 from ROCm/runtime-symfix
manoj-freyr Nov 5, 2024
13e5f34
Merge branch 'master' of https://github.com/ROCm/ROCmValidationSuite …
Nov 5, 2024
9dbe2b1
add triad json logs and refactor to use single funtion
Nov 5, 2024
e323c7f
1. Add power tolerance functionality in IET
jkottiku Nov 5, 2024
957721e
date banner fix and remove commented code
Nov 6, 2024
6924794
Merge pull request #834 from ROCm/babel-json
manoj-freyr Nov 6, 2024
858a0c8
Merge branch 'ROCm:master' into master
jkottiku Nov 6, 2024
0d51296
Merge pull request #835 from jkottiku/master
jkottiku Nov 6, 2024
ff94636
pass fail messages
Nov 7, 2024
81ba9a0
Deprecation notice of modules and correct RCQT UG
Nov 8, 2024
18baad5
1. Command-line options cleanup
jkottiku Nov 9, 2024
f49dfed
review comment fixes
Nov 11, 2024
3f6f739
fix issue in multi gpu case
Nov 11, 2024
cdf37b3
pesm json logging
Nov 11, 2024
8967bbf
Update cli options in docs
jkottiku Nov 12, 2024
7f51db9
Corrected syntax
jkottiku Nov 12, 2024
9b1b1de
Merge pull request #836 from ROCm/json-pass-fail
manoj-freyr Nov 13, 2024
d176650
Update file banner
jkottiku Nov 13, 2024
e922b4c
Merge pull request #837 from ROCm/cli-opts
jkottiku Nov 13, 2024
4f8067c
Update changelog format to standard (#832)
peterjunpark Nov 13, 2024
9269b3b
peqt json enable
Nov 14, 2024
b088c68
Update Project Version Number to support upgrade
arvindcheru Nov 14, 2024
3fd55ab
Merge pull request #840 from arvindcheru/master-patch-temp
arvindcheru Nov 15, 2024
62e711f
Merge pull request #839 from ROCm/peqt-json
manoj-freyr Nov 19, 2024
ed6125a
add back default config file
Nov 20, 2024
afa296d
add deprecation notices in docs (#845)
manoj-freyr Nov 20, 2024
16bac53
review comment addition
Nov 21, 2024
1366322
Merge pull request #844 from ROCm/def-config
manoj-freyr Nov 21, 2024
7f4a016
Update SLES prerequisite
jkottiku Nov 21, 2024
22925e9
Merge pull request #847 from jkottiku/master
jkottiku Nov 22, 2024
3d488ac
rm sles prerequisite
peterjunpark Nov 22, 2024
b8e9850
Merge pull request #848 from peterjunpark/docs/suse-install
jkottiku Nov 22, 2024
9390b14
Bump rocm-docs-core from 1.8.3 to 1.9.0 in /docs/sphinx (#849)
dependabot[bot] Nov 26, 2024
a67dfac
MI325X conf. files
jkottiku Nov 26, 2024
be1d54d
Merge branch 'ROCm:master' into master
jkottiku Nov 26, 2024
25167f1
Merge pull request #850 from jkottiku/master
jkottiku Nov 27, 2024
68d88d5
Bump rocm-docs-core from 1.9.0 to 1.9.2 in /docs/sphinx (#853)
dependabot[bot] Nov 29, 2024
a356fed
pbqt pass fail criteria and enable custom json location
Dec 2, 2024
145e488
add json location option to docs and CLI output
Dec 2, 2024
df4c388
fix issue where if we provide json name, no module name printed
Dec 3, 2024
e49d40b
Changes for ROCm 6.3
jkottiku Dec 3, 2024
c1820e9
Merge pull request #858 from ROCm/master
jkottiku Dec 4, 2024
72c5f21
Support command-line options with optional value
jkottiku Dec 4, 2024
db7b9e6
Merge pull request #857 from jkottiku/master
jkottiku Dec 4, 2024
c577843
Merge pull request #859 from ROCm/cli-opts
manoj-freyr Dec 5, 2024
7a2e321
Merge branch 'master' of https://github.com/ROCm/ROCmValidationSuite …
Dec 5, 2024
a0e402d
use optional values for json file locartion
Dec 5, 2024
c503460
bug fixes
Dec 5, 2024
8abfa6e
logical fixes and using -j as both option to json and filename
Dec 5, 2024
20300a6
corrections in options
Dec 6, 2024
4b7ec6f
Merge pull request #856 from ROCm/pbqt-changes-json
manoj-freyr Dec 7, 2024
9203d96
configs for mi210
Dec 11, 2024
bcb279a
make logs as results instead of info
Dec 11, 2024
faaaf2e
Merge pull request #863 from ROCm/json-results-log
manoj-freyr Dec 12, 2024
45ae78e
update year in banner
Dec 12, 2024
7b47d45
Merge pull request #862 from ROCm/mi210-configs
manoj-freyr Dec 12, 2024
f62dd40
1. Support GPU indexes in -i option
jkottiku Dec 12, 2024
7e44236
Bump rocm-docs-core from 1.9.2 to 1.11.0 in /docs/sphinx (#860)
dependabot[bot] Dec 14, 2024
6dcf9d9
Update prerequisites section
jkottiku Dec 14, 2024
03fe9be
Merge pull request #866 from ROCm/docs-changes
jkottiku Dec 16, 2024
75d5490
Merge pull request #864 from jkottiku/master
jkottiku Dec 17, 2024
584e6e1
json logs of ops type, target stress made results level
Dec 19, 2024
83817eb
remove redundancy in cleanup_logs
Dec 19, 2024
a74ec5a
Merge pull request #868 from ROCm/json-updates
manoj-freyr Dec 20, 2024
71bcfe4
Add gpu index in json log
jkottiku Dec 20, 2024
d9d7201
Merge pull request #869 from jkottiku/master
jkottiku Dec 20, 2024
a1f0f27
make layout of json cleaner with consistent subobjects
Dec 23, 2024
67d5c8c
refactor code to remove duplication
Dec 24, 2024
eb442b5
Bump rocm-docs-core from 1.11.0 to 1.12.0 in /docs/sphinx (#867)
dependabot[bot] Dec 24, 2024
2682665
remove commented code
Dec 26, 2024
b9c9eaf
simplify reporting structure in pbqt
Dec 26, 2024
8f45f20
review comment fixes and cleanup
Dec 26, 2024
8aa06d7
Merge pull request #870 from ROCm/gst-simplify-json
manoj-freyr Dec 27, 2024
ddfa247
add ID also to search in case similar OS
Dec 27, 2024
901257b
Merge pull request #871 from ROCm/rcqt-updates
manoj-freyr Dec 30, 2024
58d4027
update readme page reflecting json location
Jan 2, 2025
caaca7c
Check pci dev. access validity
jkottiku Jan 7, 2025
e7082b2
Merge pull request #875 from jkottiku/master
jkottiku Jan 8, 2025
2c1083f
Merge pull request #872 from ROCm/json-docupdate
manoj-freyr Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 24 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
# Change Log for ROCm Validation Suite (RVS)
# Changelog for ROCm Validation Suite (RVS)

Full documentation for RVS is available at [ROCmValidationSuite.Readme](https://github.com/ROCm/ROCmValidationSuite).

## RVS 1.0.0 for ROCm 6.2
## RVS 1.1.0 for ROCm 6.3.0

### Added

- Support for hipBLASLT blas library and option to select blas library in conf. file.
- Added Babel, thermal and performance benchmark test for MI308X.

### Changed

- Updated GST performance benchmark test for better numbers.
- Babel parameters made runtime configurable.

## RVS 1.0.0 for ROCm 6.2.0

### Added

Expand All @@ -15,18 +22,22 @@ Full documentation for RVS is available at [ROCmValidationSuite.Readme](https://
- IET (power) stress test for MI300A.
- IET (power transition) test for MI300X.

## RVS 1.0.0 for ROCm 6.1

### Changed

- Updated pebb & pbqt logs to include PCI BDF.
- Updated GST performance benchmark test for better numbers.

## RVS 1.0.0 for ROCm 6.1.0

### Added

- Support data types (BF16 and FP8) based GEMM operations in GPU Stress Test (GST) module.
- Babel test for MI300X.

## RVS 1.0.0 for ROCm 6.0
### Changed

- Updated pebb & pbqt logs to include PCI BDF.

## RVS 1.0.0 for ROCm 6.0.0

### Added

Expand All @@ -35,22 +46,22 @@ Full documentation for RVS is available at [ROCmValidationSuite.Readme](https://
- Navi31 and Navi32 specific configurations
- GST stress test support for MI300X

## RVS 1.0.0 for ROCm 5.7
## RVS 1.0.0 for ROCm 5.7.0

### Added

- Introduced new RVS interface APIs enabling test execution from external components.
- Added new "device_index" property for conf. file.
- Added new `device_index` property for conf. file.

### Changed

- Moved all static internal libraries to a single public shared library (rvslib).
- Use HIP stream callback mechanism for gemm operations completion (instead of polling).

### Optimizations

- In GST and IET modules, use of callback mechanism instead of polling for HIP stream reduced the CPU utilization %.

### Removed

- yaml-cpp source download and build removed from RVS cmake build.

### Optimized

- In GST and IET modules, use of callback mechanism instead of polling for HIP stream reduced the CPU utilization %.
31 changes: 16 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
cmake_minimum_required ( VERSION 3.5.0 )
set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,--enable-new-dtags,--rpath,$ORIGIN:$ORIGIN/.." CACHE STRING "RUNPATH for libraries")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--enable-new-dtags,--rpath,$ORIGIN/../lib" CACHE STRING "RUNPATH for executables")
project ("rocm-validation-suite")

project ("rocm-validation-suite"
VERSION 1.1.0)

# 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")
Expand Down Expand Up @@ -148,25 +150,25 @@ endif()
## Include common cmake modules
include ( utils )

## Setup the package version default .
set ( RVS_VERSION "1.0.0" )
## Update RVS version
set ( RVS_VERSION "${PROJECT_VERSION}" )
get_version ( ${RVS_VERSION} )

# Package Generator #######################################################
set(CPACK_PACKAGE_NAME "rocm-validation-suite")
set(CPACK_PACKAGE_DESCRIPTION "ROCm Validation Suite")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The ROCm Validation Suite (RVS) is a system validation and diagnostics tool for monitoring, stress testing, detecting and troubleshooting issues that affects the functionality and performance of AMD GPU(s) operating in a high-performance/AI/ML computing environment.")
set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices Inc.")
set(CPACK_PACKAGE_CONTACT "ROCM Validation Suite Support <[email protected]>")

# Package dependencies
if(FETCH_ROCMPATH_FROM_ROCMCORE)
set(ROCM_DEPENDENT_PACKAGES "hip-runtime-amd, comgr, hsa-rocr, rocblas, rocm-smi-lib, ${ROCM_CORE}")
set(ROCM_DEPENDENT_PACKAGES "hip-runtime-amd, comgr, hsa-rocr, rocblas, rocm-smi-lib, hiprand, hipblaslt, ${ROCM_CORE}")
else()
set(ROCM_DEPENDENT_PACKAGES "hip-runtime-amd, comgr, hsa-rocr, rocblas, rocm-smi-lib")
set(ROCM_DEPENDENT_PACKAGES "hip-runtime-amd, comgr, hsa-rocr, rocblas, rocm-smi-lib, hiprand, hipblaslt")
endif()
if (${RVS_OS_TYPE} STREQUAL "ubuntu")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${ROCM_DEPENDENT_PACKAGES}, libpci3, libyaml-cpp-dev")
Expand All @@ -180,9 +182,10 @@ endif()
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_ALL applications rvsmodule)

# Package naming change
# Set default ROCm version for package naming
set(ROCM_VERSION_FOR_PACKAGE "99999")
# update version accordingly

# Update ROCm version for package naming
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
set(ROCM_VERSION_FOR_PACKAGE $ENV{ROCM_LIBPATCH_VERSION})
endif()
Expand All @@ -207,6 +210,7 @@ if(CPACK_RPM_PACKAGE_RELEASE)
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
endif()

# Complete RVS package version naming
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${ROCM_VERSION_FOR_PACKAGE}")

set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
Expand Down Expand Up @@ -490,7 +494,7 @@ if(BUILD_ADDRESS_SANITIZER)
set(ASAN_LD_FLAGS "-fuse-ld=lld")
endif()

set(HCC_CXX_FLAGS "-fno-gpu-rdc --offload-arch=gfx90a --offload-arch=gfx1030 --offload-arch=gfx803 --offload-arch=gfx900 --offload-arch=gfx906 --offload-arch=gfx908 --offload-arch=gfx1101 --offload-arch=gfx940 --offload-arch=gfx941 --offload-arch=gfx942 --offload-arch=gfx1200 --offload-arch=gfx1201")
set(HCC_CXX_FLAGS "-fno-gpu-rdc --offload-arch=gfx90a --offload-arch=gfx1030 --offload-arch=gfx803 --offload-arch=gfx900 --offload-arch=gfx906 --offload-arch=gfx908 --offload-arch=gfx1101 --offload-arch=gfx940 --offload-arch=gfx941 --offload-arch=gfx942 --offload-arch=gfx1200 --offload-arch=gfx1201 --offload-arch=gfx1100")

add_subdirectory(rvslib)
add_subdirectory(rvs)
Expand Down Expand Up @@ -603,13 +607,10 @@ configure_file(${CMAKE_SOURCE_DIR}/rvs/conf/deviceid.sh.in
@ONLY)
install(FILES ${CMAKE_SOURCE_DIR}/rvs/conf/deviceid.sh
DESTINATION ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}/conf/
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
COMPONENT rvsmodule
COMPONENT rvsmodule
)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/testscripts/
DESTINATION ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}/testscripts
USE_SOURCE_PERMISSIONS
COMPONENT rvsmodule
)

Expand Down
8 changes: 4 additions & 4 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
## GPU Properties – GPUP
The GPU Properties module queries the configuration of a target device and returns the device’s static characteristics. These static values can be used to debug issues such as device support, performance and firmware problems.

## GPU Monitor – GM module
## GPU Monitor – GM module [deprecated]
The GPU monitor tool is capable of running on one, some or all of the GPU(s) installed and will report various information at regular intervals. The module can be configured to halt another RVS modules execution if one of the quantities exceeds a specified boundary value.

## PCI Express State Monitor – PESM module
## PCI Express State Monitor – PESM module [deprecated]
The PCIe State Monitor tool is used to actively monitor the PCIe interconnect between the host platform and the GPU. The module will register a “listener” on a target GPU’s PCIe interconnect, and log a message whenever it detects a state change. The PESM will be able to detect the following state changes:

1. PCIe link speed changes
Expand All @@ -24,7 +24,7 @@ The PCIe Qualification Tool is used to qualify the PCIe bus on which the GPU is
3. PCIe link speed
4. PCIe link width

## SBIOS Mapping Qualification Tool – SMQT module
## SBIOS Mapping Qualification Tool – SMQT module [deprecated]
The GPU SBIOS mapping qualification tool is designed to verify that a platform’s SBIOS has satisfied the BAR mapping requirements for VDI and Radeon Instinct products for ROCm support.

## P2P Benchmark and Qualification Tool – PBQT module
Expand All @@ -34,7 +34,7 @@ The P2P Benchmark and Qualification Tool is designed to provide the list of all
The PCIe Bandwidth Benchmark attempts to saturate the PCIe bus with DMA transfers between system memory and a target GPU card’s memory. The maximum bandwidth obtained is reported to help debug low bandwidth issues. The benchmark should be capable of targeting one, some or all of the GPUs installed in a platform, reporting individual benchmark statistics for each.

## GPU Stress Test - GST module
The GPU Stress Test runs various GEMM operations as workloads to stress the GPU FLOPS performance. GEMM operations include SGEMM, DGEMM and HGEMM (Single/Double/Half-precision General Matrix Multiplication) operations based on configured parameters. The duration of the test is configurable, both in terms of time (how long to run) and iterations (how many times to run).
The GPU Stress Test runs various GEMM computations as workloads to stress the GPU FLOPS performance and check whether it meets the configured target GFLOPS. GEMM workloads shall be configured as either operation type or data type. GEMM based on operation types include SGEMM, DGEMM and HGEMM (Single/Double/Half-precision General Matrix Multiplication) - configured using operation parameter. GEMM based on data types include `fp8`, `i8`, `fp16`, `bf16`, `fp32` and `tf32` (`xf32`) - configured using data type parameter. The duration of the test is configurable, both in terms of time (how long to run) and iterations (how many times to run).

## Input EDPp Test - IET module
The Input EDPp Test runs GEMM workloads to stress the GPU power (i.e. TGP). This test is used to verify if the GPU is capable of handling max. power stress for a sustained period of time. Also checks whether GPU power reaches a set target power.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018-2022 Advanced Micro Devices, Inc. All rights reserved.
Copyright (c) 2018-2024 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
Expand Down
16 changes: 3 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,11 @@ CentOS :

RHEL :

sudo yum install -y cmake3 doxygen rpm rpm-build git gcc-c++ yaml-cpp-devel

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/pciutils-devel-3.5.1-3.el7.x86_64.rpm

sudo rpm -ivh pciutils-devel-3.5.1-3.el7.x86_64.rpm
sudo yum install -y cmake3 doxygen rpm rpm-build git gcc-c++ yaml-cpp-devel pciutils-devel

SLES :

sudo SUSEConnect -p sle-module-desktop-applications/15.1/x86_64

sudo SUSEConnect --product sle-module-development-tools/15.1/x86_64

sudo zypper install -y cmake doxygen pciutils-devel libpci3 rpm git rpm-build gcc-c++ yaml-cpp-devel
sudo zypper install -y cmake doxygen pciutils-devel libpci3 rpm git rpm-build gcc-c++ yaml-cpp-devel

## Install ROCm stack, rocblas and rocm-smi-lib
Install ROCm stack for Ubuntu/CentOS/SLES/RHEL. Refer to
Expand Down Expand Up @@ -136,7 +128,6 @@ SUSE :
Command examples
./rvs --help ; Lists all options to run RVS test suite
./rvs -g ; Lists supported GPUs available in the machine
./rvs -d 3 ; Run set of RVS default sanity tests (in rvs.conf) with verbose level 3
./rvs -c conf/gst_single.conf ; Run GST module default test configuration

### Run version pre-compiled and packaged with ROCm release
Expand All @@ -146,7 +137,6 @@ SUSE :
Command examples
./rvs --help ; Lists all options to run RVS test suite
./rvs -g ; Lists supported GPUs available in the machine
./rvs -d 3 ; Run set of RVS sanity tests (in rvs.conf) with verbose level 3
./rvs -c ../share/rocm-validation-suite/conf/gst_single.conf ; Run GST default test configuration

To run GPU specific test configuration, use configuration files from GPU folders in "/opt/rocm/share/rocm-validation-suite/conf"
Expand All @@ -159,5 +149,5 @@ Note: If present, always use GPU specific configurations instead of default test
## Reporting

Test results, errors and verbose logs are printed as terminal output. To enable json logging use "-j" command line option.
The json output file is stored in /var/tmp folder and the name of the file will be printed.
The json output file path can be specified after "-j" option. If not specified, a file is created in /var/tmp folder and the name of the file will be printed to stdout.

3 changes: 2 additions & 1 deletion babel.so/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ set(HIP_HCC_BUILD_FLAGS "${HIP_HCC_BUILD_FLAGS} -DHIP_VERSION_MAJOR=${HIP_VERSIO
set(HIP_HCC_BUILD_FLAGS)
set(HIP_HCC_BUILD_FLAGS "${HIP_HCC_BUILD_FLAGS} -fPIC ${HCC_CXX_FLAGS} -I${HSA_PATH}/include ${ASAN_CXX_FLAGS}")

set(HIP_STREAM_BUILD_FLAGS "-DNONTEMPORAL=1 -DDWORDS_PER_LANE=4 -DTBSIZE=1024 -DCHUNKS_PER_BLOCK=2 -O3 -std=c++17")
set(HIP_STREAM_BUILD_FLAGS "-DNONTEMPORAL=1 -DTBSIZE=1024 -O3 -std=c++17")

# Set compiler and compiler flags
set(CMAKE_CXX_COMPILER "${HIPCC_PATH}/bin/hipcc")
Expand Down Expand Up @@ -177,3 +177,4 @@ if (RVS_BUILD_TESTS)
)
include(${CMAKE_CURRENT_SOURCE_DIR}/tests.cmake)
endif()

40 changes: 9 additions & 31 deletions babel.so/include/HIPStream.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,40 +23,16 @@
template <class T>
class HIPStream : public Stream<T>
{
#ifdef __HIP_PLATFORM_NVCC__
#ifndef DWORDS_PER_LANE
#define DWORDS_PER_LANE 1
#endif
#ifndef CHUNKS_PER_BLOCK
#define CHUNKS_PER_BLOCK 8
#endif
#else
#ifndef DWORDS_PER_LANE
#define DWORDS_PER_LANE 4
#endif
#ifndef CHUNKS_PER_BLOCK
#define CHUNKS_PER_BLOCK 1
#endif
#endif
// make sure that either:
// DWORDS_PER_LANE is less than sizeof(T), in which case we default to 1 element
// or
// DWORDS_PER_LANE is divisible by sizeof(T)
static_assert((DWORDS_PER_LANE * sizeof(unsigned int) < sizeof(T)) ||
(DWORDS_PER_LANE * sizeof(unsigned int) % sizeof(T) == 0),
"DWORDS_PER_LANE not divisible by sizeof(element_type)");

static constexpr unsigned int chunks_per_block{CHUNKS_PER_BLOCK};
// take into account the datatype size
// that is, if we specify 4 DWORDS_PER_LANE, this is 2 FP64 elements
// and 4 FP32 elements
static constexpr unsigned int elements_per_lane{
(DWORDS_PER_LANE * sizeof(unsigned int)) < sizeof(T) ? 1 : (
DWORDS_PER_LANE * sizeof(unsigned int) / sizeof(T))};
protected:

unsigned int dwords_per_lane;
unsigned int chunks_per_block;
unsigned int elements_per_lane;

// Size of arrays
const unsigned int array_size;
const unsigned int block_cnt;
unsigned int block_cnt;
const bool evt_timing;
hipEvent_t start_ev;
hipEvent_t stop_ev;
Expand All @@ -71,7 +47,8 @@ class HIPStream : public Stream<T>
T *d_c;

public:
HIPStream(const unsigned int, const bool, const int);
HIPStream(const unsigned int, const bool, const int,
const unsigned int, const unsigned int);
~HIPStream();

virtual float read() override;
Expand All @@ -85,3 +62,4 @@ class HIPStream : public Stream<T>
virtual void init_arrays(T initA, T initB, T initC) override;
virtual void read_arrays(std::vector<T>& a, std::vector<T>& b, std::vector<T>& c) override;
};

18 changes: 10 additions & 8 deletions babel.so/include/action.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/********************************************************************************
*
* Copyright (c) 2018-2022 Advanced Micro Devices, Inc. All rights reserved.
* Copyright (c) 2018-2024 Advanced Micro Devices, Inc. All rights reserved.
*
* MIT LICENSE:
* Permission is hereby granted, free of charge, to any person obtaining a copy of
Expand Down Expand Up @@ -53,20 +53,22 @@ using std::map;
#define RVS_CONF_MEM_MIBIBYTE "mibibytes"
#define RVS_CONF_OP_CSV "o/p_csv"
#define RVS_CONF_SUBTEST "subtest"
#define RVS_CONF_DWORDS_PER_LANE "dwords_per_lane"
#define RVS_CONF_CHUNKS_PER_BLOCK "chunks_per_block"

#define MEM_DEFAULT_ARRAY_SIZE 33554432 // 32 MB
#define MEM_DEFAULT_NUM_ITER 100
#define MEM_DEFAULT_TEST_TYPE 1
#define MEM_DEFAULT_MEM_MIBIBYTE false
#define MEM_DEFAULT_OP_CSV false
#define MEM_DEFAULT_SUBTEST 5
#define MEM_DEFAULT_DWORDS_PER_LANE 4
#define MEM_DEFAULT_CHUNKS_PER_BLOCK 2

#define MEM_NO_COMPATIBLE_GPUS "No AMD compatible GPU found!"
#define FLOATING_POINT_REGEX "^[0-9]*\\.?[0-9]+$"
#define JSON_CREATE_NODE_ERROR "JSON cannot create node"



/**
* @class mem_action
* @ingroup MEM
Expand All @@ -84,12 +86,10 @@ class mem_action: public rvs::actionbase {
virtual ~mem_action();

virtual int run(void);

std::string mem_ops_type;

protected:
//! TRUE if JSON output is required
bool bjson;
//! Memory in bytes
bool mibibytes;
//! output in csv
Expand All @@ -102,7 +102,10 @@ class mem_action: public rvs::actionbase {
uint64_t num_iterations;
//! number of iterations
uint64_t array_size;

//! number of dwords per lane
uint16_t dwords_per_lane;
//! number of chunks per block
uint16_t chunks_per_block;

// configuration properties getters
bool get_all_mem_config_keys(void);
Expand All @@ -113,7 +116,6 @@ class mem_action: public rvs::actionbase {
*/
int get_num_amd_gpu_devices(void);
int get_all_selected_gpus(void);

bool do_mem_stress_test(map<int, uint16_t> mem_gpus_device_index);
};

Expand Down
Loading
Loading