From 7f8676e177dccce617e72a8d73d0ae996d21184a Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Mon, 28 Oct 2024 10:37:13 -0400 Subject: [PATCH] rocr: revert back to old copy behaviour with no xgmi sdma engines SDMA queue resources are limited when all SDMA copies are bottle necked into 2 engines. Callers will not be able to make the best decisions to allocate queue resources fairly so have ROCr fallback to old round robin behaviour dictated by KFD. Change-Id: I93d52297976d74e20129c5eb1dcfbfa5aa5067a7 --- runtime/hsa-runtime/core/runtime/amd_gpu_agent.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runtime/hsa-runtime/core/runtime/amd_gpu_agent.cpp b/runtime/hsa-runtime/core/runtime/amd_gpu_agent.cpp index db17bdda5e..ea6b34d43b 100644 --- a/runtime/hsa-runtime/core/runtime/amd_gpu_agent.cpp +++ b/runtime/hsa-runtime/core/runtime/amd_gpu_agent.cpp @@ -859,6 +859,11 @@ void GpuAgent::InitDma() { && isa_->GetStepping() < 10) rec_eng = -1; + // devices without dedicated xGMI SDMA engines should not target specific + // SDMA engines for queue creation as resources are limited + if (!properties_.NumSdmaXgmiEngines) + rec_eng = -1; + auto ret = CreateBlitSdma(use_xgmi, rec_eng); if (ret != nullptr) return ret; }