CUDA 高速GPUプログラミング入門

概 要

CUDA独自のプログラミングモデルを解説した実践的なプログラミング入門書です。CUDAはNVIDIAが提供する、GPUで計算することでコンピューティング能力を増強させる、これまでにない並列コンピューティングアーキテクチャです。本書では、GPUとは何か、3DCGの動作原理といった基本から、スカラプロセッサやストリーミングマルチプロセッサ等CUDAが動作する環境で覚えておきたいハードウェアの説明、スレッドの概念、グローバルメモリや共有メモリなど各種メモリの特性、実行環境の設定など、CUDAの独自プログラミングモデルを丁寧に図解で解説。実際にサンプルプロジェクトを作ってCPUとGPUの処理速度の違いを体験します。サンプルコードのダウンロードサービス付き。

著者 岡田賢治、小山田耕ニ
価格 本体2200円(税別)
ISBN 978-4-7980-2578-0
発売日 2010/3/25
判型 B5変
色数 1色
ページ数 224
CD/DVD
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 1 CUDAについて

1.1 はじめに

1.1.1 ようこそ

1.1.2 CUDAの必要性

1.1.3 本書の構成

1.1.4 必要なスキル

1.1.5 実行環境

1.2 CUDAとは

1.2.1 CUDAの誕生

1.2.2 GPGPUからGPUコンピューティングへ

1.2.3 CUDAの応用分野

1.2.4 これからのアーキテクチャ「Fermi」

1.3 類似技術(Cg、PhysX、OpenCL)

1.3.1 Cg

1.3.2 PhysX

1.3.3 ATI Stream

1.3.4 OpenCL

Chapter 2 GPUの働き

2.1 GPUとは?

2.1.1 コンピュータと画面出力

2.1.2 ビデオカードの登場

2.1.3 3D技術

2.1.4 3D専用ワークステーション

2.1.5 GPUの誕生

2.1.6 NVIDIAのハードウエアラインナップ

2.2 Intel CPU

2.2.1 MMX/SSE

2.2.2 パイプライン

2.3 3D CGの動作原理

2.3.1 3Dの座標概念

2.3.2 ポリゴンメッシュ

2.3.3 テクスチャマッピング

2.3.4 シェーダ機能

2.4 GeForceシリーズの変移

2.4.1 シェーダプロセッシング

2.4.2 プログラマブルシェーダ

2.4.3 その他のアーキテクチャ

Chapter 3 CUDAのプログラミングモデル

3.1 CUDAの動作

3.1.1 ホストとデバイス

3.1.2 ホストとデバイスでの実行

3.1.3 CUDAプログラムの生成

3.2 スカラプロセッサとストリーミングマルチプロセッサ

3.2.1 スカラプロセッサ

3.2.2 ストリーミングマルチプロセッサ

3.3 ブロックとグリッド

3.3.1 ブロック

3.3.2 グリッド

3.4 カーネルとスレッド

3.4.1 カーネル

3.4.2 スレッド

3.4.3 ワープ

3.5 ハードウエア情報の取得

3.5.1 Compute Capability

3.5.2 deviceQuery

3.5.3 GTX 285のdeviceQuery

Chapter 4 CUDAのスレッド

4.1 スレッドと同期

4.1.1 サンプルソースコード

4.1.2 CUDAと非同期処理

4.1.3 同期処理

4.2 ホスト(__host__)とデバイス(__device__)

4.2.1 ホストとデバイスという考え方

4.2.2 CUDAのメモリモデル

4.3 C for CUDA

4.3.1 C言語の拡張(1)

4.3.2 CUDAにおける特別な型

4.3.3 カーネルプログラム上での特別な変数

4.3.4 ストリーム処理

4.3.5 イベント処理

4.4 CUDAで利用できる演算処理

4.4.1 算術関数の区別

4.4.2 アトミック関数

4.4.3 メモリ保護・同期関数

Chapter 5 CUDAとメモリ

5.1 CUDAのメモリモデル

5.1.1 ホスト・デバイスのメモリ

5.1.2 デバイス上のメモリ

5.2 各メモリの特徴

5.2.1 レジスタ

5.2.2 シェアードメモリ

5.2.3 グローバルメモリ

5.2.4 ローカルメモリ

5.2.5 テクスチャメモリ

5.2.6 コンスタントメモリ

5.3 メモリに関する関数

5.3.1 メモリの確保と解放

5.3.2 メモリの転送

5.3.3 マップドメモリ

5.4 メモリアクセスとCUDAの特徴

5.4.1 グローバルメモリへのアクセス

5.4.2 Compute Capability 1.2以降

5.4.3 シェーアドメモリとバンクコンフリクト

Chapter 6 実行環境について

6.1 WindowsでのCUDA環境の整え方

6.1.1 WindowsでのCUDA

6.1.2 Windows XPのインストール

6.1.3 CUDAのツールをインストールする

6.1.4 Visual Studio 20.0.8 Express Editionをインストールする

6.2 Mac OS XでのCUDA環境の整え方

6.2.1 Mac OS XでのCUDA

6.2.2 Mac OS Xのインストール

6.2.3 CUDAツールをインストールする

6.2.4 環境変数の設定

6.2.5 サンプルプログラムのビルド

6.3 LinuxでのCUDA環境の整え方

6.3.1 LinuxでのCUDA

6.3.2 Linuxのインストール

6.3.3 CUDAのツールをインストールする

Chapter 7 サンプルプロジェクト

7.1 行列計算

7.1.1 CPUでの計算

7.1.2 行列計算

7.1.3 CPUを利用したプログラム

7.1.4 プロジェクトの作成(C言語版)

7.1.5 CUDA版の行列計算

7.1.6 プロジェクトの作成(CUDA版)

7.2 バイトニックソート

7.2.1 バイトニックソートとは

7.2.2 バイトニックソートの流れ

7.2.3 バイトニックソートのプログラム(C言語)

7.2.4 バイトニックソートの実行(C言語)

7.2.5 バイトニックソートのプログラム(CUDA)

7.2.6 バイトニックソートの実行(CUDA)

7.3 画像エフェクト処理

7.3.1 画像処理と数値計算

7.3.2 平滑化(ぼかし)処理

7.3.3 ビットマップ処理のライブラリ「QDBMP」

7.3.4 平滑化プログラムをCUDAで実行する

7.3.5 プロジェクトの実行

7.3.6 プログラムの評価

Chapter 8 CUDA対応ハードウエア一覧と補足

8.1 CUDA学習のこれから

8.1.1 次のステップ

8.1.2 ツールの利用

8.1.3 ハードウエアの新しい流れ

8.2 CUDA対応ハードウエア

8.2.1 GeForceシリーズ

8.2.2 Quadroシリーズ

8.2.3 TeslaとION

8.3 ベンチマーク

PR

秀和システム