2009-09-14 12 views
5

Poszukuję przykładów wstępnych do OpenCL, które ilustrują typy aplikacji, które mogą doświadczać dużych (np. 50x-1000x) wzrostów prędkości. Cuda ma wiele ładnych przykładów, ale nie znalazłem tego samego dla OpenCL.Przykłady OpenCL z testami porównawczymi

Dobrym przykładem może być globalną optymalizację złożonych funkcji przez roje wiórowych, symulowane wyżarzanie, algorytmy ewolucyjne, optymalizacji kolonii mrówek itp

Odpowiedz

4

Algorytmy opisujesz nie są ani proste, ani wprowadzające z perspektywy programowania GPU . Powodem, dla którego CUDA ma przykłady w tych obszarach, jest to, że było wystarczająco długo, aby ludzie mogli rozwinąć te przykłady. Obecnie nie ma publicznie dostępnej wersji OpenCL, która działa na procesorach graficznych. Zarówno ATI, jak i NVIDIA oferują wersje beta swoich sterowników OpenCL, ale ATI obsługuje tylko procesory, a NVIDIA wymaga podpisania NDA. Mówiąc krótko, OpenCL nie był wystarczająco długi, aby opracować i wykazać kompleksowe przykłady, takie jak te.

To powiedziawszy, uzyskanie dostępu do sterowników OpenCL firmy NVIDIA nie jest trudne. Możesz dowiedzieć się, jak to zrobić na swoich forach here. Zakładam, że dystrybucja OpenCL zawiera kilka przykładowych programów, które pomogą Ci zacząć.

Oznacza to również, że jest to doskonała okazja do opracowania niektórych z tych testów i opublikowania wyników. Wtedy ludzie będą odwoływać się do swojej pracy, a nie do swojej pracy. Nie spodziewałbym się jednak zbyt wielu niespodzianek. Wydajność OpenCL powinna być mniej więcej zgodna z wydajnością CUDA, gdy stanie się powszechnie dostępna i obsługiwana.

+3

"Obecnie nie ma publicznie dostępnej wersji OpenCL, która działa na procesorach graficznych." Nie jestem pewien, czy tak było, gdy odpowiedziałeś we wrześniu, ale teraz zdecydowanie nie jest tak. Zarówno AMD (ATI) i Nvidia mają implementacje OpenCL, które działają świetnie. – dwf

0

można spróbować następujące dwie książki:

Programowanie procesorów masowo równoległych ... praktyczne podejście (NVIDIA) (rozdział 1 i 2)

OpenCL Programowanie równoległe Book ... Programowanie dla wielordzeniowych CPU i GPU (elementy historyczne

Obaj szczegółowo opisują, dlaczego dokonano rozwoju i gdzie można znaleźć prawdziwe bonusy.

Nie jestem pewien co do benchmarkingu, sam też nie miałem szczęścia.