Add env var to override SRAM ECC

Add HSA_ENABLE_SRAMECC environment variable that can be used to
override SRAM ECC mode reported by KFD

Change-Id: I2b95511820a2d3d146a76b03070659c0695b61fd


[ROCm/ROCR-Runtime commit: a180c9ee78]
Этот коммит содержится в:
David Yat Sin
2023-04-11 21:32:08 +00:00
родитель 101755c207
Коммит 11541cc283
2 изменённых файлов: 21 добавлений и 2 удалений
+12 -2
Просмотреть файл
@@ -124,8 +124,18 @@ GpuAgent::GpuAgent(HSAuint32 node, const HsaNodeProperties& node_props, bool xna
rocr::core::IsaFeature sramecc = rocr::core::IsaFeature::Unsupported;
if (isa_base->IsSrameccSupported()) {
sramecc = node_props.Capability.ui32.SRAM_EDCSupport == 1 ? core::IsaFeature::Enabled
: core::IsaFeature::Disabled;
switch (core::Runtime::runtime_singleton_->flag().sramecc_enable()) {
case Flag::SRAMECC_DISABLED:
sramecc = core::IsaFeature::Disabled;
break;
case Flag::SRAMECC_ENABLED:
sramecc = core::IsaFeature::Enabled;
break;
case Flag::SRAMECC_DEFAULT:
sramecc = node_props.Capability.ui32.SRAM_EDCSupport == 1 ? core::IsaFeature::Enabled
: core::IsaFeature::Disabled;
break;
}
}
rocr::core::IsaFeature xnack = rocr::core::IsaFeature::Unsupported;
+9
Просмотреть файл
@@ -57,6 +57,7 @@ namespace rocr {
class Flag {
public:
enum SDMA_OVERRIDE { SDMA_DISABLE, SDMA_ENABLE, SDMA_DEFAULT };
enum SRAMECC_ENABLE { SRAMECC_DISABLED, SRAMECC_ENABLED, SRAMECC_DEFAULT };
// The values are meaningful and chosen to satisfy the thunk API.
enum XNACK_REQUEST { XNACK_DISABLE = 0, XNACK_ENABLE = 1, XNACK_UNCHANGED = 2 };
@@ -175,6 +176,10 @@ class Flag {
var = os::GetEnvVar("HSA_SVM_PROFILE");
svm_profile_ = var;
var = os::GetEnvVar("HSA_ENABLE_SRAMECC");
sramecc_enable_ =
(var == "0") ? SRAMECC_DISABLED : ((var == "1") ? SRAMECC_ENABLED : SRAMECC_DEFAULT);
var = os::GetEnvVar("HSA_IMAGE_PRINT_SRD");
image_print_srd_ = (var == "1") ? true : false;
@@ -269,6 +274,8 @@ class Flag {
const std::string& svm_profile() const { return svm_profile_; }
SRAMECC_ENABLE sramecc_enable() const { return sramecc_enable_; }
private:
bool check_flat_scratch_;
bool enable_vm_fault_message_;
@@ -312,6 +319,8 @@ class Flag {
// Indicates user preference for Xnack state.
XNACK_REQUEST xnack_;
SRAMECC_ENABLE sramecc_enable_;
// Map GPU index post RVD to its default cu mask.
std::map<uint32_t, std::vector<uint32_t>> cu_mask_;