是否可以同时运行属于不同应用程序的两个内核?

Posted

技术标签:

【中文标题】是否可以同时运行属于不同应用程序的两个内核?【英文标题】:Is it possible to run two kernels belonging to different application run concurrently? 【发布时间】:2013-01-31 07:30:58 【问题描述】:

我想同时运行属于两个不同 CUDA 程序的两个内核。我不希望发生上下文切换。我希望这两个程序共享设备。我的 GPU 中有 14 个 SM,一个程序使用 2 个 SM,另一个程序使用 1 个 SM。但我无法同时运行它们。第二个程序一直等到第一个程序完成执行。 GPU 设备是 nVidia Tesla M2050。使用 deviceQuery 时,它表示该卡支持并发内核执行(这适用于属于一个程序/进程/上下文的内核吗?)。此外,设备处于默认计算模式。它没有设置为任何独占模式。 有什么办法可以同时运行它们吗?

【问题讨论】:

目前任何硬件都无法做到这一点 【参考方案1】:

先看看https://***.com/a/14896945/56875。 GPU 无法在两个 cuda 上下文的并行内核中执行。

我以前没有尝试过,但是在 linux 上你可以尝试使用 CUDA-proxy 作弊,这是一个创建单个上下文但允许其他 cuda 进程使用代理上下文的单个进程。

【讨论】:

【参考方案2】:

正如@talonmies 在评论中所说 - 目前这是不可能的。任何时候都只能在给定设备上存在一个 CUDA 上下文。

【讨论】:

以上是关于是否可以同时运行属于不同应用程序的两个内核?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 NGINX 将多个闪亮的应用程序部署到一台服务器?

Android之Binder通信篇

是否可以限制在 asyncio 中同时运行的协程数量?

linux内核,驱动,应用程三者的概念和之间的关系 - Avatarx

是否可以在两个 CPU 内核上同时执行两个 lock() 语句? CPU内核是否同时滴答作响?

协程相关