CUDA by Example 汎用GPUプログラミング入門

CUDA by Example 汎用GPUプログラミング入門

3,080円(本体 2,800円+税10%)

品種名
書籍
発売日
2011/2/14
ページ数
264P
サイズ
B5変型判
著者
Jason Sanders、Edward Kandrot 著/株式会社クイープ 訳
ISBN
9784844329787

NVIDIA社シニアエンジニアが執筆! CUDAでハードウェア性能を引き出し、計算時間を劇的に減らそう

本書では、汎用GPU(GPGPU)上でのCUDA Cプログラミングの基礎からはじめ、スレッド間の連携、コンスタントメモリ/テクスチャメモリの使用、アトミック/ストリームの活用、マルチGPUの利用、DirectX/OpenGLとの相互運用などを解説。CUDA Cプログラミングのさまざまな重要ポイントや注意点を取り上げています。サンプルを交えて解説しており、CUDA Cの手法が具体的かつ明確にわかります。初級から中級への橋渡しともなるCUDA Cプログラマ必携の翻訳書です。

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

詳細

■ページイメージ



■推薦のことば
本書は、アクセラレータベースのコンピューティングシステムに取り組んでいる、すべての人の必読書です。並列コンピューティングの詳細に踏み込み、あなたが直面するかもしれないさまざまな問題へのアプローチを提案します。アプリケーション開発者、数値を扱うライブラリの作成者、並列コンピューティングを学んでいる学生や講師の方は、ぜひ読んでください。
私は本書を楽しみ、本書から学びました。あなたもきっとそうであると確信しています。

Jack Dongarra[ジャック・ドンガラ]
テネシー大学特別名誉教授、テネシー大学研究グループ名誉会員、オークリッジ国立研究所
(「まえがき」より抜粋)

■著者からのメッセージ
CUDA GPUのプログラミングには、CUDA Cという言語を使います。本書の最初の部分で示すように、CUDA Cは、基本的にはひと握りの拡張機能を備えたCであり、NVIDIAのGPUのような超並列マシンのプログラミングを可能にします。
本書は、あなたのCの経験をもとに、NVIDIAのCUDA Cプログラミング言語を使うためのサンプル主体の「クイックスタートガイド」です。大規模なソフトウェアアーキテクチャを扱った経験も、Cコンパイラやオペレーティングシステムカーネルを記述した経験も、ANSI C規格を隅々まで知っている必要もありません。ただし、Cの構文や、malloc()やmemcpy()といったよく使われるCライブラリ関数を改めて説明することはしないので、それらをすでによく理解していることが前提となります。
(「はじめに」より抜粋)

目次

第1章 なぜ今CUDAなのか
   1.1 本章の目的
   1.2 並列処理の時代
   1.3 GPUコンピューティングの台頭
   1.4 CUDAアーキテクチャ
   1.5 CUDAの応用例
   1.6 まとめ

第2章 プログラミングを始めるための準備
   2.1 本章の目的
   2.2 開発環境
   2.3 まとめ

第3章 CUDA Cプログラミングの第一歩
   3.1 本章の目的
   3.2 最初のプログラム
   3.3 デバイスの確認
   3.4 デバイスプロパティの使用
   3.5 まとめ

第4章 CUDA Cによる並列プログラミング
   4.1 本章の目的
   4.2 CUDAの並列プログラミング
   4.3 まとめ

第5章 スレッドどうしのやり取り
   5.1 本章の目的
   5.2 並列ブロックの分割
   5.3 共有メモリと同期
   5.4 まとめ

第6章 コンスタントメモリとイベント
   6.1 本章の目的
   6.2 コンスタントメモリ
   6.3 イベントを使ったパフォーマンスの測定
   6.4 まとめ

第7章 テクスチャメモリ
   7.1 本章の目的
   7.2 テクスチャメモリの概要
   7.3 熱伝導のシミュレーション
   7.4 まとめ

第8章 グラフィックスの相互運用性
   8.1 本章の目的
   8.2 グラフィックスの相互運用
   8.3 グラフィックスの相互運用によるGPUの波紋効果
   8.4 グラフィックスの相互運用による熱伝導
   8.5 DirectXの相互運用性
   8.6 まとめ

第9章 アトミック
   9.1 本章の目的
   9.2 Compute Capability
   9.3 アトミック演算の概要
   9.4 ヒストグラムの計算
   9.5 まとめ

第10章 ストリーム
   10.1 本章の目的
   10.2 ページロックホストメモリ
   10.3 CUDAストリーム
   10.4 CUDAストリームを1つだけ使う
   10.5 CUDAストリームを2つ以上使う
   10.6 GPUのスケジューリング
   10.7 複数のCUDAストリームを効果的に使う
   10.8 まとめ

第11章 マルチGPUでCUDA Cプログラミング
   11.1 本章の目的
   11.2 ゼロコピーホストメモリ
   11.3 複数のGPUの使用
   11.4 ポータブルピンメモリ
   11.5 まとめ

第12章 ファイナルカウントダウン[CUDAをさらに知るために]
   12.1 本章の目的
   12.2 CUDAツール
   12.3 参考文献
   12.4 参考になるコード
   12.5 まとめ

付録A 高度なアトミック
   A.1 ドット積の再考
   A.2 ハッシュテーブルの実装
   A.3 まとめ



■著者プロフィール
Jason Sanders[ジェイソン・サンダース]
NVIDIAのCUDA Platformグループのシニアソフトウェアエンジニア。NVIDIAではCUDAシステムソフトウェアの初期リリースの開発に協力し、ヘテロ計算環境の業界標準OpenCL 1.0仕様に貢献。カリフォルニア大学バークレー校でコンピュータサイエンスの修士号を、プリンストン大学で電気工学の学士号を取得。バークレー校在学中にGPUコンピューティングに関する研究を発表。NVIDIAに在籍する前は、ATI Technologies、Apple、Novellに勤務。本の執筆以外の時間は、ワークアウト、サッカー、写真撮影を楽しんでいる。

Edward Kandrot[エドワード・キャンドロット]
NVIDIAのCUDA Algorithmsチームのシニアソフトウェアエンジニア。業界での経験は20年以上にわたり、PhotoshopやMozillaを含め、主にコードの最適化やパフォーマンスの改善に従事。これまでにAdobe、Microsoft、Googleに勤務し、AppleやAutodeskをはじめとする多くの企業でコンサルタントも務めてきた。コーディング以外の時間は、「World of Warcraft」をしているか、美食を求めてラスベガスに出かけたりしている。

ダウンロード

本製品の読者さまを対象としたダウンロード情報はありません。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 0ページ viiページ 上から2つめのURL サンプルコードの入手サイト
    • [誤]
      http://developer.nvidia.com/object/cuda-by-example.html
    • [正]
      http://developer.download.nvidia.com/assets/cuda/files/cuda_by_example.zip
    • 備考:

       

      2012年夏現在、セキュリティ上の問題のため、NVIDIAのウェブサイトが改修中となっており、これまでにお知らせしたURLからはサンプルコードをダウンロードできなくなっています。

       

      サンプルコードは、以下のリンクからダウンロードをお願いいたします。

       

      http://developer.download.nvidia.com/assets/cuda/files/cuda_by_example.zip

       

       

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム