W tym przykładzie projekt działa w dwóch instancjach klasy w dwóch oddzielnych wątkach. Każde wystąpienie wykorzystuje inne jądro: w pierwszej instancji wykonuje jądro z dodatkiem wektorowym do wykonania: C = A + B, gdzie A, B i C są wektorami elementu N. Druga instancja wykonuje jądro wielopoziomowe memberwise, aby wykonać: C = A * B (memberwise). Celeowe działanie jąder jest proste i nie zoptymalizowane.
Ponieważ nie można zaprogramować urządzenia do korzystania z dwóch oddzielnych programów jednocześnie, oba przypadki problemu mają ten sam program OpenCL™ (stąd działa w tym samym kontekście). Jednak, jak to ma miejsce w tym przykładzie, te dwa wątki mogą mieć osobne kolejki poleceń. Dla uproszczenia te dwa wątki są uruchamiane na dwóch instancjach tego samego kodu, z różnymi kodami kodowania, ale zazwyczaj mogą działać na dwóch oddzielnych klasach.
Oprócz demonstrowania podstawowego interfejsu programowania aplikacji OpenCL (API), ten przykład obsługuje partycjonowanie problemu na wielu urządzeniach OpenCL, jeśli jest dostępna. Jeśli dostępne są urządzenia M, problem jest podzielony tak, aby każde urządzenie działało na punktach N/M. Program hosta zakłada, że wszystkie urządzenia są tego samego typu (to jest ten sam binarny można użyć, ale kod można uogólnić, aby łatwo obsługiwać różne typy urządzeń).
Pobrań
Przykład projektu zawiera kod źródłowy urządzenia OpenCL (.cl) oraz aplikacji hosta. W celu kompilacji aplikacji hosta pakiet Linux* zawiera plik Makefile, a pakiet Windows* zawiera projekt Microsoft* Visual Studio 2010.
Następujące pliki do pobrania są podane dla tego przykładu:
Użytkowanie tego projektu podlega i podlega warunkom umowy licencyjnej na projekt referencyjny sprzętu.
Wymagania dotyczące oprogramowania i sprzętu
Ten przykład projektu wymaga następujących narzędzi:
- Oprogramowanie Intel® FPGA wersji 17.1 lub nowszej
- Intel FPGA SDK dla OpenCL™ wersji 17.1 lub nowszej
- W systemie Linux: GNU Make i gcc
- W systemie Windows: Microsoft Visual Studio 2010
Aby pobrać narzędzia do projektowania produktów Intel®, odwiedź stronę pobierania OpenCL. Wymagania dotyczące odpowiedniego systemu operacyjnego są takie same jak wymagania zestawu SDK Intel FPGA dla OpenCL.
OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc. użytymi za zgodą Khronos.
* Produkt jest oparty na opublikowanej specyfikacji Khronos i przeszedł proces testowania zgodności Khronos. Aktualny status zgodności można znaleźć na stronie www.khronos.org/conformance.