Clean up SDMA ganging
We don't need to keep track of specific blit engines in gang for submission anymore as ganging early exits on pending bytes. So tidy up the fluff. Change-Id: I77e80bf1ad8f561a03fff77bce33aa09d02760c6
This commit is contained in:
@@ -902,7 +902,6 @@ hsa_status_t GpuAgent::DmaCopy(void* dst, core::Agent& dst_agent,
|
||||
}
|
||||
|
||||
int gang_factor = 0;
|
||||
uint32_t gang_mask = 0;
|
||||
// Use non-D2D (auxillary) SDMA engines in the event of xGMI D2D support
|
||||
// when xGMI SDMA context is not available.
|
||||
bool has_aux_gang = tmp_gang_factor >= properties_.NumSdmaEngines && !!!properties_.NumSdmaXgmiEngines;
|
||||
@@ -925,7 +924,6 @@ hsa_status_t GpuAgent::DmaCopy(void* dst, core::Agent& dst_agent,
|
||||
}
|
||||
}
|
||||
|
||||
gang_mask |= 1 << i;
|
||||
gang_factor++;
|
||||
}
|
||||
|
||||
@@ -961,9 +959,6 @@ hsa_status_t GpuAgent::DmaCopy(void* dst, core::Agent& dst_agent,
|
||||
bool gang_leader_set = false;
|
||||
int gang_sig_count = 0;
|
||||
for (int i = 0; i < gang_factor; i++) {
|
||||
if (gang_factor > 1 && !!!(gang_mask & (1 << i)))
|
||||
continue;
|
||||
|
||||
// Set leader and gang status to blit
|
||||
SetCopyRequestRefCount(true);
|
||||
lazy_ptr<core::Blit>& blit = has_aux_gang ? blits_[i + 1] :
|
||||
|
||||
@@ -376,7 +376,6 @@ void BuildTopology() {
|
||||
continue;
|
||||
|
||||
auto linfo = core::Runtime::runtime_singleton_->GetLinkInfo(src_id, dst_id);
|
||||
GpuAgent *gpu = (AMD::GpuAgent*)src_gpu;
|
||||
// xGMI link type cannot determine bandwidth keep it fixed for ganging
|
||||
bool has_fixed_gang = linfo.info.link_type == HSA_AMD_LINK_INFO_TYPE_XGMI &&
|
||||
linfo.info.numa_distance != 15;
|
||||
@@ -392,7 +391,7 @@ void BuildTopology() {
|
||||
uint32_t gang_factor = has_fixed_gang ? 2 : (linfo.info.min_bandwidth ?
|
||||
linfo.info.max_bandwidth/linfo.info.min_bandwidth : 0);
|
||||
|
||||
gpu->RegisterGangPeer(*dst_gpu, gang_factor);
|
||||
((AMD::GpuAgent*)src_gpu)->RegisterGangPeer(*dst_gpu, gang_factor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user