多个进程可以共享一个 CUDA 上下文吗?
Posted
技术标签:
【中文标题】多个进程可以共享一个 CUDA 上下文吗?【英文标题】:Can multiple processes share one CUDA context? 【发布时间】:2020-03-03 22:49:05 【问题描述】:这个问题是 Jason R 的 comment 对 Robert Crovellas 在 this original question 上的回答的后续问题(“一个设备的多个 CUDA 上下文 - 有什么意义吗?”):
当你说多个上下文不能同时运行时,这是 仅限于内核启动,还是指内存传输 也?我一直在考虑同时进行多进程设计 GPU 使用 IPC API 在进程之间传输缓冲区。 这是否意味着有效地,一次只有一个进程具有 独占访问整个 GPU(不仅仅是特定的 SM)? [...] 那是怎么回事 与每个流中的异步排队内核/副本相互作用 调度的进程?
Robert Crovella 建议在一个新问题中提出这个问题,但它从来没有发生过,所以让我在这里这样做。
【问题讨论】:
【参考方案1】:Multi-Process Service 是 Nvidia 的另一种 CUDA 实现,它使多个进程使用相同的上下文。这例如允许来自多个进程的内核并行运行,前提是它们中的每一个都不能自己填满整个 GPU。
【讨论】:
以上是关于多个进程可以共享一个 CUDA 上下文吗?的主要内容,如果未能解决你的问题,请参考以下文章