CUDA:处理不适合GPU内存的数据

时间:2015-08-06 21:23:52

标签: cuda gpu

假设我有超过设备内存可用量的巨大矩阵(以某种方式处理,例如相乘)。有没有一种标准的方法来处理这样的问题?也许,零拷贝内存的使用隐含地提供了一种在需要时复制块的方法?

或者我必须通过加载数据来明确处理它?<​​/ p>

1 个答案:

答案 0 :(得分:2)

CUDA提供了CUDA Streams的机制。在一个数据流到来之前,将在当时处理上一个流。

此机制用于处理不适合GPU内存的矩阵。

数据被分成块数,这些块通过流复制。实际上,如果你一次复制chunk-chunk并处理一个chunk,那么它又是单线程程序。相反,您应该至少复制大小为16或32的Stream数组。

这是使用异步memcpy函数覆盖数据的复制。