エルザジャパン GPUコンピューティングセミナー2009
Posted by Hiroaki.S | Posted in 未分類 | Posted on 11-09-2009
0
エルザ主催のCUDAセミナーに出てきました.
GPUコンピューティングがいかに速いかということを紹介しつつ,
CUDAのインストールやアーキテクチャについても盛り込んだ内容になっていました.
やっぱり速いですね,GPU.
個人的にはCベースで書くことができるというのがうれしい.
勉強が必要だと感じるところは,GPUのアーキテクチャ.
ホストとGPUのアクセスの部分が重要.
ハード的な知識が通常のプログラミングよりも必要ですね.
(ブロック,スレッド単位の挙動)
CUDAプログラミングのポイント
- CUDAはCPU側プログラム + GPUプログラム(kernel関数)で動く.
- CPU側プログラム
- ホストPCで実行されるプログラム
- 拡張子 .cu
- ほぼ普通のC言語と同じ
- GPUへのデータ転送やkernel関数の起動
- kernel関数
- GPUで実行されるプログラム
- ホストPCに呼び出されて実行
- _global_を宣言につける.
- 引数は利用可,値の返却は不可 => void型
- nvccを用いて,コンパイル
千葉大学の増田信之先生の発表から引用させていただきました.
ここで重要なのがkernel関数がvoid型だということ.
GPUからCPU(ホスト)に値が返却できない.
そこを解決するのがglobalメモリ.
このglobalメモリがCPUとGPU間における唯一の橋.
(実際にはConstant MemoryやTexture Memoryもあるが,
大体Global Memoryなので割愛)
CUDAまとめ
- 速い(プログラムにもよるが,大体あがる).
- 特に並列処理が格段に速くなる.
- 3DCGの知識がなくても扱える.
- フーリエや行列のライブラリを実装.
他色々.
最後にnVIDIAの方の講演がありましたが,nVIDIAも魅力的な会社だなと感じました.
