Interprozesskommunikation CUDA

Ich versuche die Interprozesskommunikation in CUDA zu verstehen. Ich möchte etwas Hilfe, um dieses Konzept zu verstehen und es auf ein Projekt anzuwenden, das ich gerade mache.

Ich habe ein Bilderfassungssystem, das N Eingangsbilder liefert. Jedes rohe Eingabebild wird zuerst verarbeitet und dann in einer einzelnen Variablen mit dem Namen "Ergebnis" gespeichert. Es gibt vier Funktionen, mit denen das Bild verarbeitet wird: "Aprocess", "Bprocess", "Cprocess" und "Dprocess". Jedes Mal, wenn ein neues Bild vom System erfasst wird, werden die vier oben genannten Funktionen aufgerufen, um die Verarbeitung durchzuführen. Das endgültige Bild 'Ergebnis' wird in Dprocess gespeichert.

Was ich gerne machen würde ist: Erstellen Sie einen neuen Prozess, 'process2', in dem ich jedes Mal, wenn dieses Bild abgerufen wird, ein (endgültiges) in 'Result' gespeichertes Bild übergeben und in einen Puffer mit dem Namen 'Images' legen kann. Ich würde das gerne für 10 Bilder machen. 'process2' sollte darauf warten, dass ein neues Image an ihn übergeben wird und nicht beendet werden, da der erste Prozess die vier Funktionen weiterhin aufrufen und ein endgültig verarbeitetes Image erhalten muss.

Was mir bisher begegnet ist: cudaIpcGetMemHandle, cudaIpcOpenMemHandle und cudaIpcCloseMemHandle

Frage: Wie verwende ich die obigen Funktionsnamen, um IPC zu erreichen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage