CUDA:在多个设备之间共享数据?

在CUDA C编程指南中,据说

...在设计上,主机线程可以在任何给定时间仅在一个设备上执行设备代码。 因此,需要多个主机线程才能在多个设备上执行设备代码。 此外,通过运行时在一个主机线程中创建的任何CUDA资源都不能由另一个主机线程的运行时使用。

我想要做的是让两个GPU在主机(映射内存)上共享数据,
但手册似乎说这是不可能的。
有没有解决方案


也许考虑使用MPI和CUDA之类的东西?

http://forums.nvidia.com/index.php?showtopic=30741

http://www.ncsa.illinois.edu/UserInfo/Training/Workshops/CUDA/presentations/tutorial-CUDA.html


在分配主机内存时,应该使用cudaHostAlloc()分配并传递cudaHostAllocPortable标志。 这将允许多个CUDA上下文访问内存。


解决方案是手动管理这些常用数据。 即使使用SLI。

卡片在SLI模式下并不真正拥有共享内存 - 共享数据必须通过总线从一个复制到另一个。

http://forums.nvidia.com/index.php?showtopic=30740

链接地址: http://www.djcxy.com/p/47411.html

上一篇: CUDA : sharing data between multiple devices?

下一篇: Concurrency, 4 CUDA Applications competing to get GPU resources