已关闭
文档反馈-内容缺失或覆盖不全(完整性)-这里应该是true #1640
wangkai创建于 7 天前关闭于 3 天前
W
wangkai成员
7 天前 创建
7 天前 创建
- 【文档链接】
- 【页面标记】
- 【问题类型】
- 【问题描述】
- 【预期结果】
- 请填写预期结果


wangkai
7 天前 评论:
7 天前 评论:
这里介绍了8种案例,上面文档的错误是方式4
// 如下介绍了自定义算子的8种内核启动方式:
// - 方式1(推荐): 直接传入NPUStream对象,调用<<<>>>时内部清queue
// - 方式2(正确): 使用stream(true)获取ACL stream对象,返回对象前清queue
// - 方式3(推荐): 使用stream(false)配合OpCommand,通过入queue方式同步
// - 方式4(错误): stream(false)直接启动,不清queue不入queue,可能乱序
// - 方式5(错误): NPUStream对象配合OpCommand,入queue后,queue中任务等待queue清空,导致死锁
// - 方式6(正确): 使用stream(true)清queue + OpCommand入queue
// - 方式7(错误): stream(true)清queue后,zeros_like算子入queue但自定义kernel不入queue,可能乱序
// - 方式8(正确): 使用stream()获取ACL stream,返回前等待queue内操作完成,与方式2等价


zhangyujia77
7 天前 评论:
7 天前 评论:
您好,感谢反馈,问题已确认。NPUStream::stream(false)只返回底层ACL stream,不会清空TorchNPU任务队列;随后直接使用<<<>>>下发Kernel时,可能和此前尚未出队的PyTorch任务发生乱序,产生静默精度错误。我们将尽快修复此问题。


6 天前 关联了pull request:fix: 修复PyTorch样例内核启动任务乱序风险
3 天前 issue状态由 进行中 改变为 已完成
3 天前 关闭了 issue
3 天前 添加了label:Accepted
3 天前 添加了label:resolved