我想同时运行属于两个不同CUDA程序的两个内核。我不希望上下文切换发生。我希望两个程序共享设备。我的GPU中有14个SM,一个程序使用2个SM,另一个使用1个SM。但我无法同时运行它们。第二个程序等待,直到第一个程序完成执行。 GPU设备是nVidia Tesla M2050。使用deviceQuery,它表示该卡支持并发内核执行(这是属于一个程序/进程/上下文的内核吗?)。此外,设备处于默认计算模式。它未设置为任何独占模式。 有什么方法可以同时运行它们吗?
答案 0 :(得分:2)
首先看看https://stackoverflow.com/a/14896945/56875。 GPU无法在两个cuda上下文的并行内核中执行。
我之前没有尝试过,但是在linux上你可以尝试使用CUDA-proxy作弊,这是一个创建单个上下文但允许其他cuda进程使用代理上下文的进程。
答案 1 :(得分:1)
正如@talonmies在评论中所说 - 目前这不可行。任何时候,给定设备上只能有一个CUDA上下文。