【发布时间】:2012-11-26 03:26:11
【问题描述】:
设备 GeForce GTX 680
在程序中,我有很长的数组要在内核内部处理。(大约 1 GB 的整数)。根据需要,我的数组按顺序分为块,有一些重叠(块之间的重叠为 k)。我有每个块的固定大小(块大小为 m)。现在,数组将按顺序划分 (0,m) (m-k, (m-k) +m) ,....)
根据上述计算,我的程序中所需的块数约为 (1GB / m) 由于 GPU 中的总块数是有限的,我该如何有效地做到这一点? 我应该从主机以迭代方式调用内核,而内核内部没有任何循环吗? 或者我应该调用内核一次,然后在内核内部循环进行多次迭代? 还是我应该只调用一次内核,总块数=(1 GB / m)?
什么可以作为这个程序的块数的最佳值以及什么方法?
【问题讨论】: