1

C++ プログラミングに関する質問はほとんどありません。非同期の方法でメモリに書き込むことができるかどうかを知りたいです (シーケンシャル コード)。しかし、私の質問について明確にさせてください。アルゴリズムの改善を探していますが、コードのボトルネックがメモリへの書き込みにあるようです。メモリに書き込み、計算を続けたいと思います。1 つのプロセッサでそれを行うことは可能ですか? ALU を使用し、同時に書き込みブロックを使用するのが好きですか? 知っておいて、私は次の計算で結果を使用していません。ベクトル結果に書かれています。

時間を割いて返信していただきありがとうございます。

4

3 に答える 3

0

メモリ書き込みを最適化できます。

  1. 書き込むデータを圧縮してメモリ帯域幅を節約します。
  2. ローカルに書き込み - プロセッサの書き込みバッファをより効率的に使用するために、1 つの連続したメモリ チャンクに書き込みます。
  3. 偽の共有を防ぐために、1 つのスレッドから書き込みます。
  4. __builtin_prefetchがここで役立つかもしれませんが、確かなことはわかりません。
于 2013-11-22T10:08:22.673 に答える
0

これは C++ などの問題ではなく、単に CPU サポートの問題です。基盤となるハードウェアがサポートできない場合、C++ はそのような機能を提供できません。

x86命令にはそのような機能はありませんが、新しいPPCバージョンにはあります。ハードウェア ルートをたどりたい場合は、まず現在使用しているハードウェアを確認する必要があります。x86 CPU が異なれば、メモリの待機時間も大きく異なります。

于 2013-11-21T15:27:04.460 に答える