对于我的CUDA开发,我使用的是16核的机器和1个带16个SM的GTX 580 GPU。对于我所做的工作,我计划启动16个主机线程(每个核心1个),每个线程启动1个内核,每个线程有1个块和1024个线程。我的目标是在16个SM上并行运行16个内核。这可能/可行吗?多个主机线程启动各个CUDA内核
我试图尽可能多地阅读独立的上下文,但似乎没有太多可用的信息。据我所知,每个主机线程可以有自己的GPU上下文。但是,如果我使用独立的上下文,我不确定内核是否可以并行运行。
我可以将所有16个主机线程的所有数据读入一个巨型结构,并将其传递给GPU以启动一个内核。但是,它将会太多复制,并且会降低应用程序的速度。
多个上下文不能同时使用一个GPU,所以不行,这是行不通的。 – talonmies
谢谢。你能把上面的答案作为答案,以便我能接受吗? – gmemon
@gmemon,请参阅我的评论以在CUDA 5.5中创建和执行多个上下文。你在16SM中成功执行了16个内核吗?最后你的解决方案是什么? – Tariq