2008年08月20日

今更 CUDA

久々の更新になってしまった。

ビデオトランスコードに適当な H/W がないかと思って、
ビデオカードを交換して CUDA に手を出してみる。
ValueStar G が 350W 電源であるため GeForce 8400 で
我慢することになった。

CUDA の SDK は 2008/08/18 現在、Windows 版は 2.0
ベータ2が入手できる。
トランスコーディングに参考になりそうなサンプルは
DCT8x8 だろうか。
VideoCoder というズバリのサンプルもあるが、nvcuvid.lib
というソースコードのないライブラリに入ってしまった。

目を引くのは fluid と nbody だ。
fluid は FFT をかけて diffusion というプロセスを経て
逆 FFT をかけるというサンプルで、何をやっているのか
理解していないが、水面に浮かべた粒子の運動のシミュ
レーションのようだ。格子数は 512x512 だが、エントリー
レベルの GeForce 8400 でもさくさく動作するのは驚異。

nbody は天体の n 体問題を数値的に解くサンプルで、
この計算に特有の誤差の蓄積は考慮していない。
しかし、10000体を超える天体が 4fps 程度だがリアルタイム
で動くことに感動を覚えてしまった。私が学生の頃は
PC で2体問題を扱うことすらままならなかったのに…
試しに 8600 で動かしてみると 10fps 出るので、GPU が
ボトルネックになっている。

具体的な速度を計測してみると 8400 で 20〜25GFLOPS
という数値が出た(クロックは400MHz)。
Pen4 3.0GHz SSE 使用で実効 0.7GFLOPS程度なので、GPU が
数値計算に特化した H/W であることがよくわかる。
posted by みのしす at 20:09| Comment(2) | TrackBack(0) | 日記
この記事へのコメント
久々に有限要素法のコードを書いてみたく
なったよ。境界問題とか。

またバグだらけのコード書いて教官に
怒られそう。>_<
Posted by みのしす at 2008年08月20日 20:27
>fluid は FFT をかけて diffusion というプロセスを経て
>逆 FFT をかけるというサンプルで、何をやっているのか

スペクトル法というらしい。
http://www.utp.or.jp/bd/978-4-13-061305-7.html
早速 Amazon で購入する。
境界条件の設定が難しそうだな。
Posted by みのしす at 2008年08月21日 19:44
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/18194549

この記事へのトラックバック