我想知道是否有人可以建议最好的方法来计算大量相对较小的平均值/标准偏差,但是在CUDA中的不同大小的阵列?CUDA减少许多小的,不相等大小的阵列
SDK中平行下降示例工作一个非常大的阵列上,似乎大小为方便每块的线程数的倍数,但我的情况有点不同:
概念,然而,我具有大量的对象,每个对象包含两个组件,分别为upper
和lower
,并且这些组件中的每一个都具有x
和y
坐标。即
upper.x, lower.x, upper.y, lower.y
这些阵列中的每一个的长度为大约800
但它的对象之间变化(未在对象内),例如
Object1.lower.x = 1.1, 2.2, 3.3
Object1.lower.y = 4.4, 5.5, 6.6
Object1.upper.x = 7.7, 8.8, 9.9
Object1.upper.y = 1.1, 2.2, 3.3
Object2.lower.x = 1.0, 2.0, 3.0, 4.0, 5.0
Object2.lower.y = 6.0, 7.0, 8.0, 9.0, 10.0
Object2.upper.x = 11.0, 12.0, 13.0, 14.0, 15.0
Object2.upper.y = 16.0, 17.0, 18.0, 19.0, 20.0
请注意以上仅仅是我代表阵列的方式和我的数据没有存储在C
结构或类似的东西:数据可以以任何方式,我需要进行组织。重点是,对于每个阵列,需要计算均值,标准偏差和最终直方图,并且在一个特定对象内,需要计算数组之间的比率和差异。
我应该如何将这些数据发送到GPU设备并组织我的线程块层次结构?我想到的一个想法是将所有数组填充为零,以使它们具有相同的长度,并且在每个对象上都有一组块,但是如果它能够工作,似乎存在各种各样的问题。
在此先感谢
谢谢,我决定去每个阵列1块 – zenna 2009-11-23 01:10:51