Allow passing zero bits into hsa_amd_queue_cu_set_mask.
Passing 0 into num_cu_mask_count used to be an implicit error.
This has been repurposed as a short hand for enabling all CUs.
Enabling all CUs when HSA_CU_MASK is set will cause the CU mask to
reset to whatever was set by HSA_CU_MASK which may then be queried.
Change-Id: I1d6bb2034595a78ee48fa72aa05563e8ea6c0fff
[ROCm/ROCR-Runtime commit: 02666ec0f1]
이 커밋은 다음에 포함됨:
@@ -539,12 +539,11 @@ hsa_status_t hsa_amd_queue_cu_set_mask(const hsa_queue_t* queue, uint32_t num_cu
|
||||
const uint32_t* cu_mask) {
|
||||
TRY;
|
||||
IS_OPEN();
|
||||
IS_BAD_PTR(cu_mask);
|
||||
|
||||
core::Queue* cmd_queue = core::Queue::Convert(queue);
|
||||
IS_VALID(cmd_queue);
|
||||
if ((num_cu_mask_count == 0) || (num_cu_mask_count % 32 != 0))
|
||||
return HSA_STATUS_ERROR_INVALID_ARGUMENT;
|
||||
if (num_cu_mask_count != 0) IS_BAD_PTR(cu_mask);
|
||||
if (num_cu_mask_count % 32 != 0) return HSA_STATUS_ERROR_INVALID_ARGUMENT;
|
||||
return cmd_queue->SetCUMasking(num_cu_mask_count, cu_mask);
|
||||
CATCH;
|
||||
}
|
||||
|
||||
@@ -792,6 +792,8 @@ hsa_status_t HSA_API hsa_amd_image_get_info_max_dim(hsa_agent_t agent,
|
||||
* @details Enables the queue to run on only selected CUs. The given mask is
|
||||
* combined by bitwise AND with any device wide mask in HSA_CU_MASK before
|
||||
* being applied.
|
||||
* If num_cu_mask_count is 0 then the request is interpreted as a request to
|
||||
* enable all CUs and no cu_mask array need be given.
|
||||
*
|
||||
* @param[in] queue A pointer to HSA queue.
|
||||
*
|
||||
@@ -810,8 +812,8 @@ hsa_status_t HSA_API hsa_amd_image_get_info_max_dim(hsa_agent_t agent,
|
||||
*
|
||||
* @retval ::HSA_STATUS_ERROR_INVALID_QUEUE @p queue is NULL or invalid.
|
||||
*
|
||||
* @retval ::HSA_STATUS_ERROR_INVALID_ARGUMENT @p num_cu_mask_count is 0, not
|
||||
* a multiple of 32 or @p cu_mask is NULL.
|
||||
* @retval ::HSA_STATUS_ERROR_INVALID_ARGUMENT @p num_cu_mask_count is not
|
||||
* a multiple of 32 or @p num_cu_mask_count is not 0 and cu_mask is NULL.
|
||||
*
|
||||
*/
|
||||
hsa_status_t HSA_API hsa_amd_queue_cu_set_mask(const hsa_queue_t* queue,
|
||||
|
||||
새 이슈에서 참조
사용자 차단