Allow HSA_ENABLE_SDMA to override runtime defaults.

Change-Id: I2305304228010157bfb589c365f4a998577231cd


[ROCm/ROCR-Runtime commit: 3e0cd85d69]
This commit is contained in:
Hari Thangirala
2018-04-07 17:33:20 -05:00
committed by Ramesh Errabolu
parent 683c95a3b7
commit 28e79a42c2
2 changed files with 13 additions and 11 deletions
@@ -558,14 +558,16 @@ void GpuAgent::InitDma() {
// Share utility queue with device-to-host blits.
queues_[QueueUtility].reset(queue_lambda);
// Blits, try create SDMA blit first.
// Disable SDMA on specific ISA targets until they are fully qualified.
// Decide which engine to use for blits.
auto blit_lambda = [this](bool h2d, lazy_ptr<core::Queue>& queue) {
if ((isa_->GetMajorVersion() != 8) && core::Runtime::runtime_singleton_->flag().enable_sdma() &&
(HSA_PROFILE_BASE == profile_)) {
auto ret = CreateBlitSdma(h2d);
if (ret != nullptr) return ret;
std::string sdma_override = core::Runtime::runtime_singleton_->flag().enable_sdma();
bool use_sdma = (sdma_override.size() == 0) ? (isa_->GetMajorVersion() != 8) : (sdma_override == "1");
if (use_sdma && (HSA_PROFILE_BASE == profile_)) {
auto ret = CreateBlitSdma(h2d);
if (ret != nullptr) return ret;
}
auto ret = CreateBlitKernel((*queue).get());
if (ret == nullptr)
throw AMD::hsa_exception(HSA_STATUS_ERROR_OUT_OF_RESOURCES, "Blit creation failed.");
@@ -69,8 +69,7 @@ class Flag {
var = os::GetEnvVar("HSA_ENABLE_INTERRUPT");
enable_interrupt_ = (var == "0") ? false : true;
var = os::GetEnvVar("HSA_ENABLE_SDMA");
enable_sdma_ = (var == "0") ? false : true;
enable_sdma_ = os::GetEnvVar("HSA_ENABLE_SDMA");
var = os::GetEnvVar("HSA_RUNNING_UNDER_VALGRIND");
running_valgrind_ = (var == "1") ? true : false;
@@ -104,8 +103,6 @@ class Flag {
bool enable_interrupt() const { return enable_interrupt_; }
bool enable_sdma() const { return enable_sdma_; }
bool enable_sdma_hdp_flush() const { return enable_sdma_hdp_flush_; }
bool running_valgrind() const { return running_valgrind_; }
@@ -116,6 +113,8 @@ class Flag {
bool disable_fragment_alloc() const { return disable_fragment_alloc_; }
std::string enable_sdma() const { return enable_sdma_; }
uint32_t max_queues() const { return max_queues_; }
size_t scratch_mem_size() const { return scratch_mem_size_; }
@@ -126,7 +125,6 @@ class Flag {
bool check_flat_scratch_;
bool enable_vm_fault_message_;
bool enable_interrupt_;
bool enable_sdma_;
bool enable_sdma_hdp_flush_;
bool running_valgrind_;
bool sdma_wait_idle_;
@@ -134,6 +132,8 @@ class Flag {
bool report_tool_load_failures_;
bool disable_fragment_alloc_;
std::string enable_sdma_;
uint32_t max_queues_;
size_t scratch_mem_size_;