【发布时间】:2017-09-16 01:42:32
【问题描述】:
我使用 --default stream per-thread 来从 2 个非默认流中的 2 个主机线程发出内核。一切正常,直到我想在两个线程中使用 cudnn,因为对 cudnn api 的任何调用都会在默认线程上执行该 api。
我想在与进行 cudnn api 调用的主机线程关联的流中运行每个 cudnn api。我知道我可以使用 cudnnSetStream() 设置非默认流,但我需要获取与主机线程关联的流,以便将其传递给 cudnnSetStream()。
如何在主机端获取由 cuda 关联到我要从中调用 cudnn api 的当前主机线程的流?
编辑:我正在使用 C 和 ubuntu。
谢谢。
【问题讨论】:
-
@Olaf ...您不相信 cuda 使用 C 编程语言,因此您删除了 C 标签并投了反对票? :)
-
@RobertCrovella 你的建议 cudnnSetStream(cudaStreamPerThread);工作得很好。谢谢
-
CUDA 显然不是 C!只是不要垃圾邮件标签。当您接受引用
nvcc的答案时,很明显您不使用 C。如果这是错误的,则答案是错误的,您需要通过显示 标准 C 代码!仅仅因为您使用类似的语法并不意味着您这样做。阅读How to Ask。 -
@Olaf quate 来自 How to Ask. :“尝试为您的问题所涉及的语言、库和特定 API 添加标签……确保它们”与您提出的问题有关!”我确实认为 C 标签是相关的,因为在其他语言(例如 C++、python、java 等)中也有 cuda API 实现。
-
@toohonestforthissite 我也不喜欢您从问题标题中删除了 cudnn 的事实。我的问题显然是关于 cudnn 的。顺便说一句好听的名字!
标签: multithreading cuda