我正在寻找一种方法来对我的Nvidia GPU设备进行分区,这样我就可以同时运行两套内核,而不用为SM而战。
根据文档,在openCL中您可以使用clCreateSubDevices。是否有任何CUDA等价物?
答案 0 :(得分:1)
我个人在CUDA中没有遇到过这样的功能。
要同时运行两个内核,您可以计算内核的占用率,相应地调用有限数量的块,并使用内核中的循环来模拟更多块的存在。每个线程可能会花费更多的寄存器。如果您不想触摸内核的内容,可以多次在流中启动每个内核,每次都使用有限的网格大小。当在一个流的内核之间进行转换时,第二种方法的成本可能不是完全占用的SM。