这个问题是Jason R对comment的Robert Crovellas的回答this original question的跟进(“一个设备有多个CUDA上下文-任何意义?”):
当您说多个上下文不能同时运行时,这是 仅限于内核启动,还是指内存传输 也一样我一直在考虑多进程设计 使用IPC API在各个进程之间传输缓冲区的GPU。 这是否意味着一次有效的流程只有一次 独家访问整个GPU(而不仅仅是特定的SM)? [...]那怎么 在每个流中与异步排队的内核/副本相互作用 进度方面的流程?
罗伯特·克罗维拉(Robert Crovella)建议在一个新问题中提出这个问题,但是它从来没有被搁置过,所以让我在这里这样做。
答案 0 :(得分:1)
Multi-Process Service是Nvidia的替代CUDA实现,它使多个进程使用相同的上下文。例如如果每个进程本身不能完全填满整个GPU,则允许它们并行运行。