c++ 自定义算子开发中 如何确认核函数已经执行完成? (cuda流/同步异步)
收藏
我在使用paddle开发自定义C算子时,碰到一些问题。
官网 文档->使用指南->自定义算子->自定义c++算子中 核函数启动方式为:
.........
PD_DISPATCH_FLOATING_TYPES( out.type(), "relu_cuda_backward_kernel", ([&] {
relu_cuda_backward_kernel<<>>(
grad_out.data(),out.data(),grad_x.data(),numel);}));
........
1.这里的 x.stream() 是指每一个tensor对象里都有一个cuda流吗,为什么反向传播函数的核函数也是 写的 x.stream()?
2.我想使用提供的c++api,我怎么确认使用时,cuda核函数执行完了呢?
3.我的自定义算子可能需要执行多次自定义核函数,是否应该使用同样的 "x.stream()"?
这些都是关于paddle框架中cuda流的问题,我尽力找过了相关资料,但都没有提到cuda流或者同步的问题.我应该在哪能找到相关文档?
0
收藏
请登录后评论
更新一下,发现所有的 tensor.stream() 都是同一个地址,是不是说所有的核函数都共用一个流?不知道有没有官方文档说明一下这个问题