2

質問があります(私のように)...

しかし... CまたはC ++またはあなたが望むコードで書かれた選択されたアルゴリズムがある場合...コンパイラを修正しました 命令の数を決定できますが、これらの命令は互いに異なります:x ADD、y MUL、z MOV 、f FADD、t FMUL(FはFLOATINGの略)...異なるアルゴリズムを比較するために「同等の命令」の数に命令の数を書き込むことを許可する方法論または方程式または何か他のものはありますか?このタイプのメトリックを使用する人はいますか? それはゴミですか?

ありがとう

マルコ

パート 2: 私はそれが uP とアーキテクチャ全般に依存していることを知っています。私の問題は、ソフトコアのさまざまなアーキテクチャに実装されているさまざまなアルゴリズムの実行時間を決定することです。y 軸には時間を書き、x 軸には命令の数とグラフのポイントをアーキテクチャの種類によってパラメータ化します (私の英語ですみません)。しかし、x-axixでは、「同等の命令」の数のようなものを使用する方が良いと思います...

それはゴミのアイデアですか?

4

3 に答える 3

4

あなたは問題をよく理解していません。実行速度は、命令だけでなく、命令間の依存関係にも依存します。マイクロプロセッサは、複数の命令が相互に依存していない場合、同時に複数の命令を実行できます。一度に複数の命令を実行できるかどうかは、プロセッサ ファミリによって異なります。そのため、このタスクは実際にはハードウェア固有のものであり、一度だけ解決することはできません。

できることは、命令とプロセッサ サイクルの実行タイムラインをグラフ化することだけです。プロセッサ サイクルは y 軸で、命令は x 軸です。キャッシュのヒットとミスを予測するのに問題があり、多くの命令の実行時間はキャッシュのヒット/ミスによって大きく異なります。プロセッサーのマニュアルに多くの時間を費やす準備をしてください。

于 2009-02-26T10:31:52.937 に答える
2

パイプラインやその他のあらゆる種類の複雑さを考慮する必要があり、その多くはプロセッサによって異なります。つまり、実現可能であっても特に役立つとは思えません。

キャッシュミスの数など、アルゴリズムが教えてくれないものもあります。これらは生の命令数よりもはるかに重要です。

于 2009-02-26T10:29:58.933 に答える
0

それはゴミではありません、それはただ漠然としています。アルゴリズムからソース コード、オブジェクト コード、コアに至るまで、非常に多くの詳細を特定する必要があり、それぞれがパフォーマンスに大きな影響を与える可能性があります。

Hennessey & Patterson の「Computer Architecture, A Quantitative Approach」をご覧ください。

于 2009-02-26T10:52:29.987 に答える