拙訳
走査の制限(Scan Limitations)
- 2の累乗の長さである必要がある
- ひとつのブロックで実行する(グローバルメモリのみを用いる場合を除く)
- ひとブロックにスレッド数の最大2倍の長さ
任意長の配列での走査(Scan on Arrays of Arbitrary Length)
-
- 配列をブロックに分ける
-
- 各ブロックで走査を実行する
- 多くのシェーダモデルに渡り並列に動作する
-
- 各ブロックの総和の合計を新しい配列に書き込む
-
- ブロック増分を計算するためにブロック総和を走査する
-
- ブロック増分を対応するブロックの各要素に加える
- 2の累乗でない長さ: ブロックサイズまで最後のブロックを0でパッディングする