memory-barriers

    1

    1答えて

    OpenGLレッドブックバージョン8(GL 4.3)の例11.19 whileループにimageLoad()を配置し、前のプリミティブの少なくとも1つのフラグメントがこの値を更新するまでポーリングを維持します。この本は と言っています。例11.19は、メモリバリアの非常に単純な使用例を示しています。それは、フラグメント間のある程度の順序付けが保証されることを可能にする。 functionUsing

    6

    1答えて

    だから私は簡単なcow_ptrを持っています。これは、それが非const Tを保持していることを保証し、それがuniqueあることを保証 template<class T, class Base=std::shared_ptr<T const>> struct cow_ptr:private Base{ using Base::operator*; using Base::o

    1

    2答えて

    Joe AlbahariさんがC#でvolatileを説明している非常に良い記事があります:Threading in C#: PART 4: ADVANCED THREADING public class IfYouThinkYouUnderstandVolatile { private volatile int x, y; private void Test1() //

    6

    1答えて

    this質問の答えによると、x86上のLOCK CMPXCHGは実際に完全な障壁を引き起こすようです。おそらく、これはフードの下に同様にUnsafe.compareAndSwapInt()が生成するものです。なぜ私はそれが当てはまるのか苦労しています.MESIプロトコルでは、キャッシュラインを更新した後、CASはCASを実行したコアのすべてのストア/ロードバッファを排水するのではなく、単に他のコア

    2

    1答えて

    は、このコード(Simple-Web-Serverから抽出されたが、ライブラリーの知識は、この質問に答えるために必要はありません)考えてみましょう: HttpServer server; thread server_thread; server.config.port = 8080; server.default_resource["GET"] = [](shared_ptr<HttpSe

    1

    2答えて

    これは非常に基本的な場合は申し訳ありません。これは私がやっていることの単純化されたバージョンです。私はカーネルモジュールを書いています。実行中は2つの異なる物理CPUの2つのスレッドがあります。これらのスレッド間の通信を行うためにグローバル変数を使用しています。奇妙なことは、あるスレッドの書き込みがもう一方のスレッドだけで見られないことがあることです。理由は何でしょうか? 私はそれがメモリ障壁とお

    0

    1答えて

    計算シェーダを使用して流体シミュレーションの一部としてSSBOの同じ要素を読み書きできることを期待していますが、同期に問題があります。私は16回実行されるテストシェイダーを持っています。下の3つのオプションは、私がやろうとしていることをうまく示しています。 layout (std430, binding=8) coherent buffer Debug { int debug[ ];

    1

    1答えて

    C++のメモリ障壁の仕組みを理解したいと思います。例えば 、私はそのような場合にはstd ::アトミック使用しています: #include <iostream> #include <atomic> int main() { std::atomic<int> a; int n = load();//returns 1 or other value written by o

    0

    1答えて

    私はopenCL Cプログラミングを開始しました。ワークグループのすべての作業項目は、ローカルメモリの固有の場所を更新します。その後、作業項目のプライベート変数は、2つの他の作業項目によって更新されたローカルデータに基づいて更新されます。このような何か:それは内部的にフェンシングをするよう __kernel MyKernel(__global int *in_ptr) {

    2

    1答えて

    私は何がメモリバリアであるかを正確に理解しようとしています。 これまで知っていたことに基づいて、メモリーバリアー(例:mfence)を使用して、メモリーバリアーの前から後、および後ろまでの命令の並べ替えを防止します。 これは、使用中のメモリバリアの例である: instruction 1 instruction 2 instruction 3 mfence instruction 4 in