OpenACC基本と実践
GPUプログラミングをさらに身近に
著者 | 北山 洋幸 |
---|---|
判型 | B5変型判、440頁 |
ISBN | 978-4-87783-450-0 |
価格 | 本体 5,000円 |
発行日 | 2018年11月10日(初版第1刷) |
備考 | ダウンロードサービス:学習に使えるサンプルファイル |
本書について
GPUを利用したアクセラレータ型の並列化プログラミングでは、CPUとGPUを協調させる方法への対応が重要です。CPUとGPUにそれぞれバイナリが必要となり、処理の分担やメモリ管理を別々に行わなければなりません。メモリ空間が論理的・物理的に異なるため、ポインタなどをそのまま利用できない点は特に面倒です。そのため、GPU対応のプログラムの開発をはじめるには、ある一定の短くない学習時間が必要でした。
そこに現れたのがOpenACCです。OpenACCは、OpenMPを使うような感覚で、逐次プログラムにディレクティブを指定するだけでGPU対応のプログラムへ変換できます。
本書は短い期間でOpenACCを習得できることを目指して執筆されました。単に、プログラミングの習得だけでなく、ヘテロジニアスなシステムの基礎などや応用にも言及し、非同期などを使用したプログラミングへも対応できるよう心掛けました
目 次
- 第1章 コンピュータ概論
- 1-1 CPU概論
- 1-2 メモリ概論
- 1-3 並列化の限界と課題
- 第2章 OpenACC概論
- 2-1 概論
- 2-2 アクセラレータ型とメニーコア型
- 2-3 指示文の概要
- 2-4 データの移動
- 第3章 はじめてのプログラム
- 3-1 1次元配列へ係数を乗ずる
- 3-2 1次元配列同士の乗算
- 3-3 1次元配列同士の乗算・ほかの並列化
- 3-4 dataを明示
- 第4章 ライプニッツの公式
- 4-1 円周率を求める
- 4-2 倍精度浮動小数点
- 4-3 OpenMP
- 4-4 PGIコンパイラのtaオプション
- 第5章 OpenACCとデータ
- 5-1 データの属性
- 5-2 データのライフタイム
- 5-3 データ転送のタイミング
- 5-4 実際のプログラム例
- 第6章 2次元配列
- 6-1 行列の加算
- 6-2 行列の積
- 第7章 1次元配列の処理 —音響処理
- 7-1 単純移動平均
- 7-2 積和でフィルタ
- 第8章 2次元の具体例
- 8-1 2次元配列生成
- 8-2 メモリ割り付け法の変更
- 8-3 ネガティブ
- 8-4 フィルタ
- 8-5 幾何変換
- 8-6 カラー画像対応フィルタ
- 第9章 ディレクティブ(指示文)
- 9-1 Accelerator Computeディレクティブ
- 9-2 dataディレクティブ
- 9-3 enter dataとexit dataディレクティブ(OpenACC 2.0)
- 9-4 データ管理のサンプル
- 9-5 loopディレクティブ
- 第10章 実行時ライブラリ
- 10-1 acc_get_num_devices
- 10-2 acc_set_device_type
- 10-3 acc_get_device_type
- 10-4 acc_set_device_num
- 10-5 acc_get_device_num
- 10-6 acc_async_test
- 10-7 acc_async_test_all
- 10-8 acc_wait
- 10-9 acc_wait_async
- 10-10 acc_wait_all
- 10-11 acc_wait_all _async
- 10-12 acc_init
- 10-13 acc_shutdown
- 10-14 acc_on_device
- 10-15 acc_malloc
- 10-16 acc_free
- 10-17 acc_copyin
- 10-18 acc_present_or_copyin
- 10-19 acc_create
- 10-20 acc_present_or_create
- 10-21 acc_copyout
- 10-22 acc_delete
- 10-23 acc_update_device
- 10-24 acc_update_self
- 10-25 acc_map_data
- 10-26 acc_unmap_data
- 10-27 acc_deviceptr
- 10-28 acc_hostptr
- 10-29 acc_is_present
- 10-30 acc_memcpy_to_device
- 10-31 acc_memcpy_from_device
- 第11章 非同期プログラミング
- 11-1 簡単な非同期プログラム
- 11-2 2次元配列生成の非同期プログラム
- 11-3 ネガティブ処理の非同期プログラム
- 11-4 幾何変換の非同期プログラム
- 付録
- 付録A WAVユーティリティーズ
- 付録B Bitmapユーティリティーズ
- 付録C g++/gccの環境
- 付録D PGIコンパイラのOpenACC環境
新刊書籍のご案内などお送り致します。 ←クリックすると登録ページに行きます。