我需要在GPU上处理一个维度为K x N的2-D数组,其中K是一个小数字(3、4或5),N的值是数百万到100秒。该处理将一次针对K个元素的一列进行,以便每一列将由内核的单独调用来处理。在GPU上表示K x N数组的最有效方法是什么:
1)在一维数组中,将一列的K个元素放置在连续的位置,使得每个线程将处理元素K*thread_id,K*thread_id + 1,...,K*thread_id +K
我想知道数据布局Structs of Arrays (SoA)是否总是比Array of Structs (AoS)或Array of Pointers (AoP)更快,因为输入只适用于RAM在C/JAVA中编程的输入。几天前,我改进了分子动力学算法( C)的性能,总结了该算法基于粒子的力和位置来计算粒子间的力相互作用。
原始粒子用一个包含9种不同双倍的结构来表示,3种粒子力(Fx,Fy,