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