解决方案】【FAQ】使用aclSetAclOpExecutorRepeatable后结果全为0
收藏回复举报
解决方案】【FAQ】使用aclSetAclOpExecutorRepeatable后结果全为0
发表于2025-04-24 20:13:52
0 查看

问题前奏:

使用aclSetAclOpExecutorRepeatable

aclnnInplaceCopy(tensorList, tensor3, output, &workspace_size, &executor);
aclSetAclOpExecutorRepeatable(executor);  
void *addr;
aclSetDynamicInputTensorAddr(executor, 0, 0, tensorList, addr);   // 刷新输入tensorlist中第1个aclTensor的device地址
aclSetDynamicInputTensorAddr(executor, 0, 1, tensorList, addr);  // 刷新输入tensorlist中第2个aclTensor的device地址

问题原因:

aclnnInplaceCopy不支持aclOpExecutor复用

解决方案:

通过返回值判断是否aclOpExecutor可复用

ret = aclSetAclOpExecutorRepeatable(executor);  
CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclSetAclOpExecutorRepeatablefailed. ERROR: %d\n", ret); return ret);

我要发帖子