但是有可能有一个持久内核。这个内核启动一次,永远循环,检查“一些标志”,看看是否有来自CPU然后对其进行操作的数据。当这个“片段”数据完成时,GPU为CPU设置“标志”,CPU看到它并将数据复制回来。这个内核永远不会运行。
目前的cuda编程模型中是否存在这种情况?我能得到的最接近的是什么?
答案 0 :(得分:6)
是的,这是可能的。一种方法是使用零拷贝(即GPU映射)主机存储器。主机将其数据放置在映射区域中,GPU在映射区域中进行通信。显然这需要轮询,但这是你问题所固有的。
这个answer为您提供了简单测试用例所需的大部分管道。
还有simple zero-copy sample code。
这个answer提供了一个更具参与性,功能齐全的例子。
当然,您希望在没有启用超时监视程序的环境中执行此操作。