这个问题是Jason R对Robert Crovellas关于这个原始问题的回答("一个设备有多个CUDA上下文-有意义吗?"(的评论的后续:
当你说多个上下文不能同时运行时,这是仅限于内核启动,还是指内存传输也我一直在考虑一个多进程的设计使用IPC API将缓冲区从进程传输到进程的GPU。这是否意味着有效地,一次只有一个过程独占访问整个GPU(而不仅仅是特定的SM(?[…]怎么回事与每个中的流上异步排队的内核/副本的相互作用就日程安排而言?
Robert Crovella建议在一个新问题中问这个问题,但一直没有实现,所以让我在这里做这个。
多进程服务是Nvidia的一种替代CUDA实现,它使多个进程使用相同的上下文。这例如允许来自多个进程的内核并行运行,如果每个进程本身没有填充整个GPU。