2016-10-28 40 views
9

Pracuję nad synchronizacją wątków GPU z wielordzeniowymi procesorami z OpenCL. Widziałem niektóre przykłady CUDA, jednak byłbym bardziej jasny w tej koncepcji, gdyby ktoś mógł dać mi wskazówki dotyczące synchronizacji części pod względem OpenCL. Z góry dziękuję za wszelką pomoc w tej sprawie.Synchronizacja wątków GPU Wielordzeniowe wątki procesora z OpenCL

+6

To nie jest twoje dokładne pytanie, ale oto dobry wpis dotyczący barier: http://stackoverflow.com/questions/6890302/barriers-in-opencl –

Odpowiedz

1

David Ehrmann ma rację. Chciałem tylko dodać kilka przypadków:

  • barier w CPU urządzeń jest bardzo powolny, spowalniając efekt jest jeszcze bardziej niż stosunek SpeedUp pomiędzy CPU i GPU (przynajmniej dla mid-tier amd stacjonarnego procesora i niski -end intel mobile cpu)
  • Jeśli żadne z workitów w grupie roboczej nie trafi w barierę, nie muszą jej nigdy uderzać. Przykładem może być wczesne zamknięcie jądra na poziomie grupy roboczej, w którym obraz jest przetwarzany (lub nie przetwarzany) w sposób szachowy, co powoduje, że naprzemienne grupy robocze przetwarzają lub nie przetwarzają (tak, to jest nieefektywne, ale bardziej złożone algorytmy zbierania grup roboczych mogą być łatwym w ten sposób, gdy niektóre parametry lub dane są nieznane w czasie kompilacji)
  • Funkcje atomowe nie są barierami. Po prostu uzyskują dostęp do zaktualizowanej (przez inne workitems, atomowo) komórki pamięci i aktualizują ją atomowo.
+0

Dziękuję bardzo za to wyjaśnienie. Ale czy przypadkiem nie znasz dobrych przykładów konwersji danych YUV do formatu obrazu. Jeśli chcesz, mogę utworzyć nowe pytanie na ten temat. – Harrisson

+1

@Harrisson powinieneś utworzyć nowe pytanie, ale będę z dala od klawiatury. Nie jest łatwo przekonwertować do/z YUV, był używany w afaik wyjścia kamery telefonu Android. –

+0

dziękuję za twój wkład w tej sprawie. Stworzę nowe pytanie. Prosiłbym o każdą pomoc, którą mógłbyś zaoferować w związku z konwersją, ponieważ stała się dla mnie bólem głowy. Jestem w stanie przekonwertować, ale tylko częściowe dane są konwertowane – Harrisson