差分

ナビゲーションに移動 検索に移動

フェンス

968 バイト追加, 2024年3月10日 (日)
編集の要約なし
'''フェンス'''([[英語]]:fence)とは、[[コマンドキュー]]([[スレッドプール]])に対してコマンド(タスク)と共に投入すると、そのコマンドの処理終了時に[[シグナル状態]]なる(完了フラグが立つ)[[変数]]のことである。のことです。
フェンスを監視することでコマンドの終了を待ち受けることができる。フェンスを監視することでコマンドの終了を待ち受けることができます。   大雑把にいうと[[CPU]]での[[マルチスレッド]]や[[GPU]]での並列処理などで複数のタスクの終了を待つ(同期する)ための目印です。 たとえば[[ゲーム]]で1フレームごとに[[マルチスレッド]]を止めたい場合があるとします。フェンスがない時代はGPU自体がアイドル状態(タスク全停止)になるのを待っていました。<source lang="csharp"> gpu.addTask(renderTask); gpu.addTask(computeTask); gpu.waitForIdle();</source> 一方でフェンスを使うと「グラフィックスシェーダーはfenceで1フレームごとに止めるけどコンピュートシェーダーは止めないでぶん回す」といったことができます。<source lang="csharp"> var fence = gpu.createFence(); gpu.addTask(renderTask, fence); gpu.addTask(computeTask, null); gpu.waitForFence(fence); // renderTaskが終わるのを待つ</source> [[category: GPU]]

案内メニュー