CUDAで比較的小さいがサイズが異なる多数のアレイの平均/標準偏差を計算するための最良のアプローチを誰かが提案できるかどうか疑問に思っていますか?
SDKの並列削減の例は、単一の非常に大きなアレイで機能し、サイズはブロックあたりのスレッド数の倍数であると便利なようですが、私の場合はかなり異なります。
ただし、概念的には、それぞれに2つのコンポーネントが含まれるオブジェクトが多数あり、これらの各コンポーネントには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
構造体などに格納されていないことに注意してください。データは必要な方法で整理できます。重要なのは、各配列について、平均、標準偏差、そして最終的にはヒストグラムを計算する必要があり、1つの特定のオブジェクト内で、配列間の比率と差を計算する必要があるということです。
このデータをGPUデバイスに送信し、スレッドブロック階層を整理するにはどうすればよいですか?私が持っていたアイデアの1つは、すべての配列をゼロパッドして同じ長さにし、各オブジェクトでブロックのグループが機能するようにすることでしたが、このメソッドが機能する場合は、さまざまな問題があるようです。
前もって感謝します