Allow HSA_ENABLE_SDMA to override runtime defaults.
Change-Id: I2305304228010157bfb589c365f4a998577231cd
[ROCm/ROCR-Runtime commit: 3e0cd85d69]
This commit is contained in:
committed by
Ramesh Errabolu
parent
683c95a3b7
commit
28e79a42c2
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user