エルザジャパン GPUコンピューティングセミナー2009

Posted by Hiroaki.S | Posted in 未分類 | Posted on 11-09-2009

0

エルザ主催のCUDAセミナーに出てきました.
GPUコンピューティングがいかに速いかということを紹介しつつ,
CUDAのインストールやアーキテクチャについても盛り込んだ内容になっていました.

やっぱり速いですね,GPU.
個人的にはCベースで書くことができるというのがうれしい.

勉強が必要だと感じるところは,GPUのアーキテクチャ.
ホストとGPUのアクセスの部分が重要.
ハード的な知識が通常のプログラミングよりも必要ですね.
(ブロック,スレッド単位の挙動)

CUDAプログラミングのポイント

  1. CUDAはCPU側プログラム + GPUプログラム(kernel関数)で動く.
  2. CPU側プログラム
    • ホストPCで実行されるプログラム
    • 拡張子 .cu
    • ほぼ普通のC言語と同じ
    • GPUへのデータ転送やkernel関数の起動
  3. kernel関数
    • GPUで実行されるプログラム
    • ホストPCに呼び出されて実行
    • _global_を宣言につける.
    • 引数は利用可,値の返却は不可 => void型
  4. nvccを用いて,コンパイル

千葉大学の増田信之先生の発表から引用させていただきました.

ここで重要なのがkernel関数がvoid型だということ.
GPUからCPU(ホスト)に値が返却できない.
そこを解決するのがglobalメモリ.
このglobalメモリがCPUとGPU間における唯一の橋.
(実際にはConstant MemoryやTexture Memoryもあるが,
大体Global Memoryなので割愛)

CUDAまとめ

  1. 速い(プログラムにもよるが,大体あがる).
  2. 特に並列処理が格段に速くなる.
  3. 3DCGの知識がなくても扱える.
  4. フーリエや行列のライブラリを実装.

他色々.

最後にnVIDIAの方の講演がありましたが,nVIDIAも魅力的な会社だなと感じました.

Write a comment