rocr: Expose all available DMA engines (#165)

When copying for inter devices, Currently only XGMI as exposed. Now
SDMA0/1 will be exposed as well for inter device copies especially that
they are one of the recommended engines.

Signed-off-by: Li Ma <li.ma@amd.com>
이 커밋은 다음에 포함됨:
Ma, Li
2025-05-13 17:42:15 +08:00
커밋한 사람 GitHub
부모 f5daf75abf
커밋 e38dd98914
+11 -3
파일 보기
@@ -1215,9 +1215,17 @@ hsa_status_t GpuAgent::DmaCopyStatus(core::Agent& dst_agent, core::Agent& src_ag
dst_agent.HiveId() && src_agent.HiveId() == dst_agent.HiveId() &&
properties_.NumSdmaXgmiEngines) {
//Find a free xGMI SDMA engine
for (int i = 0; i < properties_.NumSdmaXgmiEngines; i++) {
if (DmaEngineIsFree(DefaultBlitCount + i)) {
*engine_ids_mask |= (HSA_AMD_SDMA_ENGINE_2 << i);
if (rec_sdma_eng_override_) {
for (int i = 0; i < (properties_.NumSdmaEngines + properties_.NumSdmaXgmiEngines); i++) {
if (DmaEngineIsFree(BlitHostToDev + i)) {
*engine_ids_mask |= (HSA_AMD_SDMA_ENGINE_0 << i);
}
}
} else {
for (int i = 0; i < properties_.NumSdmaXgmiEngines; i++) {
if (DmaEngineIsFree(DefaultBlitCount + i)) {
*engine_ids_mask |= (HSA_AMD_SDMA_ENGINE_2 << i);
}
}
}
} else {