Revert "Reduce to only one internal compute queue."

This reverts commit c1147397e0.

Change-Id: Ifcc5e148457243a6cf9ef277da7ab7c4e10f6fc9


[ROCm/ROCR-Runtime commit: f4521ce782]
This commit is contained in:
Sean Keely
2018-03-05 20:01:27 -06:00
parent c7af4e8857
commit 66d812d0ec
2 changed files with 8 additions and 5 deletions
@@ -379,7 +379,8 @@ class GpuAgent : public GpuAgentInt {
// @brief AQL queues for cache management and blit compute usage.
enum QueueEnum {
QueueUtility, // Cache management and blit compute
QueueUtility, // Cache management and device to {host,device} blit compute
QueueBlitOnly, // Host to device blit
QueueCount
};
@@ -554,25 +554,27 @@ void GpuAgent::InitDma() {
"Internal queue creation failed.");
return ret;
};
// Dedicated compute queue for host-to-device blits.
queues_[QueueBlitOnly].reset(queue_lambda);
// 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.
auto blit_lambda = [this]() {
auto blit_lambda = [this](lazy_ptr<core::Queue>& queue) {
if ((isa_->GetMajorVersion() != 8) && core::Runtime::runtime_singleton_->flag().enable_sdma() &&
(HSA_PROFILE_BASE == profile_)) {
auto ret = CreateBlitSdma();
if (ret != nullptr) return ret;
}
auto ret = CreateBlitKernel((*queues_[QueueUtility]).get());
auto ret = CreateBlitKernel((*queue).get());
if (ret == nullptr)
throw AMD::hsa_exception(HSA_STATUS_ERROR_OUT_OF_RESOURCES, "Blit creation failed.");
return ret;
};
blits_[BlitHostToDev].reset(blit_lambda);
blits_[BlitDevToHost].reset(blit_lambda);
blits_[BlitHostToDev].reset([blit_lambda, this]() { return blit_lambda(queues_[QueueBlitOnly]); });
blits_[BlitDevToHost].reset([blit_lambda, this]() { return blit_lambda(queues_[QueueUtility]); });
blits_[BlitDevToDev].reset([this]() {
auto ret = CreateBlitKernel((*queues_[QueueUtility]).get());
if (ret == nullptr)