[パタヘネ:読書メモ]付録A グラフィックスとGPU コンピューティング

この章の筆者はNVIDIAの人なので、内容にバイアスが入っている可能性があるかも….

A.1 はじめに

GPUはグラフィックプロセッサだけではなく、複数コアを持つ並列数値演算の側面も持ってきている。最近は汎用プログラムを実行するための仕組み(ハードのサポートや開発環境)が整備されてきている。

CUDAというプラットフォームでは、C,C++で開発が出来て、メニーコア環境での並列処理が行える。


A.2 GPUシステムのアーキテクチャ


昔のVGAカードは、ノースブリッジとサウスブリッジをつないでいるPCIバスに接続されていた。

一方今のGPUは、メモリと同列レベルに格上げされており、ノースブリッジ配下になっている。また、GPUとCPUは互いに相手のメモリにアクセスできるようになっている。

ローエンドのGPUはGPU専用のメモリを使用せずにCPUの主記憶をGPU用に共用している。これはユニファイド・メモリ・アーキテクチャ(UMA)と呼ばれている。



A.3 GPUのプログラミング

GPUをグラフィックス向けではなく、数値計算目的で使用するんいは、以下のようなインターフェースがある。

CUDA
	NVIDIAが開発した言語
	C,C++を機能拡張している
 
Brook
	GPUに適合化したストリーミング言語らしい??
 
CAL(Compute Abstraction Layer)
	AMDによるGPU向けのアセンブラ



CUDAでは3つの抽象化を行っている。

スレッドグループ階層
共有メモリ
バリア同期



これらを使用することで、多数のデータを分割して複数スレッドで実行し、全スレッドが終わるのを待つ(同期を取る)といった事が簡単に出来る。
C言語の拡張は、このスレッド呼び出しの記法とかが対象になってるっぽい。


A.4以降

興味が無いので、以下の節は省略(読んでない)

A.4マルチスレッド型マルチプロセッサのアーキテクチャ A.5 並列記憶システム
A.6 浮動小数点算術演算
A.7 実例:NVIDIA GeForce 8800
A.8 実例:GPUへのアプリケーションの適用
A.9 誤信と落とし穴
A.10 おわりに
A.11 歴史展望と参考文献(◎CDコンテンツ)


関連記事

コメントを残す

メールアドレスが公開されることはありません。