パート IV. Java OpenCL実装

目次

11. ヒストグラム
11.1. アルゴリズムのパラメータ
11.2. 共有ローカルメモリ
11.3. ストライドとメモリアクセス
11.4. ストライドとBank Conflict
11.5. Stride型のアルゴリズム
11.6. バンクコンフリクトを緩和する実装例
11.7. アトミック型のアルゴリズム
12. 高速フーリエ変換(Fast Fourier Transform)
12.1. 使用する数学のまとめ
12.2. フーリエ変換(Fourier Transform)の定義
12.3. 離散フーリエ変換(Discrete Fourier Transform)
12.4. 高速フーリエ変換(Fast Fourier Transform)
12.4.1. Cooley-Tukey型アルゴリズム
12.4.2. Bit Reversal
12.5. 実装例(CPU)
12.6. 実装例(GPU)
13. 2次元高速フーリエ変換
13.1. 画像
13.2. 2次元への適用アルゴリズム
13.3. PNG画像の高域フィルターをCPUで実装
13.3.1. 高域フィルターの出力
13.4. 実装例(GPGPU)
13.5. 2次元カーネルの実装
13.5.1. 全体の流れ
13.6. GPGPUへの修正点(メモリストライド・Bank Conflict対策)
13.7. FFT-2Dで画像処理
14. Bitonic Sort(バイトニックソート)
14.1. バイトニック配列の構築
14.2. バイトニックマージ
14.3. バイトニックソートのOpenCL実装例
14.4. カーネルの実装(bitonic split)
14.5. カーネルの実装(bitonic merge)
15. 基数整列
15.1. ヒストグラム
15.2. Bucket Scan
15.3. Reduction(還元)
15.3.1. 結合性
15.3.2. 交換性
15.4. Prefix Sumへの適用
15.5. up-sweep(掃き上げ)
15.6. down-sweep(掃き下げ)
15.7. 並び替え(Rank)
15.8. 実装例(CPU)
15.8.1. ヒストグラム
15.8.2. Prefix-Sum
15.8.3. 並び替え
15.9. 実装例(GPU)
15.9.1. Up-sweep(GPU)
15.9.2. down-sweep
15.9.3. 並び替え(rearrange)
15.9.4. マルチキュー実装(CPU+GPU)
16. 参考書籍とWebリソース

Copyright 2018-2019, by Masaki Komatsu