- 41 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 02:05:08 ]
- 今、MMXを使って半透明合成を行う関数を書いています。
元画像1と元画像2を半透明合成して描画先に転送するという単純な仕様なのですが、 メモリアクセスがネックとなり、目標とする速度に達しませんでした。 そこで色々と実験してみたところ、うちのK6-2で、 元画像1 + 元画像2 → 描画先 と処理するより、 元画像2 → 描画先 元画像1 + 描画先 → 描画先 としたほうが速くなることが分かりました。 単純に考えると、後者のほうがメモリアクセスも命令数も多く、遅くなるはずなので、 キャッシュが実行速度に大きく影響しているのだと思われます。 とは言うものの、私はアセンブリにはあまり詳しくなく、 どうすればキャッシュを効率よく利用できるのか分かりません。 特に、持っていないが動作環境に載っている底辺CPUでは実験もできず、 どんな方法でうまくキャッシュされるのか見当もつきません。 そこで質問なのですが、下記のソース sakuratan.ddo.jp/uploader/source/date36979.txt のAB_START1におけるメモリアクセスを改善して、高速化することは可能でしょうか。 うまくキャッシュに乗れば、当然前者のほうが速いと思うのですが……。
|

|