From e80760c890aec1c827b0a7133c466987ef7db869 Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Fri, 28 Mar 2025 02:33:05 +0000 Subject: [PATCH] RVS - Add long-running tests Change-Id: Iddeb7f2d4fdcd69d7ac1ae94b2fa128ee3011b1a Signed-off-by: Galantsev, Dmitrii [ROCm/rdc commit: bdb2367010786375640ac6151513b3ab6d6b513c] --- projects/rdc/include/rdc/rdc.h | 22 +- .../rdc/include/rdc_modules/rdc_rvs/RvsBase.h | 11 +- .../rdc_libs/rdc/src/RdcDiagnosticModule.cc | 7 + .../rdc_modules/rdc_rvs/CMakeLists.txt | 4 - .../rdc_modules/rdc_rvs/RdcDiagnosticLib.cc | 8 +- .../rdc_libs/rdc_modules/rdc_rvs/RvsBase.cc | 5 +- .../rdc_rvs/conf/MI210/babel_long.conf | 51 ++++ .../rdc_rvs/conf/MI210/gst_single_long.conf | 132 +++++++++ .../rdc_rvs/conf/MI210/iet_stress.conf | 10 +- .../rdc_rvs/conf/MI210/iet_stress_long.conf | 114 ++++++++ .../rdc_rvs/conf/MI210/pebb_single_long.conf | 236 ++++++++++++++++ .../rdc_rvs/conf/MI300A/iet_stress_long.conf | 63 +++++ .../rdc_rvs/conf/MI300A/pebb_single_long.conf | 229 ++++++++++++++++ .../rdc_rvs/conf/MI300X/babel_long.conf | 49 ++++ .../rdc_rvs/conf/MI300X/gst_single_long.conf | 186 +++++++++++++ .../rdc_rvs/conf/MI300X/iet_stress.conf | 4 +- .../rdc_rvs/conf/MI300X/iet_stress_long.conf | 64 +++++ .../rdc_rvs/conf/MI300X/pebb_single_long.conf | 95 +++++++ .../rdc_rvs/conf/MI308X/babel_long.conf | 51 ++++ .../rdc_rvs/conf/MI308X/gst_single_long.conf | 256 ++++++++++++++++++ .../rdc_rvs/conf/MI308X/iet_stress.conf | 4 +- .../rdc_rvs/conf/MI308X/iet_stress_long.conf | 58 ++++ .../rdc_rvs/conf/nv21/gst_single.conf | 2 +- .../rdc_rvs/conf/nv21/gst_single_long.conf | 41 +++ .../rdc_rvs/conf/nv21/iet_stress_long.conf | 1 + .../rdc_rvs/conf/nv21/pebb_single_long.conf | 1 + .../rdc_rvs/conf/nv31/gst_single.conf | 2 +- .../rdc_rvs/conf/nv31/gst_single_long.conf | 41 +++ .../rdc_rvs/conf/nv31/iet_stress_long.conf | 41 +++ .../rdc_rvs/conf/nv31/pebb_single_long.conf | 43 +++ .../rdc_rvs/conf/nv32/gst_single_long.conf | 41 +++ .../rdc_rvs/conf/nv32/iet_stress_long.conf | 1 + .../rdc_rvs/conf/nv32/pebb_single_long.conf | 1 + projects/rdc/rdci/src/RdciDiagSubSystem.cc | 24 +- 34 files changed, 1851 insertions(+), 47 deletions(-) create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/babel_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/gst_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/pebb_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/iet_stress_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/pebb_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/babel_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/gst_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/pebb_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/babel_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/gst_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single_long.conf create mode 120000 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/iet_stress_long.conf create mode 120000 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/pebb_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/iet_stress_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/pebb_single_long.conf create mode 100644 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/gst_single_long.conf create mode 120000 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/iet_stress_long.conf create mode 120000 projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/pebb_single_long.conf diff --git a/projects/rdc/include/rdc/rdc.h b/projects/rdc/include/rdc/rdc.h index d22a0bc2f1..88441502d2 100644 --- a/projects/rdc/include/rdc/rdc.h +++ b/projects/rdc/include/rdc/rdc.h @@ -572,15 +572,19 @@ typedef enum { RDC_DIAG_TEST_FIRST = 0, //!< The diagnostic test pass RDC_DIAG_COMPUTE_PROCESS = RDC_DIAG_TEST_FIRST, - RDC_DIAG_COMPUTE_QUEUE, //!< The Compute Queue is ready - RDC_DIAG_SYS_MEM_CHECK, //!< Check System memory - RDC_DIAG_NODE_TOPOLOGY, //!< Report node topology - RDC_DIAG_GPU_PARAMETERS, //!< GPU parameters in range - RDC_DIAG_RVS_GST_TEST, //!< RVS GST test - RDC_DIAG_RVS_MEMBW_TEST, //!< RVS bandwidth test - RDC_DIAG_RVS_H2DD2H_TEST, //!< RVS Host<->Device transfer speed test - RDC_DIAG_RVS_IET_TEST, //!< RVS IET test - RDC_DIAG_RVS_CUSTOM, //!< RVS custom test + RDC_DIAG_COMPUTE_QUEUE, //!< The Compute Queue is ready + RDC_DIAG_SYS_MEM_CHECK, //!< Check System memory + RDC_DIAG_NODE_TOPOLOGY, //!< Report node topology + RDC_DIAG_GPU_PARAMETERS, //!< GPU parameters in range + RDC_DIAG_RVS_GST_TEST, //!< RVS GST test + RDC_DIAG_RVS_MEMBW_TEST, //!< RVS bandwidth test + RDC_DIAG_RVS_H2DD2H_TEST, //!< RVS Host<->Device transfer speed test + RDC_DIAG_RVS_IET_TEST, //!< RVS IET test + RDC_DIAG_RVS_GST_LONG_TEST, //!< RVS GST test + RDC_DIAG_RVS_MEMBW_LONG_TEST, //!< RVS bandwidth test + RDC_DIAG_RVS_H2DD2H_LONG_TEST, //!< RVS Host<->Device transfer speed test + RDC_DIAG_RVS_IET_LONG_TEST, //!< RVS IET test + RDC_DIAG_RVS_CUSTOM, //!< RVS custom test RDC_DIAG_TEST_LAST, } rdc_diag_test_cases_t; diff --git a/projects/rdc/include/rdc_modules/rdc_rvs/RvsBase.h b/projects/rdc/include/rdc_modules/rdc_rvs/RvsBase.h index 062321724d..913e50f58f 100644 --- a/projects/rdc/include/rdc_modules/rdc_rvs/RvsBase.h +++ b/projects/rdc/include/rdc_modules/rdc_rvs/RvsBase.h @@ -26,7 +26,6 @@ THE SOFTWARE. #include #include -#include #include #include #include @@ -56,8 +55,14 @@ static const std::map gfx_to_rvs_conf = { {0x1103, "nv31"}, // ? }; static const std::map test_to_name = { - {RDC_DIAG_RVS_GST_TEST, "gst_single.conf"}, {RDC_DIAG_RVS_MEMBW_TEST, "babel.conf"}, - {RDC_DIAG_RVS_H2DD2H_TEST, "pebb_single.conf"}, {RDC_DIAG_RVS_IET_TEST, "iet_stress.conf"}, + {RDC_DIAG_RVS_GST_TEST, "gst_single.conf"}, + {RDC_DIAG_RVS_MEMBW_TEST, "babel.conf"}, + {RDC_DIAG_RVS_H2DD2H_TEST, "pebb_single.conf"}, + {RDC_DIAG_RVS_IET_TEST, "iet_stress.conf"}, + {RDC_DIAG_RVS_GST_LONG_TEST, "gst_single_long.conf"}, + {RDC_DIAG_RVS_MEMBW_LONG_TEST, "babel_long.conf"}, + {RDC_DIAG_RVS_H2DD2H_LONG_TEST, "pebb_single_long.conf"}, + {RDC_DIAG_RVS_IET_LONG_TEST, "iet_stress_long.conf"}, {RDC_DIAG_RVS_CUSTOM, "CUSTOM_CONFIG"}, }; diff --git a/projects/rdc/rdc_libs/rdc/src/RdcDiagnosticModule.cc b/projects/rdc/rdc_libs/rdc/src/RdcDiagnosticModule.cc index 5fdd52c4cb..6a569ca199 100644 --- a/projects/rdc/rdc_libs/rdc/src/RdcDiagnosticModule.cc +++ b/projects/rdc/rdc_libs/rdc/src/RdcDiagnosticModule.cc @@ -99,6 +99,13 @@ rdc_status_t RdcDiagnosticModule::rdc_diagnostic_run(const rdc_group_info_t& gpu tests_to_search_for.push_back(RDC_DIAG_RVS_IET_TEST); } + if (level >= RDC_DIAG_LVL_LONG) { // Medium run and above + tests_to_search_for.push_back(RDC_DIAG_RVS_GST_LONG_TEST); + tests_to_search_for.push_back(RDC_DIAG_RVS_MEMBW_LONG_TEST); + tests_to_search_for.push_back(RDC_DIAG_RVS_H2DD2H_LONG_TEST); + tests_to_search_for.push_back(RDC_DIAG_RVS_IET_LONG_TEST); + } + std::vector tests_to_run; if (is_custom) { // respect custom config diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt index e96d9109c3..7f9f80f0de 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt @@ -63,11 +63,7 @@ if(BUILD_RVS) endif() # Install RVS config files into /opt/rocm/share/rdc/conf/rvs/ - #file(GLOB RDC_RVS_CONFIG_FILES "${SRC_DIR}/conf/*") install(DIRECTORY "${SRC_DIR}/conf/" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/conf/rvs/ COMPONENT ${SERVER_COMPONENT}) - #install(FILES ${RDC_RVS_CONFIG_FILES} - # DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/conf - # COMPONENT ${RDC_RVS_LIB_COMPONENT}) endif() diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RdcDiagnosticLib.cc b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RdcDiagnosticLib.cc index 51cb29ef6c..3cdd37b7e7 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RdcDiagnosticLib.cc +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RdcDiagnosticLib.cc @@ -22,7 +22,7 @@ THE SOFTWARE. #include #include -#include +#include #include "rdc/rdc.h" #include "rdc_lib/RdcDiagnosticLibInterface.h" @@ -119,7 +119,11 @@ rdc_status_t rdc_diag_test_case_run(rdc_diag_test_cases_t test_case, case RDC_DIAG_RVS_GST_TEST: case RDC_DIAG_RVS_MEMBW_TEST: case RDC_DIAG_RVS_H2DD2H_TEST: - case RDC_DIAG_RVS_IET_TEST: { + case RDC_DIAG_RVS_IET_TEST: + case RDC_DIAG_RVS_GST_LONG_TEST: + case RDC_DIAG_RVS_MEMBW_LONG_TEST: + case RDC_DIAG_RVS_H2DD2H_LONG_TEST: + case RDC_DIAG_RVS_IET_LONG_TEST: { const std::string test_name = "Finished running " + test_to_name.at(test_case); if (test_to_conf.find(test_case) == test_to_conf.end()) { RDC_LOG(RDC_ERROR, "cannot find test " << test_to_name.at(test_case)); diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RvsBase.cc b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RvsBase.cc index 68b0d24f99..24cd27c9aa 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RvsBase.cc +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/RvsBase.cc @@ -23,6 +23,7 @@ THE SOFTWARE. #include +#include #include #include "rdc/rdc.h" @@ -132,8 +133,8 @@ rvs_status_t RdcRVSBase::run_rvs_app(const char* config, const size_t config_siz rdc_diag_callback_t* callback) { char active_config[MAX_CONFIG_LENGTH]; rvs_session_property_t session_property = {RVS_SESSION_TYPE_DEFAULT_CONF, {{RVS_MODULE_GST}}}; - rvs_session_id_t session_id; - rvs_status_t status; + rvs_session_id_t session_id = 0; + rvs_status_t status = RVS_STATUS_FAILED; // NOTE: device_index is NOT set by RDC unless a custom config is provided. // Meaning RDC index has no impact on RVS index. diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/babel_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/babel_long.conf new file mode 100644 index 0000000000..7ee2727237 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/babel_long.conf @@ -0,0 +1,51 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# BABEL test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space (e.g.: device: 50599 3245) +# Set parallel execution to false +# Set buffer size to reflect the buffer you want to test +# Set run count to 10 +# + +actions: +- name: babel-256MiB + device: all + module: babel # Name of the module + parallel: true # Parallel true or false + count: 10 # Number of times you want to repeat the test from the begin ( A clean start every time) + num_iter: 5000 # Number of iterations, this many kernels are launched simultaneosuly and stresses the system + array_size: 268435456 # Buffer size the test operates, this is 256 MiB + test_type: 1 # type of test, 1: Float, 2: Double, 3: Triad float, 4: Triad double + mibibytes: true # mibibytes (MiB) or megabytes (MB), true for MiB + o/p_csv: false # o/p as csv file + subtest: 5 # 1: copy 2: copy+mul 3: copy+mul+add 4: copy+mul+add+traid 5: copy+mul+add+traid+dot + dwords_per_lane: 4 # Number of dwords per lane + chunks_per_block: 4 # Number of chunks per block + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/gst_single_long.conf new file mode 100644 index 0000000000..2ffade49c1 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/gst_single_long.conf @@ -0,0 +1,132 @@ +# ################################################################################ +# # +# # Copyright (c) 2024-2025 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + + + +# GST test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space +# Set parallel execution to false +# Set matrix_size to 8640 (for Vega 10 cards). For Vega 20, the recommended matrix_size is 8640 +# Set run count to 2 (each test will run twice) +# Set copy_matrix to false (the matrices will be copied to GPUs only once) +# +# Run test with: +# cd bin +# sudo ./rvs -c conf/gst_1.conf -d 3 +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves 5000 gflops +# in maximum 7 seconds and then the GPU sustains the gflops +# for the rest of the test duration (total duration is 1 minutes). +# A single Gflops violation (with a 7% tolerance) is allowed. +# FALSE otherwise + +actions: +- name: gpustress-41000-fp32-false + device: all + module: gst + parallel: true + count: 1 + duration: 60000 # 1 min + copy_matrix: false + target_stress: 41000 + matrix_size_a: 28000 + matrix_size_b: 28000 + matrix_size_c: 28000 + data_type: fp32_r + lda: 28000 + ldb: 28000 + ldc: 28000 + blas_source: hipblaslt + +- name: gpustress-30000-dgemm-false + device: all + module: gst + parallel: true + count: 1 + #hot_calls: 1000 + duration: 60000 # 1 min + copy_matrix: false + target_stress: 30000 + matrix_size_a: 8192 + matrix_size_b: 8192 + matrix_size_c: 8192 + matrix_init: trig + ops_type: dgemm + lda: 8192 + ldb: 8192 + ldc: 8192 + +- name: gst-8096-150000-fp16 + device: all + module: gst + parallel: true + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + copy_matrix: false + target_stress: 150000 + matrix_size_a: 8096 + matrix_size_b: 8096 + matrix_size_c: 8096 + data_type: fp16_r + lda: 8096 + ldb: 8096 + ldc: 8096 + ldd: 8096 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + blas_source: hipblaslt + +- name: gst-160Tflops-8K8K8K-rand-i8 + device: all + module: gst + parallel: true + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 500 + copy_matrix: false + target_stress: 160000 + matrix_size_a: 8192 + matrix_size_b: 8192 + matrix_size_c: 8192 + matrix_init: rand + data_type: i8_r + lda: 8192 + ldb: 8192 + ldc: 8192 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + blas_source: hipblaslt + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress.conf index cdec29bc19..5f0723c24e 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress.conf +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress.conf @@ -30,7 +30,7 @@ actions: parallel: true count: 1 wait: 100 - duration: 50000 + duration: 60000 # 1 min ramp_interval: 5000 sample_interval: 700 log_interval: 700 @@ -46,7 +46,7 @@ actions: parallel: true count: 1 wait: 100 - duration: 50000 + duration: 60000 # 1 min ramp_interval: 5000 sample_interval: 1500 log_interval: 2000 @@ -62,7 +62,7 @@ actions: parallel: false count: 1 wait: 100 - duration: 50000 + duration: 60000 # 1 min ramp_interval: 5000 sample_interval: 500 log_interval: 500 @@ -98,7 +98,7 @@ actions: parallel: true count: 1 wait: 100 - duration: 50000 + duration: 60000 # 1 min ramp_interval: 5000 sample_interval: 500 log_interval: 500 @@ -134,7 +134,7 @@ actions: parallel: false count: 1 wait: 100 - duration: 50000 + duration: 60000 # 1 min ramp_interval: 5000 sample_interval: 1500 log_interval: 2000 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress_long.conf new file mode 100644 index 0000000000..06b56a24bc --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/iet_stress_long.conf @@ -0,0 +1,114 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +actions: +- name: action_1 + device: all + module: iet + parallel: true + count: 1 + wait: 100 + duration: 300000 # 5 min + ramp_interval: 5000 + sample_interval: 700 + log_interval: 700 + max_violations: 1 + target_power: 300 + tolerance: 0.06 + matrix_size: 8640 + ops_type: dgemm + +# IET test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# Set parallel execution to true +# Set matrix_size to 8640 (for Vega 10 cards). For Vega 20, the recommended matrix_size is 8640 +# Set run count to 2 (each test will run twice) +# +# Run test with: +# cd bin +# sudo ./rvs -c conf/iet4.conf -d 3 +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU power reaches 150W +# in maximum 5 seconds and then the GPU sustains the same power +# for the rest of the test duration (total duration is 10 seconds). +# A single power violation (with a 10% tolerance) is allowed. +# FALSE otherwise + +- name: action_2 + device: all + module: iet + parallel: true + count: 1 + wait: 100 + duration: 300000 # 5 min + ramp_interval: 5000 + sample_interval: 500 + log_interval: 500 + max_violations: 1 + target_power: 300 + tolerance: 0.1 + matrix_size: 8640 + ops_type: sgemm + +# IET test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# Set parallel execution to false +# Set matrix_size to 8640 (for Vega 10 cards). For Vega 20, the recommended matrix_size is 8640 +# Set run count to 2 (each test will run twice) +# +# Run test with: +# cd bin +# sudo ./rvs -c conf/iet5.conf -d 3 +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU power reaches 50W +# in maximum 5 seconds and then the GPU sustains the same power +# for the rest of the test duration (total duration is 10 seconds). +# A single power violation (with a 10% tolerance) is allowed. +# FALSE otherwise + +- name: action_3 + device: all + module: iet + parallel: false + count: 1 + wait: 100 + duration: 300000 # 5 min + ramp_interval: 5000 + sample_interval: 1500 + log_interval: 2000 + max_violations: 1 + target_power: 300 + tolerance: 0.1 + matrix_size: 8640 + ops_type: sgemm + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/pebb_single_long.conf new file mode 100644 index 0000000000..bbbb8e6829 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI210/pebb_single_long.conf @@ -0,0 +1,236 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# PEBB test #1 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test1.conf -d 3 +# + + +actions: +- name: h2d-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 2 # PCIe + + +# PEBB test #2 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# +# Run test with : +# cd bin +# ./rvs -c conf/pebb_test2.conf -d 3 +# + + +- name: d2h-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 2 # PCIe + + + +# PEBB test #3 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test3.conf -d 3 +# + +- name: h2d-d2h-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 2 # PCIe + + + + +# PEBB test #4 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test4.conf -d 3 + +- name: h2d-parallel-xMB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + parallel: true + link_type: 2 # PCIe + + +# PEBB test #5 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test5.conf -d 3 + +- name: d2h-parallel-xMB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + parallel: true + link_type: 2 # PCIe + + + +# PEBB test #6 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test6.conf -d 3 + +- name: h2d-d2h-xMB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + parallel: true + link_type: 2 # PCIe + + +# PEBB test #7 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# 4. parallel transfers +# 5. back-to-back 51MB +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test7.conf -d 3 + +- name: h2d-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: false + host_to_device: true + b2b_block_size: 51200 + parallel: false + link_type: 2 # PCIe + + +# PEBB test #8 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host-to-device and device-to-host +# 4. parallel back-to-back transfers +# 5. back-to-back 51MB +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test8.conf -d 3 + +- name: d2h-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 5000 + device_to_host: true + host_to_device: true + b2b_block_size: 51200 + parallel: true + link_type: 2 # PCIe + +# PEBB test #9 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# 4. PCIe ponly +# 5. parallel back-to-back transfers +# Run test with: +# cd bin +# ./rvs -c conf/pebb_test9.conf -d 3 + +- name: h2d-d2h-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + b2b_block_size: 51200 + parallel: false + link_type: 2 # PCIe diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/iet_stress_long.conf new file mode 100644 index 0000000000..40ee368655 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/iet_stress_long.conf @@ -0,0 +1,63 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# IET stress test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by comma. +# Set parallel execution to true (gemm workload execution on all GPUs in parallel) +# Set gemm operation type as dgemm. +# Set matrix_size to 28000. +# Test duration set to 10 mins. +# Target power set to 550W for each GPU. +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/iet_stress.conf +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves power target of 550W. +# + +actions: +- name: iet-stress-550W-dgemm-true + device: all + module: iet + parallel: true + duration: 300000 # 5 min + ramp_interval: 10000 + sample_interval: 3000 + log_interval: 3000 + target_power: 550 + matrix_size: 28000 + ops_type: dgemm + lda: 28000 + ldb: 28000 + ldc: 28000 + alpha: 1 + beta: 1 + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/pebb_single_long.conf new file mode 100644 index 0000000000..ab5aae29c7 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300A/pebb_single_long.conf @@ -0,0 +1,229 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# PEBB test #1 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +actions: +- name: h2d-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 4 # XGMI + + +# PEBB test #2 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# +# Run test with : +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: d2h-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 4 # XGMI + + +# PEBB test #3 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: h2d-d2h-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 4 # XGMI + + +# PEBB test #4 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: h2d-parallel-xMB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + parallel: true + link_type: 4 # XGMI + + +# PEBB test #5 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: d2h-parallel-xMB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + parallel: true + link_type: 4 # XGMI + + +# PEBB test #6 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# 4. parallel transfers +# 5. random block sizes +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: h2d-d2h-xMB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + parallel: true + link_type: 4 # XGMI + + +# PEBB test #7 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device +# 4. parallel transfers +# 5. back-to-back 51MB +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: h2d-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: false + host_to_device: true + b2b_block_size: 51200 + parallel: false + link_type: 4 # XGMI + + +# PEBB test #8 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host-to-device and device-to-host +# 4. parallel back-to-back transfers +# 5. back-to-back 51MB +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: d2h-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 60000 # 1 min + device_to_host: true + host_to_device: true + b2b_block_size: 51200 + parallel: true + link_type: 4 # XGMI + + +# PEBB test #9 +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional +# 4. XGMI only +# 5. parallel back-to-back transfers +# Run test with: +# cd bin +# ./rvs -c conf/MI300A/pebb_single.conf -d 3 +# +- name: h2d-d2h-b2b-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + b2b_block_size: 51200 + parallel: false + link_type: 4 # XGMI + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/babel_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/babel_long.conf new file mode 100644 index 0000000000..cc5f7e4ee6 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/babel_long.conf @@ -0,0 +1,49 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# BABEL test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space (e.g.: device: 50599 3245) +# Set parallel execution to false +# Set buffer size to reflect the buffer you want to test +# Set run count to 10 +# + +actions: +- name: babel-float-256MiB + device: all + module: babel # Name of the module + parallel: false # Parallel true or false + count: 10 # Number of times you want to repeat the test from the begin ( A clean start every time) + num_iter: 5000 # Number of iterations, this many kernels are launched simultaneosuly and stresses the system + array_size: 268435456 # Buffer size the test operates, this is 256 MiB + test_type: 1 # type of test, 1: Float, 2: Double, 3: Triad float, 4: Triad double + mibibytes: true # mibibytes (MiB) or megabytes (MB), true for MiB + o/p_csv: false # o/p as csv file + subtest: 5 # 1: copy 2: copy+mul 3: copy+mul+add 4: copy+mul+add+traid 5: copy+mul+add+traid+dot + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/gst_single_long.conf new file mode 100644 index 0000000000..1efa43009c --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/gst_single_long.conf @@ -0,0 +1,186 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# GST test - gst-1215Tflops-4K4K8K-rand-fp8 +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space +# Set matrices sizes to 4864 * 4096 * 8192 +# Set matrix data type as fp8 real number +# Set matrix data initialization method as random integer +# Set copy_matrix to false (the matrices will be copied to GPUs only once) +# Set target stress GFLOPS as 1215000 (1215 TFLOPS) +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves 1215 TFLOPS or more +# within the test duration of 1 minutes after ramp-up duration of 5 seconds. +# Else test on the GPU fails (FALSE). + +actions: +- name: gst-1215Tflops-4K4K8K-rand-fp8 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 1215000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: fp8_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-981Tflops-4K4K8K-trig-fp8 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 981000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: fp8_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-639Tflops-4K4K8K-rand-fp16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 639000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: fp16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-523Tflops-4K4K8K-trig-fp16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 523000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: fp16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-581Tflops-4K4K8K-rand-bf16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 581000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: bf16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-552Tflops-4K4K8K-trig-bf16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 1000 + copy_matrix: false + target_stress: 552000 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: bf16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress.conf index 9e52d42c32..d142c8f9f6 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress.conf +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress.conf @@ -32,7 +32,7 @@ # Set parallel execution to true (gemm workload execution on all GPUs in parallel) # Set gemm operation type as dgemm. # Set matrix_size to 28000. -# Test duration set to 10 mins. +# Test duration set to 1 mins. # Target power set to 750W for each GPU. # # Run test with: @@ -48,7 +48,7 @@ actions: device: all module: iet parallel: true - duration: 60000 + duration: 60000 # 1 min ramp_interval: 10000 sample_interval: 5000 log_interval: 5000 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress_long.conf new file mode 100644 index 0000000000..9b90bff6db --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/iet_stress_long.conf @@ -0,0 +1,64 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# IET stress test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by comma. +# Set parallel execution to true (gemm workload execution on all GPUs in parallel) +# Set gemm operation type as dgemm. +# Set matrix_size to 28000. +# Test duration set to 10 mins. +# Target power set to 750W for each GPU. +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300X/iet_stress.conf +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves power target of 750W. +# + +actions: +- name: iet-stress-750W-dgemm-true + device: all + module: iet + parallel: true + duration: 300000 # 5 min + ramp_interval: 10000 + sample_interval: 5000 + log_interval: 5000 + target_power: 750 + matrix_size: 28000 + ops_type: dgemm + lda: 28000 + ldb: 28000 + ldc: 28000 + alpha: 1 + beta: 1 + matrix_init: hiprand + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/pebb_single_long.conf new file mode 100644 index 0000000000..82cf3d181a --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI300X/pebb_single_long.conf @@ -0,0 +1,95 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# PEBB test #1 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# 4. Transfer block size 64MB +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300X/pebb_single.conf +# +actions: +- name: d2h-sequential-64MB + device: all + module: pebb + duration: 300000 # 5 min + device_to_host: true + host_to_device: false + parallel: false + block_size: 67108864 + link_type: 2 # PCIe + +# PEBB test #2 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. device to host +# 4. Transfer block size 64MB +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300X/pebb_single.conf +# +- name: h2d-sequential-64MB + device: all + module: pebb + duration: 300000 # 5 min + device_to_host: false + host_to_device: true + parallel: false + block_size: 67108864 + link_type: 2 # PCIe + +# PEBB test #3 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. host to device & device to host +# 4. Transfer block size 64MB +# +# Run test with: +# cd bin +# ./rvs -c conf/MI300X/pebb_single.conf +# +- name: h2d-d2h-sequential-64MB + device: all + module: pebb + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + parallel: false + block_size: 67108864 + link_type: 2 # PCIe + warm_calls: 10 + hot_calls: 100 + b2b: true + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/babel_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/babel_long.conf new file mode 100644 index 0000000000..1d47f9d1da --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/babel_long.conf @@ -0,0 +1,51 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +# BABEL test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space (e.g.: device: 50599 3245) +# Set parallel execution to false +# Set buffer size to reflect the buffer you want to test +# Set run count to 10 +# + +actions: +- name: babel-float-256MiB + device: all + module: babel # Name of the module + parallel: false # Parallel true or false + count: 10 # Number of times you want to repeat the test from the begin ( A clean start every time) + num_iter: 5000 # Number of iterations, this many kernels are launched simultaneosuly and stresses the system + array_size: 268435456 # Buffer size the test operates, this is 256 MiB + test_type: 1 # type of test, 1: Float, 2: Double, 3: Triad float, 4: Triad double + mibibytes: true # mibibytes (MiB) or megabytes (MB), true for MiB + o/p_csv: false # o/p as csv file + subtest: 5 # 1: copy 2: copy+mul 3: copy+mul+add 4: copy+mul+add+traid 5: copy+mul+add+traid+dot + dwords_per_lane: 4 # Number of dwords per lane + chunks_per_block: 4 # Number of chunks per block + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/gst_single_long.conf new file mode 100644 index 0000000000..137e90d969 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/gst_single_long.conf @@ -0,0 +1,256 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# GST test - gst-96Tflops-8K12K4K-trig-tf32 +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by white space +# Set matrices sizes to 8192 * 12288 * 4096 +# Set matrix data type as fp32 real number +# Set compute type as tf32 (xf32) +# Set matrix data initialization method as trignometric float +# Set copy_matrix to false (the matrices will be copied to GPUs only once) +# Set target stress GFLOPS as 96 TFLOPS +# Set blas source (backend) as hipblaslt +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves 96 TFLOPS or more +# within the test duration of 1 minutes after ramp-up duration of 5 seconds. +# Else test on the GPU fails (FALSE). + +actions: +- name: gst-96Tflops-8K12K4K-trig-tf32 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 50 + copy_matrix: false + target_stress: 96000 + matrix_size_a: 8192 + matrix_size_b: 12288 + matrix_size_c: 4096 + matrix_init: trig + data_type: fp32_r + compute_type: xf32_r + transa: 0 + transb: 0 + alpha: 1 + beta: 1 + blas_source: hipblaslt + parallel: true + +- name: gst-406Tflops-8K13K17K-trig-i8 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 500 + copy_matrix: false + target_stress: 406000 + matrix_size_a: 8192 + matrix_size_b: 13312 + matrix_size_c: 17792 + matrix_init: trig + data_type: i8_r + compute_type: i32_r + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + blas_source: hipblaslt + parallel: true + +- name: gst-26Tflops-8K8K8K-trig-fp32 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 100 + copy_matrix: false + target_stress: 26000 + matrix_size_a: 8192 + matrix_size_b: 8960 + matrix_size_c: 8192 + matrix_init: trig + data_type: fp32_r + compute_type: fp32_r + transa: 0 + transb: 0 + alpha: 1 + beta: 1 + blas_source: hipblaslt + parallel: true + + +- name: gst-343Tflops-4K4K8K-rand-fp8 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 3000 + copy_matrix: false + target_stress: 343415 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: fp8_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-336Tflops-4K4K8K-trig-fp8 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 170000 + copy_matrix: false + target_stress: 336441 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: fp8_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-176Tflops-4K4K8K-rand-fp16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 3000 + copy_matrix: false + target_stress: 176191 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: fp16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-172Tflops-4K4K8K-trig-fp16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 90000 + copy_matrix: false + target_stress: 172333 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: fp16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-174Tflops-4K4K8K-rand-bf16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 3000 + copy_matrix: false + target_stress: 174364 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: rand + data_type: bf16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + +- name: gst-172Tflops-4K4K8K-trig-bf16 + device: all + module: gst + log_interval: 3000 + ramp_interval: 5000 + duration: 60000 # 1 min + hot_calls: 90000 + copy_matrix: false + target_stress: 172333 + matrix_size_a: 4864 + matrix_size_b: 4096 + matrix_size_c: 8192 + matrix_init: trig + data_type: bf16_r + lda: 8320 + ldb: 8320 + ldc: 4992 + ldd: 4992 + transa: 1 + transb: 0 + alpha: 1 + beta: 0 + parallel: true + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress.conf index ba6662ca1f..00a50d3381 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress.conf +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress.conf @@ -30,7 +30,7 @@ # option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify # all the GPUs IDs separated by comma. # Set parallel execution to true (gemm workload execution on all GPUs in parallel) -# Test duration set to 10 mins. +# Test duration set to 1 mins. # Target power set to 650W for each GPU. # Tolerance set to 5% of target power. # @@ -47,7 +47,7 @@ actions: device: all module: iet parallel: true - duration: 60000 + duration: 60000 # 1 min ramp_interval: 1000 sample_interval: 5000 log_interval: 5000 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress_long.conf new file mode 100644 index 0000000000..2c7afb6da6 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/MI308X/iet_stress_long.conf @@ -0,0 +1,58 @@ +# ################################################################################ +# # +# # Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# IET stress test +# +# Preconditions: +# Set device to all. If you need to run the rvs only on a subset of GPUs, please run rvs with -g +# option, collect the GPUs IDs (e.g.: GPU[ 5 - 50599] -> 50599 is the GPU ID) and then specify +# all the GPUs IDs separated by comma. +# Set parallel execution to true (gemm workload execution on all GPUs in parallel) +# Test duration set to 10 mins. +# Target power set to 650W for each GPU. +# Tolerance set to 5% of target power. +# +# Run test with: +# cd bin +# ./rvs -c conf/MI308X/iet_stress.conf +# +# Expected result: +# The test on each GPU passes (TRUE) if the GPU achieves power target of 750W. +# + +actions: +- name: iet-stress-650W-true + device: all + module: iet + parallel: true + duration: 300000 # 5 min + ramp_interval: 1000 + sample_interval: 5000 + log_interval: 5000 + target_power: 650 + tolerance: 0.05 + bw_workload: true + cp_workload: false + diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single.conf index bc059d7405..37a987726a 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single.conf +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single.conf @@ -29,7 +29,7 @@ actions: module: gst parallel: true count: 1 - duration: 10000 + duration: 10000 # 10 sec copy_matrix: false target_stress: 6000 matrix_size_a: 8640 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single_long.conf new file mode 100644 index 0000000000..bf6d7e5aa3 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/gst_single_long.conf @@ -0,0 +1,41 @@ +# ################################################################################ +# # +# # 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 +# # 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. +# # +# ############################################################################### + +actions: +- name: gpustress-9000-sgemm-false + device: all + module: gst + parallel: true + count: 1 + duration: 300000 # 5 min + copy_matrix: false + target_stress: 6000 + matrix_size_a: 8640 + matrix_size_b: 8640 + matrix_size_c: 8640 + ops_type: sgemm + lda: 8640 + ldb: 8640 + ldc: 8640 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/iet_stress_long.conf new file mode 120000 index 0000000000..c1101788d0 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/iet_stress_long.conf @@ -0,0 +1 @@ +../nv31/iet_stress_long.conf \ No newline at end of file diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/pebb_single_long.conf new file mode 120000 index 0000000000..5a9cf74bc5 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv21/pebb_single_long.conf @@ -0,0 +1 @@ +../nv31/pebb_single_long.conf \ No newline at end of file diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single.conf index af70c801dc..c75e32b796 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single.conf +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single.conf @@ -29,7 +29,7 @@ actions: module: gst parallel: true count: 1 - duration: 10000 + duration: 10000 # 10 sec copy_matrix: false target_stress: 10000 matrix_size_a: 8640 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single_long.conf new file mode 100644 index 0000000000..aef7bace80 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/gst_single_long.conf @@ -0,0 +1,41 @@ +# ################################################################################ +# # +# # Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +actions: +- name: gpustress-10000-sgemm-false + device: all + module: gst + parallel: true + count: 1 + duration: 300000 # 5 min + copy_matrix: false + target_stress: 10000 + matrix_size_a: 8640 + matrix_size_b: 8640 + matrix_size_c: 8640 + ops_type: sgemm + lda: 8640 + ldb: 8640 + ldc: 8640 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/iet_stress_long.conf new file mode 100644 index 0000000000..2ccc649c2d --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/iet_stress_long.conf @@ -0,0 +1,41 @@ +# ################################################################################ +# # +# # Copyright (c) 2018-2022 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +actions: +- name: action_1 + device: all + module: iet + parallel: true + count: 1 + wait: 100 + duration: 300000 # 5 min + ramp_interval: 5000 + sample_interval: 700 + log_interval: 700 + max_violations: 1 + target_power: 127 + tolerance: 0.06 + matrix_size: 8640 + ops_type: dgemm diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/pebb_single_long.conf new file mode 100644 index 0000000000..ce9b6ba4de --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv31/pebb_single_long.conf @@ -0,0 +1,43 @@ +# ################################################################################ +# # +# # Copyright (c) 2018-2022 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +# PEBB test #3 +# +# testing conditions: +# 1. all AMD compatible GPUs +# 2. all types of devices +# 3. bidirectional + +actions: +- name: h2d-d2h-sequential-51MB + device: all + module: pebb + log_interval: 800 + duration: 300000 # 5 min + device_to_host: true + host_to_device: true + parallel: true + block_size: 51200000 + link_type: 2 # PCIe diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/gst_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/gst_single_long.conf new file mode 100644 index 0000000000..f75467c470 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/gst_single_long.conf @@ -0,0 +1,41 @@ +# ################################################################################ +# # +# # Copyright (c) 2018-2023 Advanced Micro Devices, Inc. All rights reserved. +# # +# # MIT LICENSE: +# # 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. +# # +# ############################################################################### + +actions: +- name: gpustress-9000-sgemm-false + device: all + module: gst + parallel: true + count: 1 + duration: 300000 # 5 min + copy_matrix: false + target_stress: 6000 + matrix_size_a: 8640 + matrix_size_b: 8640 + matrix_size_c: 8640 + ops_type: sgemm + lda: 8640 + ldb: 8640 + ldc: 8640 diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/iet_stress_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/iet_stress_long.conf new file mode 120000 index 0000000000..c1101788d0 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/iet_stress_long.conf @@ -0,0 +1 @@ +../nv31/iet_stress_long.conf \ No newline at end of file diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/pebb_single_long.conf b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/pebb_single_long.conf new file mode 120000 index 0000000000..5a9cf74bc5 --- /dev/null +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/conf/nv32/pebb_single_long.conf @@ -0,0 +1 @@ +../nv31/pebb_single_long.conf \ No newline at end of file diff --git a/projects/rdc/rdci/src/RdciDiagSubSystem.cc b/projects/rdc/rdci/src/RdciDiagSubSystem.cc index 95a3b9aca3..7e4b27df7e 100644 --- a/projects/rdc/rdci/src/RdciDiagSubSystem.cc +++ b/projects/rdc/rdci/src/RdciDiagSubSystem.cc @@ -23,24 +23,16 @@ THE SOFTWARE. #include #include -#include #include #include #include #include -#include -#include -#include #include -#include -#include -#include "common/rdc_fields_supported.h" #include "common/rdc_utils.h" #include "rdc/rdc.h" #include "rdc_lib/RdcException.h" -#include "rdc_lib/rdc_common.h" namespace amd { namespace rdc { @@ -113,8 +105,7 @@ void RdciDiagSubSystem::show_help() const { // ***** 20 Chars **** std::cout << " diag -- Used to run diagnostic for GPUs.\n\n"; std::cout << "Usage\n"; - std::cout << " rdci diag [--host :port] [-u] [-t] -g " - << " -r \n"; + std::cout << " rdci diag [--host :port] [-u] [-t] -g " << " -r \n"; std::cout << "\nFlags:\n"; show_common_usage(); std::cout << " -g --group-id The GPU group to diagnose" @@ -122,12 +113,10 @@ void RdciDiagSubSystem::show_help() const { std::cout << " -c --config-test Set custom test config (RVS)\n"; std::cout << " -r --run-level level Integer representing test" << " run levels [default = 1].\n" - << " level 1: Tests take a " - << "few seconds to run.\n" - << " level 2: Tests take a " - << "few minutes to run (To be implemented).\n" + << " level 1: Tests take a " << "few seconds to run.\n" + << " level 2: Tests take a " << "few minutes to run.\n" << " level 3: Tests take " - << "half an hour to run (To be implemented).\n"; + << "30 minutes and longer to run.\n"; } std::string RdciDiagSubSystem::get_test_name(rdc_diag_test_cases_t test_case) const { @@ -141,6 +130,10 @@ std::string RdciDiagSubSystem::get_test_name(rdc_diag_test_cases_t test_case) co {RDC_DIAG_RVS_MEMBW_TEST, "RVS babel memory bandwidth test"}, {RDC_DIAG_RVS_H2DD2H_TEST, "RVS Host<->Device transfer speed test"}, {RDC_DIAG_RVS_IET_TEST, "RVS IET test"}, + {RDC_DIAG_RVS_GST_LONG_TEST, "RVS GST long test"}, + {RDC_DIAG_RVS_MEMBW_LONG_TEST, "RVS babel memory bandwidth long test"}, + {RDC_DIAG_RVS_H2DD2H_LONG_TEST, "RVS Host<->Device transfer speed long test"}, + {RDC_DIAG_RVS_IET_LONG_TEST, "RVS IET long test"}, {RDC_DIAG_TEST_LAST, "Unknown"}}; auto test_name = test_desc.find(test_case); @@ -158,7 +151,6 @@ void RdciDiagSubSystem::process() { rdc_status_t result; rdc_diag_response_t response; - //rdc_diag_callback_t callback; result = rdc_diagnostic_run(rdc_handle_, group_id_, run_level_, config_test_.c_str(), config_test_.length(), &response, nullptr);