华为计算微信公众号
昇腾AI开发者公众号
华为计算微博
华为计算今日头条
使用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);
我要发帖子
问题前奏:
使用aclSetAclOpExecutorRepeatable
问题原因:
aclnnInplaceCopy不支持aclOpExecutor复用
解决方案:
通过返回值判断是否aclOpExecutor可复用
ret = aclSetAclOpExecutorRepeatable(executor); CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclSetAclOpExecutorRepeatablefailed. ERROR: %d\n", ret); return ret);