Fix empty cpu agent on raven system

Change-Id: I30f5e65367613152ce96b80b13e1c9f2a28da807
Bu işleme şunda yer alıyor:
Tao Sang
2020-09-28 23:07:59 -04:00
işlemeyi yapan: Tao Sang
ebeveyn 65b88ba364
işleme bc7291e85c
2 değiştirilmiş dosya ile 5 ekleme ve 7 silme
+2 -6
Dosyayı Görüntüle
@@ -197,7 +197,7 @@ void Device::setupCpuAgent() {
cpu_agent_ = cpu_agents_[index].agent;
system_segment_ = cpu_agents_[index].fine_grain_pool;
system_coarse_segment_ = cpu_agents_[index].coarse_grain_pool;
ClPrint(amd::LOG_INFO, amd::LOG_INIT, "Numa select cpu agent[%zu]=0x%zx(fine=0x%zx,coarse=0x%zx) "
ClPrint(amd::LOG_INFO, amd::LOG_INIT, "Numa selects cpu agent[%zu]=0x%zx(fine=0x%zx,coarse=0x%zx)"
"for gpu agent=0x%zx",
index, cpu_agent_.handle, system_segment_.handle, system_coarse_segment_.handle,
_bkendDevice.handle);
@@ -366,9 +366,8 @@ hsa_status_t Device::iterateAgentCallback(hsa_agent_t agent, void* data) {
AgentInfo info = { agent, { 0 }, { 0 }};
stat = hsa_amd_agent_iterate_memory_pools(agent, Device::iterateCpuMemoryPoolCallback,
reinterpret_cast<void*>(&info));
if (stat == HSA_STATUS_INFO_BREAK) {
if (stat == HSA_STATUS_SUCCESS) {
cpu_agents_.push_back(info);
stat = HSA_STATUS_SUCCESS;
}
} else if (dev_type == HSA_DEVICE_TYPE_GPU) {
gpu_agents_.push_back(agent);
@@ -902,9 +901,6 @@ hsa_status_t Device::iterateCpuMemoryPoolCallback(hsa_amd_memory_pool_t pool, vo
agentInfo->coarse_grain_pool = pool;
}
if (agentInfo->fine_grain_pool.handle != 0 && agentInfo->coarse_grain_pool.handle != 0) {
stat = HSA_STATUS_INFO_BREAK;
}
break;
}
default:
+3 -1
Dosyayı Görüntüle
@@ -867,7 +867,9 @@ bool Buffer::create() {
if (owner()->getSvmPtr() != owner()->getHostMem()) {
if (memFlags & (CL_MEM_USE_HOST_PTR | CL_MEM_ALLOC_HOST_PTR)) {
hsa_amd_memory_pool_t pool = (memFlags & CL_MEM_SVM_ATOMICS) ?
dev().SystemSegment() : dev().SystemCoarseSegment();
dev().SystemSegment() :
(dev().SystemCoarseSegment().handle != 0 ?
dev().SystemCoarseSegment() : dev().SystemSegment());
hsa_status_t status = hsa_amd_memory_lock_to_pool(owner()->getHostMem(),
owner()->getSize(), nullptr, 0, pool, 0, &deviceMemory_);
if (status != HSA_STATUS_SUCCESS) {