下载
中文
注册

msDebug工具断点设置在核函数内,命中断点后执行continue命令,算子运行失败

现象描述

显示Synchronize stream failed. error code is 507035,查看plog显示aic error code=0x8000000000000000,并且在命中断点时使用ascend info cores命令可以看到当前核的PC值与预期不符。

解决措施

参考Host侧tiling实现将WorkspaceSize从0设置成预留内存大小。API在计算过程需要一些worksapce内存作为缓存,因此算子Tiling函数需要为API预留workspace内存,预留内存大小通过GetLibApiWorkSpaceSize接口获取。参考如下代码:

1
2
3
4
5
#include "tiling/platform/platform_ascendc.h"
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo());
size_t systemWorkspaceSize = ascendcPlatform.GetLibApiWorkSpaceSize();
size_t*currentWorkspace = context->GetWorkspaceSizes(1); //只使用1块workspace
currentWorkspace[0]= systemWorkspaceSize;