From 4067baeff3a7fd01e99b04a7c6e65fa5db4b3943 Mon Sep 17 00:00:00 2001 From: Mukul Joshi Date: Fri, 29 May 2020 15:41:52 -0400 Subject: [PATCH] Print VRAM usage in rsmitst Print VRAM usage information in TestProcInfoRead. Also, fix output formatting when running TestProcInfoRead. Change-Id: I9efed808458ef4645145610f6f564f0f2baadea2 [ROCm/rocm_smi_lib commit: 633c852f5d3c54d8aaec8b1ac151690f7ba63d33] --- .../functional/process_info_read.cc | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/projects/rocm-smi-lib/tests/rocm_smi_test/functional/process_info_read.cc b/projects/rocm-smi-lib/tests/rocm_smi_test/functional/process_info_read.cc index 8fc5582ee6..cdb82515b8 100755 --- a/projects/rocm-smi-lib/tests/rocm_smi_test/functional/process_info_read.cc +++ b/projects/rocm-smi-lib/tests/rocm_smi_test/functional/process_info_read.cc @@ -86,7 +86,7 @@ void TestProcInfoRead::Close() { static void dumpProcess(rsmi_process_info_t *p) { assert(p != nullptr); - std::cout << "ProcessID: " << p->process_id << " "; + std::cout << "\t** ProcessID: " << p->process_id << " "; std::cout << "PASID: " << p->pasid << " "; std::cout << std::endl; } @@ -167,22 +167,23 @@ void TestProcInfoRead::Run(void) { err = rsmi_compute_process_gpus_get(procs[j].process_id, dev_inds, &amt_allocd); if (err == RSMI_STATUS_NOT_FOUND) { - std::cout << "\t**Process " << procs[j].process_id << + std::cout << "\t** Process " << procs[j].process_id << " is no longer present."; continue; } else { CHK_ERR_ASRT(err); ASSERT_LE(amt_allocd, num_devices); } - std::cout << "\t**Process " << procs[j].process_id << + std::cout << "\t** Process " << procs[j].process_id << " is using devices with indices: "; uint32_t i; if (amt_allocd > 0) { for (i = 0; i < amt_allocd - 1; ++i) { std::cout << dev_inds[i] << ", "; } - std::cout << dev_inds[i] << std::endl; + std::cout << dev_inds[i]; } + std::cout << std::endl; // Reset amt_allocd back to the amount acutally allocated amt_allocd = num_devices; } @@ -190,18 +191,23 @@ void TestProcInfoRead::Run(void) { delete []dev_inds; rsmi_process_info_t proc_info; - err = rsmi_compute_process_info_by_pid_get(procs[0].process_id, + for (uint32_t j = 0; j < num_proc_found; j++) { + memset(&proc_info, 0x0, sizeof(rsmi_process_info_t)); + err = rsmi_compute_process_info_by_pid_get(procs[j].process_id, &proc_info); - if (err == RSMI_STATUS_NOT_FOUND) { - std::cout << - "\t** WARNING: rsmi_compute_process_info_get() found process " << - procs[0].process_id << ", but subsequently, " + if (err == RSMI_STATUS_NOT_FOUND) { + std::cout << + "\t** WARNING: rsmi_compute_process_info_get() found process " << + procs[j].process_id << ", but subsequently, " "rsmi_compute_process_info_by_pid_get() did not" " find this same process." << std::endl; - } else { - CHK_ERR_ASRT(err) - ASSERT_EQ(proc_info.process_id, procs[0].process_id); - ASSERT_EQ(proc_info.pasid, procs[0].pasid); + } else { + CHK_ERR_ASRT(err) + ASSERT_EQ(proc_info.process_id, procs[j].process_id); + ASSERT_EQ(proc_info.pasid, procs[j].pasid); + std::cout << "\t** Process ID: " << procs[j].process_id << " VRAM Usage: " << + proc_info.vram_usage << std::endl; + } } } if (num_proc_found > 1) {