OpenCL

別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。

リンク: OpenCLでノイズ除去作ってみたが・・・: ときどき日記4.0.

のプログラムをちょっと整理したのを公開しときます。(C#の分は省いてる)
前のやつはRGBを合計した値でソートしてたけど
輝度値でするように変更している。そのせいでちょっと、遅くなっている。

MedianTest.zip

ということで再測定。ついでにAtom Z3740(1.33GHz)、HD Graphicsと
Core i7 2620M(2.7GHz)でも測定してみた。

Core2 Quad Q9400 Atom Z3740 Core i7 2620M
OpenCL OpenMP OpenCL OpenMP OpenMP
001.jpg 0.3068 0.503 7.99577952 0.88127284 0.48360084
002.jpg 0.1804 0.3168 7.34302774 0.75004404 0.32448058
003.jpg 4.6952 0.5056 2.90403514 0.82185144 0.43056076
004.jpg 0.3222 0.5096 7.57648828 0.85317542 0.45864082
005.jpg 0.3282 0.519 7.55618022 0.85627354 0.46800082
006.jpg 0.3292 0.5238 7.6182202 0.86250938 0.46488082
007.jpg 0.3242 0.5176 7.46120562 0.85002122 0.45864082
008.jpg 0.329 0.5164 7.47796678 0.87192582 0.48360086
009.jpg 0.365 0.5202 7.5596978 0.84685846 0.47736084
010.jpg 2.2004 0.514 2.7020981 0.8594254 0.48360084

Atom遅い(^_^;)

おもしろいことに、Geforceでなぜか遅い003.jpg、010.jpgがHD Graphicsでは
速いという逆の結果になっている。





別のブログで公開してたものです。
一部をこっちのブログに移行しようと手動で(^^;)移行したものです。

OpenCLでノイズ除去(メディアン法)を作ってみたんだが
CPUより遅い結果に(^_^;)

とりあえず、こんな結果に

時間(秒)
OpenCL 12.693
C言語(OpenMP使用) 10.145
C# 11.682

約2350x3520のJPEG画像10枚分を読み込んで処理して保存するのにかかった時間。
ハードウェアはCPUがCore2 Quad Q9400 2.66GHz、GPUがGeforce GTS 250でちと古が・・・

ノイズ除去の処理をしているところを詳しく測ってみると

OpenCL C言語(OpenMP使用) C#
001.jpg 0.3854 0.4928 0.827
002.jpg 0.302 0.338 0.7846
003.jpg 3.5322 0.49 0.7492
004.jpg 0.3528 0.4908 0.6914
005.jpg 0.3762 0.5196 0.684
006.jpg 0.3808 0.521 0.6946
007.jpg 0.3528 0.5258 0.681
008.jpg 0.3734 0.5378 0.6848
009.jpg 0.3624 0.537 0.6928
010.jpg 1.6578 0.5728 0.681

003.jpgと010.jpgが極端に遅く、それ以外はC言語に勝っていることがわかる。
念のため003.jpg単独で何度か測ってみたが、だいたい3.5秒という結果になった。
つまり、データ依存してるってことだ。

メディアン法でデータの内容で時間が変わりそうなのが最後にソートしているところになる。
ソートしなければどうなるか測ってみた(メディアン法でもなんでもなくなるんだがw)

0.25
0.237
1.134
0.229
0.229
0.233
0.229
0.23
0.227
0.473

003.jpg,010.jpgが極端に速くなったが、
それでも他と比べると遅い。

ふむ、これだとよくわからないという結論に・・・

↑このページのトップヘ