Komunikacja międzyprocesowa CUDA

Próbuję zrozumieć komunikację międzyprocesową w CUDA. Chciałbym pomóc w zrozumieniu tej koncepcji i próbie zastosowania tego do projektu, który robię.

Mam system akwizycji obrazu, który zapewnia N liczby obrazów wejściowych. Każdy surowy obraz wejściowy jest najpierw przetwarzany, a następnie zapisywany w jednej zmiennej o nazwie „Wynik”. Istnieją cztery funkcje, które przetwarzają obraz: Aprocess, Bprocess, Cprocess i Dprocess. Za każdym razem, gdy system pobiera nowy obraz, cztery wymienione powyżej funkcje są wywoływane w celu wykonania przetwarzania. Ostateczny obraz „Wynik” jest przechowywany w Dprocess.

Chciałbym zrobić: Utwórz nowy proces, „process2”, w którym mogę oddać jeden (końcowy) obraz zapisany w „Result”, za każdym razem, gdy ten obraz zostanie uzyskany, i umieścić go w buforze o nazwie „Images”. Chciałbym to zrobić dla 10 zdjęć. 'process2' powinien poczekać, aż nowy obraz zostanie przekazany do niego i nie zakończyć, ponieważ pierwszy proces musi wywoływać cztery funkcje i uzyskać końcowy przetworzony obraz.

Co do tej pory spotkałem: cudaIpcGetMemHandle, cudaIpcOpenMemHandle i cudaIpcCloseMemHandle

Pytanie: Jak używać powyższych nazw funkcji do uzyskania IPC?

questionAnswers(1)

yourAnswerToTheQuestion