- 20 名前:4 mailto:sage [2007/10/01(月) 12:05:40 ]
- ちょっとメモ。
device側メモリは共有メモリであろうとグローバルメモリであろうと、 並列動作で一箇所に書き込もうとすると(当然の如く)破綻する。 従って、ヒストグラム作成のようなロジックはそのままでは実装できない。 生データをソートしてから集計するロジックを書いてみたが、さてこいつをどう並列化するか。 -- __global__ void devSum(int begin, int end, int idx, float2 * tmp) { int ic = begin; float2 sum = make_float2(tmp[ic].x, tmp[ic].y); for (++ic; ic < end; ++ic) { sum.x += tmp[ic].x; sum.y += tmp[ic].y; } ar[idx] = sum.x; ai[idx] = sum.y; } -- 単純に考えると開始位置を検索しなければならないが、それ自体にコストが掛かりそうだ。
|

|