試験公開中

このエントリーをはてなブックマークに追加

CUDA C プロフェッショナル プログラミング

インプレス

5,000円+税

CUDA Cプログラミングを本格的に理解して、プログラムの高速化を図るための技術解説書。本書では、CUDAプログラミングモデルから始め、カーネルレベルやグリッドレベルの並列化手法を解説。グローバルメモリ、シェアードメモリ、ストリームなどを徹底活用する方法を紹介します。

関連サイト

本書の関連ページが用意されています。

内容紹介

CUDA Cプログラミングを本格的に理解して、プログラムの高速化を図るための技術解説書。本書では、CUDAプログラミングモデルから始め、カーネルレベルやグリッドレベルの並列化手法を解説。グローバルメモリ、シェアードメモリ、ストリームなどを徹底活用する方法を紹介します。さらに、GPUスループットの計測、CUDAアプリケーションへの効率的な移植、マルチGPUプログラミングについても説明。

◎本書は『Professional CUDA C Programming』の翻訳書です。

【本書の構成】
第1章 CUDAによるヘテロジニアス並列コンピューティング
第2章 CUDAプログラミングモデル
第3章 CUDAの実行モデル
第4章 グローバルメモリ
第5章 シェアードメモリとコンスタントメモリ
第6章 ストリームと並列処理
第7章 命令レベルのプリミティブの調整
第8章 CUDAのGPUアクセラレーションライブラリとOpenACC
第9章 マルチGPUプログラミング
第10章 実装上の注意点

書誌情報

  • 著者: John Cheng, Max Grossman, Ty McKercher(著), 株式会社クイープ(訳), 森野慎也,成瀬 彰(監訳)
  • 発行日: (紙書籍版発行日: 2015-09-24)
  • 最終更新日: 2015-09-24
  • バージョン: 1.0.0
  • ページ数: 584ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: インプレス

対象読者

C/C++プログラミング経験者。CG、科学技術、組み込み産業、データ分析などに関わるプログラマー。

著者について

John Cheng

計算知能の専門家として10年以上金融業界で働き、遺伝的アルゴリズムにデータマイニングや統計学習を掛け合わせた先進的なソリューションを提供。現在は、エネルギー産業に従事。東京工業大学で計算知能分野の博士号を取得。

Max Grossman

医療画像システムや機械学習、地球物理学でCUDAの適用経験があるGPUコンピューティングの専門家。

Ty McKercher

2008年からNVIDIA社に勤務し、GPUアクセラレーション技術のユーザーサポートを行っている。

株式会社クイープ

1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。

森野慎也

2013年よりNVIDIAでCUDA担当のシニアソリューションアーキテクトとして勤務。本書では、監訳のほか、4、5、6、7、10章の日本語版コラムの執筆を担当。

目次

本書に寄せて

はじめに

謝辞

目次

第1章 CUDA によるヘテロジニアス並列コンピューティング

  • 1.1 並列コンピューティング
  • 1.2 ヘテロジニアスコンピューティング
  • 1.3 Hello.World.from.GPU
  • 1.4 CUDA.C プログラミングは難しい?
  • 1.5 まとめ

第2章 CUDA プログラミングモデル

  • 2.1 CUDA プログラミングモデルの概要
  • 2.2 カーネルの所要時間の計測
  • 2.3 並列スレッドの構成
  • 2.4 デバイスの管理
  • 2.5 まとめ

第3章 CUDA の実行モデル

  • 3.1 CUDA の実行モデルの紹介
  • 3.2 ワープ実行の特性
  • 3.3 並列性の確保
  • 3.4 分岐のダイバージェンスの回避
  • 3.5 ループの展開
  • 3.6 ダイナミックパラレリズム
  • 3.7 まとめ

第4章 グローバルメモリ

  • 4.1 CUDA のメモリモデルの紹介
  • 4.2 メモリの管理
  • 4.3 メモリアクセスパターン
  • 4.4 カーネルの帯域幅の調整
  • 4.5 ユニファイドメモリを使った行列の加算
  • 4.6 まとめ

第5章 シェアードメモリとコンスタントメモリ

  • 5.1 CUDA のシェアードメモリの紹介
  • 5.2 シェアードメモリのデータレイアウトの確認
  • 5.3 グローバルメモリへのアクセスの削減
  • 5.4 グローバルメモリへのアクセスのコアレッシング
  • 5.5 コンスタントメモリ
  • 5.6 ワープシャッフル命令
  • 5.7 まとめ

第6章 ストリームと並列処理

  • 6.1 ストリームとイベントの紹介
  • 6.2 カーネルの並列実行
  • 6.3 カーネル実行とデータ転送のオーバーラップ
  • 6.4 GPU と CPU の実行のオーバーラップ
  • 6.5 ストリームのコールバック
  • 6.6 まとめ

第7章 命令レベルのプリミティブの調整

  • 7.1 CUDA 命令の概要
  • 7.2 アプリケーションに合わせた命令の最適化
  • 7.3 まとめ

第8章 CUDA の GPU アクセラレーションライブラリとOpenACC

  • 8.1 CUDA ライブラリの紹介
  • 8.2 cuSPARSE ライブラリ
  • 8.3 cuBLAS ライブラリ
  • 8.4 cuFFT ライブラリ
  • 8.5 cuRAND ライブラリ
  • 8.6 CUDA.6 で導入された CUDA ライブラリの機能
  • 8.7 CUDA ライブラリのパフォーマンスの調査
  • 8.8 OpenACC の使用
  • 8.9 まとめ

第9章 マルチ GPU プログラミング

  • 9.1 マルチ GPU への移行
  • 9.2 複数の GPU の間で計算処理を分割する
  • 9.3 複数の GPU でのピアツーピア通信
  • 9.4 マルチ GPU での有限差分法
  • 9.5 GPU クラスタでのアプリケーションのスケーリング
  • 9.6 まとめ

第10章 実装上の注意点

  • 10.1 CUDA.C の開発プロセス
  • 10.2 プロファイルに基づく最適化
  • 10.3 CUDA のデバッグ
  • 10.4 ケーススタディ:CUDA.C への C プログラムの移植
  • 10.5 まとめ

付録 A 参考文献

索引

Home 書籍一覧 CUDA C プロフェッショナル プログラミング ▲ ページトップへ戻る