<   2010年 11月 ( 5 )   > この月の画像一覧

e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

NVIDIA Quadro FX 3700 で OpenGL 描画時にノイズの嵐

最近、職場のPCのグラフィックカードを Quadro FX 4600 から Quadro FX 3700 に

交換しました。

というのも、CUDAでプログラムを作成するために、

どうしても Compute Capability 1.1 以降の機能が必要になったから。

Quadro FX 4600 は、古いため、Compute Capability が 1.0 なのでした。

必要な機能は、32bit Integer の Atomic関数。

これなくて、まともな処理出来るのか???と疑問ですが、

かなり無理矢理な方法を使えば、無くてもどうにかなるかもしれないけど、

そのためにコードがぐちゃぐちゃになるし、難しい。


とにかく、FX 3700を使っているんだけど、OpenGLで絵を描画すると、

何フレームかに1度くらいの頻度で、描画がおかしくなり、モデルの周りに

ノイズが広がった感じになってしまう。


隣の席(同じくFX 3700)で試してもらったけど、同じ症状だったから、

最初、プログラムに原因があると思い込んで、シンプルなOpenGLの

プログラムを作成してテストしてみたけど、ダメ。

GLUTのバージョンなんかが悪いのかと思ったけど、そうでもないらしい。

以前作った普通に動くはずのプログラムもノイズだらけ・・・

これはおかしい。


自宅(GeForce GTS 250)で同じプログラムを実行してみたら、全くノイズなし。

・・・

ハードの仕様か?ドライバの仕様か???

どちらにしても、私には非はない事ははっきりした・・・

今日の午後の時間を返してくれぇ~~~~~ ・・・・・・ (;_;)




ユーブック
[PR]
by isoq | 2010-11-17 00:31 | コンピュータ
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

CUDAで粒子シミュレーション

CUDAで、シミュレーションを書いていますが、

やっとまともに動き始めました。

32x32x32要素の粒子シミュレーションですが、計算時間は、

GPUだと、5ms(干渉少)~15ms(干渉多数) ・・・ GeForce GTS 250 (128コア)

CPUだと、50ms(干渉少)~80ms(干渉多数) ・・・ Core i7 860 (2.8GHz) 1スレッド

と、CPUもかなりがんばっています。

CPUを10コア使えば、GPUの128コアとほぼ同じ以上の処理ができるということは、

とにかく、1コアあたり1/10くらいの仕事はしてくれるのかな?という感じ。

GPUのコア数を増やせば、より処理時間が減るので、480コアの

GeForce GTX 480を使用すれば、約4倍速く処理が終わり、

目標としている1msに近づきそうです。

(本当は要素数 100x100x100 でやりたかったので、かなり妥協の妥協ですが・・・ ^^;)


こうしてみると、CPUの方が、アーキテクチャやパイプライン処理の

最適化が進んでいる印象を強く受けますね。

あと、

①これを最適化して、1msオーダーで処理を行う。

②粒子同士の連結(スプリング・ダンパー)をつける。

③より多コアのGPUでやってみる。

というところが、当面の目標になります。

先は長そうですが、光は見えてきた感じです。


AMD ATI Radeon HDだと、最上位機種に3000コアとかありますが、

これって、NVIDIAと同じ性能のコアが3000個付いていると

考えて良いのかなぁ・・・???


要するに、↓ これを買わなきゃって事なんだけど。(PRですいません)

デル株式会社
[PR]
by isoq | 2010-11-13 19:29 | 3Dグラフィックス
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Parallel Nsight

nVidia の GPU 開発環境の一環として公開されているデバッガ、

Parallel Nsight なのですが、けっこう使用条件が厳しい・・・

・ Windows Vista / 7 限定。

・ Aeroテーマを無効にする必要あり。

・ ローカルでバッグにはGPU2個必要(?)

・ WPF(Windows Presentation Foundation)のハードウェアアクセラレーションをOFFにする必要あり


これ全部やって、まともにデバッグができるようになるのか!?

ただいま実験中です。



追記)

・・・・・

やっぱ、できませんでした。

もう1枚グラフィックカード差して、GPUを増やすしかないようです・・・

オーマイがぁーーーー!!!


デル株式会社
[PR]
by isoq | 2010-11-10 23:45 | 3Dグラフィックス
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

CUDAでちゃんと100倍超えた!

この間、CUDAでGPGPU の記事で、

  処理を CUDA で書き直しても10倍程度しか高速化されず・・・

と書きましたが、これは書籍に掲載されていたコードが シェアードメモリ を使用していない

ちょっと中途半端な物だったのが原因でした。

シェアードメモリを使用するように書き直してみると、しっかり100倍以上!の

速度で処理してくれるではありませんか!



もし、このコードで著者の方のPC(GeForce GTX 480)において、

100倍の高速化が成されていたなら、

GeForce GTX 480 ってドンだけ速いんだ!!!!! って事になりますが、

おそらく、掲載したコードと、実際に時間を計測したコードに違いがあるのでしょう。



ちなみに、それほどたいしたことがない私の環境(Core 2 Duo 2.4GHz)でも、

CPUプログラムの実行速度を著者の環境と比べて、3倍くらい速く動いていました。

どんだけ遅いCPUに速いGPUを乗せて、「ほら、こんなに差が出るでしょ??」

っとやっているのか・・・なんだか疑惑がわきました (^ ^;)



ちなみに、




最後に、AMDのRADEONってありますが、

GeForce GTX 480 が、480コア。   ¥46,799~
GeForce GTX 580 が、512コア。 =未発売=

それに対して、

Radeon HD 5870 が、1600コア!   ¥37,970~
Radeon HD 5970 が、3200コア!!!!!    ¥65,800~

AMD(旧ATI) Radeon 恐るべし!

速いとこ、CUDAを卒業して、OpenCLへポートしなきゃ・・・




  

[PR]
by isoq | 2010-11-02 22:23 | 3Dグラフィックス
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

SLIでCUDAとOpenGLを別GPUで処理は可能!

昨日の CUDAでGPGPU の記事の中で、

『GPGPU専用にGeForce GTX 460/470/480あたりを乗せて、

 ステレオ出力用に Quadro FX 380 あたりを乗せて、

 2枚構成にして動くだろうか???』

なんて書きましたが、どうやらできるようです!

NVIDIAのページに解説がありました。

こちらです。

どうやら、複数のGeForceグラフィックカード(別の型でも!)をGPGPUに使用して、

CUDAで使いまくれちゃうみたいです。

GPU同士のデータ転送は結構遅いと思うので、

なるべく依存しないデータを使った処理を振り分ければ、

かなりの超高速分散処理が見込めます。

これこそ本当に、『パソコン』 を 『スパコン』 に変えるスーパー計算機になりますね。

しかも、GeForce GTX 480 は、メモリ容量以外は、汎用GPGPU専用ボード Tesla の2000番台を

凌駕する性能なので、これはかなり使えそうです。


・・・・


といっても、簡単に試せる額ではないので、

もし必要に迫られて SLI 構成での使用経験のある方がいらっしゃいましたら、

ぜひぜひその凄さを教えて下さい!






[PR]
by isoq | 2010-11-02 01:01 | 3Dグラフィックス
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇