RVS - Add IET and PEBB tests

Change-Id: Ia032901d74c882e5cbfa5a3164199cd4d571341f
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
This commit is contained in:
Galantsev, Dmitrii
2025-01-06 18:14:44 -06:00
committed by Galantsev, Dmitrii
parent b058cbecf1
commit 5861ec7663
7 changed files with 92 additions and 52 deletions
+3 -1
View File
@@ -88,8 +88,10 @@ rdc_status_t RdcDiagnosticModule::rdc_diagnostic_run(const rdc_group_info_t& gpu
}
if (level >= RDC_DIAG_LVL_MED) { // Medium run and above
rdc_runs.push_back(RDC_DIAG_RVS_TEST);
rdc_runs.push_back(RDC_DIAG_RVS_GST_TEST);
rdc_runs.push_back(RDC_DIAG_RVS_MEMBW_TEST);
rdc_runs.push_back(RDC_DIAG_RVS_H2DD2H_TEST);
rdc_runs.push_back(RDC_DIAG_RVS_IET_TEST);
}
if (callback != nullptr && callback->callback != nullptr && callback->cookie != nullptr) {
@@ -27,11 +27,6 @@ THE SOFTWARE.
#include "rdc_lib/rdc_common.h"
#include "rdc_modules/rdc_rvs/RvsBase.h"
static const char babel_config[MAX_CONFIG_LENGTH] =
"{actions: [{name: babel-float-256MiB, device: all, module: babel, "
"parallel: false, count: 1, num_iter: 5000, array_size: 268435456, "
"test_type: 1, mibibytes: true, o/p_csv: false, subtest: 5}]}";
rdc_status_t rdc_diag_init(uint64_t) { return RDC_ST_OK; }
rdc_status_t rdc_diag_destroy() { return RDC_ST_OK; }
@@ -42,9 +37,11 @@ rdc_status_t rdc_diag_test_cases_query(rdc_diag_test_cases_t test_cases[MAX_TEST
return RDC_ST_BAD_PARAMETER;
}
*test_case_count = 2;
test_cases[0] = RDC_DIAG_RVS_TEST;
*test_case_count = 4;
test_cases[0] = RDC_DIAG_RVS_GST_TEST;
test_cases[1] = RDC_DIAG_RVS_MEMBW_TEST;
test_cases[2] = RDC_DIAG_RVS_H2DD2H_TEST;
test_cases[3] = RDC_DIAG_RVS_IET_TEST;
return RDC_ST_OK;
}
@@ -68,18 +65,26 @@ rdc_status_t rdc_diag_test_case_run(rdc_diag_test_cases_t test_case,
result->per_gpu_result_count = 0;
if (callback != nullptr && callback->callback != nullptr && callback->cookie != nullptr) {
std::string str = "RVS test";
std::string str = "RVS test [" + test_to_name.at(test_case) + "]";
callback->callback(callback->cookie, str.data());
}
switch (test_case) {
case RDC_DIAG_RVS_TEST:
strncpy_with_null(result->info, "Finished running RDC_DIAG_RVS_TEST", MAX_DIAG_MSG_LENGTH);
rvs_status = rvs_base.run_rvs_app(config, config_size, callback);
break;
case RDC_DIAG_RVS_GST_TEST:
case RDC_DIAG_RVS_MEMBW_TEST:
strncpy_with_null(result->info, "Finished running RDC_DIAG_RVS_MEMBW_TEST", MAX_DIAG_MSG_LENGTH);
rvs_status = rvs_base.run_rvs_app(babel_config, MAX_CONFIG_LENGTH, callback);
case RDC_DIAG_RVS_H2DD2H_TEST:
case RDC_DIAG_RVS_IET_TEST: {
const std::string test_name = "Finished running " + test_to_name.at(test_case);
const std::string predefined_config = test_to_conf.at(test_case);
// +1 to copy null
strncpy_with_null(result->info, test_name.c_str(), test_name.length() + 1);
if (config == nullptr || config_size == 0) {
rvs_status = rvs_base.run_rvs_app(predefined_config.c_str(), predefined_config.length() + 1,
callback);
} else {
rvs_status = rvs_base.run_rvs_app(config, config_size, callback);
}
break;
}
default:
result->status = RDC_DIAG_RESULT_SKIP;
strncpy_with_null(result->info, "Not supported yet", MAX_DIAG_MSG_LENGTH);
+2 -12
View File
@@ -42,21 +42,11 @@ rvs_status_t amd::rdc::RdcRVSBase::run_rvs_app(const char* config, const size_t
rvs_status_t status;
// NOTE: device_index is NOT set by RDC unless a custom config is provided.
// Meaning RDC index has no impact on RVS index.
const char mem_config[MAX_CONFIG_LENGTH] =
"{actions: [{name: action_1, device: all, module: mem, parallel: true, "
"count: 1, wait: 100, mapped_memory: false, mem_blocks: 128, "
"num_passes: 500, thrds_per_blk: 64, stress: true, num_iter: 50000, "
"exclude: '5 6 7 8 9 10 11'}]}";
const char gst_config[MAX_CONFIG_LENGTH] =
"{actions: [{name: gpustress-9000-sgemm-false, device: all, "
"device_index: '0', module: gst, parallel: false, count: 1, duration: "
"10000, copy_matrix: false, target_stress: 9000, matrix_size_a: 8640, "
"matrix_size_b: 8640, matrix_size_c: 8640, ops_type: sgemm, lda: 8640, "
"ldb: 8640, ldc: 8640}]}";
if ((config == nullptr) || (config_size == 0)) {
RDC_LOG(RDC_INFO, "given config is NULL! Using predefined gst_config");
strncpy_with_null(active_config, gst_config, MAX_CONFIG_LENGTH);
strncpy_with_null(active_config, test_to_conf.at(RDC_DIAG_RVS_GST_TEST).c_str(),
test_to_conf.at(RDC_DIAG_RVS_GST_TEST).length()+1);
} else if (config_size > MAX_CONFIG_LENGTH) {
RDC_LOG(RDC_ERROR, "given config size is too large! Expected at most "
<< MAX_CONFIG_LENGTH << ", got " << config_size << " instead.");