是否可以在不同的多处理器上运行不同的线程?类似于CPU核心?
假设我有2个大数组a,b,我想计算总和和差异。假设我的设备上有2个多处理器。是否可以在2个不同的多处理器上同时运行两个内核函数(计算总和和差异)?
答案 0 :(得分:2)
使用计算总和和差异的例子,如果同时计算两者(即在同一个内核中),可能会实现最佳性能。
假设由于某种原因这是不可能的,那么如果您的阵列非常大,那么最佳性能可能是使用整个GPU(即多个多处理器)来计算结果,在这种情况下它并不重要你一个接一个地做。
对于上述两种情况,我强烈建议您查看SDK中的 reduction 示例,它会引导您完成一个简单的实现,并提供一个包含良好文档的非常快速的版本。
说完了所有这些,如果工作量足够小,你不会完全利用整个GPU进行一次计算,那么有两种方法可以在不同的计算上运行不同的计算多处理机:
如果你的硬件支持它,那么第一个更为可取(你需要Compute Capability 2.0或更高版本),因为它更易于阅读和维护。
答案 1 :(得分:0)
是的,使用费米设备和多个流。