CUDA のプロセス間通信を理解しようとしています。この概念を理解し、これを私が行っているプロジェクトに適用できるようにするための助けが欲しい.
N 個の入力画像を提供する画像取得システムがあります。各生の入力画像は最初に処理され、次に 'Result' と呼ばれる単一の変数に格納されます。画像の処理を行う関数には、Aprocess、Bprocess、Cprocess、Dprocess の 4 つがあります。新しい画像がシステムによって取得されるたびに、処理を行うために上記の 4 つの関数が呼び出されます。最終的な画像「結果」は Dprocess に保存されます。
私がやりたいことは次のとおりです。 新しいプロセス「process2」を作成します。ここで、「結果」に保存されている1つの(最終的な)画像を、その画像が取得されるたびに渡すことができ、「画像」というバッファに入れます。 . これを10枚の画像で行いたいと思います。最初のプロセスは 4 つの関数を呼び出し続け、最終的に処理された画像を取得する必要があるため、'process2' は新しい画像が渡されるのを待ち、終了しないようにする必要があります。
これまでに遭遇したこと: cudaIpcGetMemHandle、cudaIpcOpenMemHandle、cudaIpcCloseMemHandle
質問:上記の関数名を使用して IPC を達成するにはどうすればよいですか?