3

私は C++ シミュレーション フレームワークに取り組んでいます。現在のバージョンでは、2 つのボトルネックを特定しました。1 つ目は乱数の生成であり、2 つ目 (この質問の動機) は高度に反復的なプロセス (重いfor loops) の使用です。

ループの最適化に関する gcc 4.8 についてフィードバックをいただけないでしょうか。

私はこの主題に関するいくつかの利用可能な文献を読みましたが、この初期のバージョンから私が期待できることを (もっと簡単な言葉で) より明確にしていただけないでしょうか.

たとえば、 1 つの呼び出しは何ですかloop normalization... または、マルチコア アーキテクチャとは何の関係がありますか...

また、最適化オプションの背後にあるもの:

-ftree-loop-optimize ツリーでループの最適化を実行します。このフラグは、-O 以上でデフォルトで有効になります。

-ftree-loop-linear ツリーでループ交換変換を実行します。-floop-interchange と同じ。このコード変換を使用するには、GCC を --with-ppl および --with-clog で構成して、Graphite ループ変換インフラストラクチャを有効にする必要があります。

-floop-interchange ループに対してループ交換変換を実行します。ネストされた 2 つのループを入れ替えると、内側のループと外側のループが切り替わります。

そこにコードの最適化やコンパイラの専門家はいますか? どうもありがとう。

NB : 現在、Debian 4.7.2、gcc 4.7 で作業しています

4

0 に答える 0