Part V. PyOpenCL実装

Table of Contents

18. ヒストグラム
18.1. アルゴリズムのパラメータ
18.2. 共有ローカルメモリ
18.3. ストライドとメモリアクセス
18.4. ストライドとBank Conflict
18.5. Stride型のアルゴリズム
18.6. バンクコンフリクトの緩和対策の実装例
18.7. アトミック型のアルゴリズム
19. 高速フーリエ変換(Fast Fourier Transform)
19.1. 使用する数学のまとめ
19.2. フーリエ変換(Fourier Transform)の定義
19.3. 離散フーリエ変換(Discrete Fourier Transform)
19.4. 高速フーリエ変換(Fast Fourier Transform)
19.4.1. Cooley-Tukey型アルゴリズム
19.4.2. Bit Reversal
19.5. 実装例(CPU)
19.6. 実装例(GPU)
20. 2次元高速フーリエ変換
20.1. 実装例(GPGPU)
20.2. 2次元カーネルの実装
20.2.1. 全体の流れ
20.3. GPGPUへの修正点(メモリストライド・Bank Conflict対策)
21. Bitonic Sort(バイトニックソート)
21.1. バイトニック配列の構築
21.2. バイトニックマージ
21.3. バイトニックソートのOpenCL実装例
21.4. カーネルの実装(bitonic split)
21.5. カーネルの実装(bitonic merge)
22. 基数配列
22.1. ヒストグラム
22.2. Bucket Scan
22.3. Reduction(還元)
22.3.1. 結合性
22.3.2. 交換性
22.4. Prefix Sumへの適用
22.5. up-sweep(掃き上げ)
22.5.1. down-sweep(掃き下げ)
22.6. 並び替え(Rank)
22.7. 実装例(CPU)
22.7.1. ヒストグラム
22.7.2. Prefix-Sum
22.7.3. 並び替え
22.8. 実装例(GPU)
22.8.1. Up-sweep(GPU)
22.8.2. down-sweep
22.8.3. 並び替え(rearrange)
23. 参考書籍とWebリソース

Copyright 2018-2019, by Masaki Komatsu