Add env variable to print image SRD contents

Add environment variable HSA_IMAGE_PRINT_SRD to print contents of SRD
registers for image functions

Change-Id: Ifb47a73dcfad8745ee7445e20de96e1021b80bd6
Este commit está contenido en:
David Yat Sin
2022-11-04 17:36:33 +00:00
cometido por Shweta Khatri
padre f7e3782b42
commit a4f898ad15
Se han modificado 3 ficheros con 20 adiciones y 0 borrados
+6
Ver fichero
@@ -160,6 +160,9 @@ class Flag {
var = os::GetEnvVar("HSA_SVM_PROFILE");
svm_profile_ = var;
var = os::GetEnvVar("HSA_IMAGE_PRINT_SRD");
image_print_srd_ = (var == "1") ? true : false;
// Temporary environment variable to disable CPU affinity override
// Will either rename to HSA_OVERRIDE_CPU_AFFINITY later or remove completely.
var = os::GetEnvVar("HSA_OVERRIDE_CPU_AFFINITY_DEBUG");
@@ -219,6 +222,8 @@ class Flag {
bool override_cpu_affinity() const { return override_cpu_affinity_; }
bool image_print_srd() const { return image_print_srd_; }
XNACK_REQUEST xnack() const { return xnack_; }
bool debug() const { return debug_; }
@@ -260,6 +265,7 @@ class Flag {
bool coop_cu_count_;
bool discover_copy_agents_;
bool override_cpu_affinity_;
bool image_print_srd_;
SDMA_OVERRIDE enable_sdma_;
Archivo ejecutable → Archivo normal
+5
Ver fichero
@@ -47,6 +47,7 @@
#include <climits>
#include <mutex>
#include "core/inc/runtime.h"
#include "core/inc/hsa_internal.h"
#include "core/inc/hsa_ext_amd_impl.h"
#include "resource.h"
@@ -397,6 +398,8 @@ hsa_status_t ImageRuntime::CreateImageHandle(
image_manager(component)->PopulateImageSrd(*image);
if (core::Runtime::runtime_singleton_->flag().image_print_srd()) image->printSRD();
image_handle.handle = image->Convert();
return HSA_STATUS_SUCCESS;
@@ -434,6 +437,8 @@ hsa_status_t ImageRuntime::CreateImageHandleWithLayout(
return err;
}
if (core::Runtime::runtime_singleton_->flag().image_print_srd()) image->printSRD();
image_handle.handle = image->Convert();
return HSA_STATUS_SUCCESS;
}
+9
Ver fichero
@@ -134,6 +134,15 @@ public:
__ALIGNED__(
HSA_IMAGE_OBJECT_ALIGNMENT) uint32_t srd[HSA_IMAGE_OBJECT_SIZE_DWORD];
void const printSRD() const {
char hexStr[200];
size_t hexStrLen = 0;
for (int i = 0; i < sizeof(srd) / sizeof(srd[0]); i++)
hexStrLen += sprintf(&hexStr[hexStrLen], "0x%08x ", srd[i]);
printf("\nSRD:%s\n\n", hexStr);
}
// HSA component of the image object.
hsa_agent_t component;