Skip inital CU mask setup unless HSA_CU_MASK is defined for the GPU.

Limits CU masking application to cases where it is explicitly requested.

Change-Id: Ib65ad0ac98f86d840c0328fa15ce40c05cd4bfae
Этот коммит содержится в:
Sean Keely
2021-10-12 19:42:51 -05:00
родитель ca899ea429
Коммит 5e8d261352
+8 -4
Просмотреть файл
@@ -1078,11 +1078,15 @@ hsa_status_t AqlQueue::SetCUMasking(uint32_t num_cu_mask_count, const uint32_t*
// Clip last dword to physical CU limit if necessary
if ((mask.size() == mask_dwords) && (tail_mask != 0)) mask[mask_dwords - 1] &= tail_mask;
// Apply mask and update current cu masking tracking.
// Apply mask if non-default or not queue initialization.
ScopedAcquire<KernelMutex> lock(&mask_lock_);
HSAKMT_STATUS ret =
hsaKmtSetQueueCUMask(queue_id_, mask.size() * 32, reinterpret_cast<HSAuint32*>(&mask[0]));
if (ret != HSAKMT_STATUS_SUCCESS) return HSA_STATUS_ERROR;
if ((!cu_mask_.empty()) || (num_cu_mask_count != 0) || (!global_mask.empty())) {
HSAKMT_STATUS ret =
hsaKmtSetQueueCUMask(queue_id_, mask.size() * 32, reinterpret_cast<HSAuint32*>(&mask[0]));
if (ret != HSAKMT_STATUS_SUCCESS) return HSA_STATUS_ERROR;
}
// update current cu masking tracking.
cu_mask_ = std::move(mask);
return clipped ? (hsa_status_t)HSA_STATUS_CU_MASK_REDUCED : HSA_STATUS_SUCCESS;
}