什么线程运行传递给cudaStreamAddCallback的回调?

时间:2017-11-07 18:23:02

标签: cuda

如果我通过try Json.Document(value) otherwise replacementValue注册一个回调,那么将运行什么线程?

CUDA文档说cudaStreamAddCallback()

  

在流中所有当前已排队的项目完成后添加要在主机上调用的回调。对于每个cudaStreamAddCallback调用,回调将只执行一次。回调将阻止流中的后续工作,直到它完成。

但没有说明如何调用回调本身。

1 个答案:

答案 0 :(得分:2)

只是为了充实评论,以便这个问题有一个答案,并且会从未答复的队列中删除:

简短的回答是,这是CUDA运行时的内部实现细节,您无需担心它。

更长的答案是,如果仔细查看CUDA运行时的操作,您会注意到设备上的上下文建立(无论是通过驱动程序API显式,还是通过运行时API隐式)都会产生一个小的线程池。正是这些线程用于实现运行时的功能,如流命令队列和回调操作。同样,程序员不需要了解的内部实现细节。