こんばんはここで本当の問題があり、検索に数週間近くかかりましたが、結論なしで、作成したいくつかのアーキテクチャに費やされた時間を測定するために、 gem5
でコンパイルされたc ++コード(バイナリファイル)を実行しようとしていますPython を使用し、統計などを表示するために比較を行います。
これは、完了するまでに少し時間がかかるバイナリを使用しても問題ないように見えますが、バイナリがたとえば 2 秒かかる場合、シミュレーション時間は非常に長くなります
。この問題を解決するには、シミュレーション時間を可能な限り最適化する必要があり
ます。簡単だと思いますが、今まで理解できませんでした:\今
までに到達したことは次のとおりです。
-高速モードでgem5をビルドしましたが、シミュレーション時間に最適化モードとの違いはありませんでした
-ただし、最適化モードで高速転送を使用しました。私は今までそれを成し遂げることができませんでした
。
質問する
1080 次
2 に答える
2
いくつかの提案:
- プログラムが複雑なメモリ相互作用を伴わない場合は、クラシック メモリ モデルを使用できます。これは、Ruby モデルよりも高速です。
- 実際の計算が始まるポイントまでアプリケーションを早送りします。あなたはそれがあなたのために働かなかったと言いました。確認すべきことの 1 つは、Ruby メモリ モデルを使用している場合、高速転送がサポートされていないことです。クラシック メモリ モデルで動作します。http://www.m5sim.org/General_Memory_System
- Simpoints は、アプリの重要なセクションを特徴付けて、完全なアプリではなくそれらを実行できるようにするものです。もちろん、後で完全なアプリを実行したい場合もありますが、これにより、アーキテクチャ間で最初の順序で適切な比較を行うことができます。http://gem5.org/Simpoints を確認してください
于 2016-07-15T20:12:39.843 に答える
0
gem5 のとてつもなく長い実行時間を克服するために私が行ったいくつかのことを次に示します。
- ハードウェアをアップグレードします。数年前、ハード ドライブをソリッド ステート ドライブにアップグレードしたことがありました。以前は Android Gingerbread の起動に 3 時間かかっていましたが、アップグレード後は 1 時間かかりました。
- アトミック CPU を使用します。メモリ システムを調べる必要がない場合は、キャッシュなしのアトミック CPU モデルを使用してください。
- それを設定して忘れてください。サーバーにアクセスできる場合は、いくつかのジョブを実行し、コーヒーを飲み、昼寝をし、サッカーをし、別の作業をしてから、戻ってジョブを確認します
于 2016-12-08T20:40:42.203 に答える