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