« 小さく区切ってコピー | メイン | SIMD クラスライブラリ »

2007年08月19日

グラフィックライブラリ:: マルチスレッドにしてコピー

    

小さく区切ってコピーの SSE2 版を上半分と下半分に分けて2スレッドにしてみた。
結果は 50 msec。
倍とは行かないまでも 89 msec が 50 msec なので 約 1.8倍。
速いなぁ。
まとめると以下のような感じ。

実行環境はAthlon 64 X2 3800+, DDR400のデュアルチャンネル。
コピー元、コピー先画像のアルファ値は無視、指定したアルファ値でブレンド処理。
これを 800 * 600 32bit の画像に対して 50回実行。

50 msec - 100% ( 2スレッド, 領域分割, SSE2 )
89 msec - 178% ( 領域分割, SSE2 )
127 msec - 254% ( SSE2 )
210 msec - 420% ( 非SIMD )

マルチスレッドや分割、SSE2 を考えずに書いた場合よりも4倍以上速い。
これらの処理を組み込むのを検討するのには十分すぎるぐらいの効果だな。
これが実際の用途でどの程度速くなのかはわからないが、やってみる価値はありそうだ。



投稿者 Takenori : 2007年08月19日 15:07




comments powered by Disqus
Total : Today : Yesterday : なかのひと