Part II. OpenCLアーキテクチャ

Table of Contents

13. OpenCLの概要
13.1. OpenCLバージョンについて
13.2. Pythonバインディング
13.2.1. PyCL
13.2.2. PyOpenCL
13.3. 最新動向
13.3.1. Altera FPGAの登場
13.4. 背景(ヘテロジニアス・マルチコア)
13.5. OpenCLの特徴
13.6. OpenCLフレームワークモデル
13.6.1. プラットフォームモデル
13.6.2. 実行モデル(Execution Model)
13.6.3. メモリーモデル
13.6.4. プログラミングモデル
13.7. OpenCLカーネルプログラミング
13.7.1. カーネル関数
13.7.2. 引数とバッファオブジェクト
13.7.3. カーネルカウンタ
13.8. OpenCL SDK
13.8.1. Ubuntu 18.04
13.8.2. Mac OS X
13.8.3. Installable Client Driver(ICD)
13.8.4. Windows
13.8.5. Linux
13.9. 検証環境
13.9.1. Mac Mini Late 2012の仕様
13.9.2. CPU/GPUデバイス
13.9.3. OpenCLデバイス情報
13.9.4. Intel第3・4世代CPU内蔵グラフィックボード
13.9.5. Intel Gen8/Gen9アーキテクチャ
13.10. Intel HD Graphics
13.11. Intel HD3000とHD4000の比較
13.12. Intel GPUとNVIDIA GPUのベンチマーク比較
13.13. SIMD
13.13.1. SSE/AVX
13.14. Autovectorization
13.14.1. 明示的ベクトル化
13.14.2. 暗黙的ベクトル化
13.15. Compute UnitとProcessing Element
13.15.1. なぜPEの理解は開発者にとって重要でないのか?
13.15.2. Execution Unit(Intel)
13.15.3. Streaming MultiProcessor(NVIDIA)
13.15.4. Compute Unit(AMD GCN)
13.16. サポートするプロセッサー
13.17. ワークグループ
13.17.1. CL_DEVICE_MAX_WORK_ITEM_SIZES
13.18. NDRange
13.18.1. NDRange:1次元
13.18.2. NDRange:2次元
13.18.3. NDRange:3次元
13.19. メモリー領域
13.19.1. privateメモリ
13.19.2. localメモリ
13.19.3. globalメモリ
13.19.4. constantメモリ
13.20. メモリレイテンシ
13.20.1. メモリ・キャッシュ帯域
13.21. 共有ローカルメモリ
13.21.1. Intel(第3~4世代以降のCPUアーキテクチャ)
13.21.2. NVIDIA
13.21.3. AMD
13.22. Stalls(ストール)
13.23. メモリストライド
13.23.1. キャッシュライン
13.23.2. バンク
13.24. 2次元アクセスパターン

Copyright 2018-2019, by Masaki Komatsu