0

私はアセンブリでいくつかのネオンコードを書き、最大限の最適化を目指していました。数字は満足のいくように見えますが、私はそれをさらに最適化する可能性を理解することに興味がありました。それから私は各命令のサイクルを数えるのを助けるオンラインツールに出くわしました。

これが私のコードへのリンクです:http://pulsar.webshaker.net/ccc/sample-115d4c29

それは私の懸念の領域を明確に示しましたが、それらのステートメントにオーバーヘッドが含まれている理由を明確に理解することはできませんでした。

コードセグメントは、参照しやすいように「コメント」領域で7つのセクションに分割されています。

前もって感謝します。:)

4

1 に答える 1

4

このリンクを試すことができます

http://pulsar.webshaker.net/ccc/beta-sample-115d4c29

これは、サイクルカウンターのベータバージョン0.9を使用します。主な違いは、NEONシミュレーターが2つの異なるパイプラインを使用しなくなったことです。1サイクルで2つのNEON命令を実行できないCortexA9が原因です。

サイクルカウンターの一部を更新し始めました。

結果は次のとおりです。

-サイクル情報は、CortexA9の方が正確です。

-NEONレイテンシ情報のほとんどは、ペアになっていない命令によるものであるため、結果が読みやすくなります。

オレンジ色は、パイプラインの待機による遅延を意味します

赤い色は、レジスタの競合によるレイテンシを意味します。

レジスタの近くで指定された数は、緩んだサイクルの数ではありません。これは、この命令の前に配置できる命令の最大数です。

お役に立てば幸いです。

于 2011-12-19T08:48:34.390 に答える