2015-02-11 82 views
1

我正在寻找一种方法来划分我的Nvidia GPU设备,以便我可以同时运行两套内核,而不需要为SMs而战。设备与CUDA的分裂

根据文档,在openCL中,您可以使用clCreateSubDevices。有没有CUDA等价物?

+0

TTBOMK CUDA不支持OpenCL的设备分裂。但是,您可以并行运行多个内核,并且调度程序**可以**同时运行它们,具体取决于资源/调度程序情绪的可用性。但不能保证。 – 2015-02-12 07:12:51

回答

1

我个人在CUDA中没有遇到过这样的功能。

要同时运行两个内核,可以计算内核的占用率,相应地调用有限数量的块,并在内核中使用循环来模拟更多块的存在。每个线程可能会花费更多的寄存器。如果您不想触摸内核的内容,则可以多次启动流中的每个内核,每次使用有限的网格大小。第二种方法的成本在一个流的内核之间转换时可能未被完全占用的SM。