Co to jest OpenCL?
Standard programowania równoległego OpenCL został opracowany przez konsorcjum branżowe Khronos Group w celu sprostania wyzwaniom związanym z programowaniem wielordzeniowych i heterogenicznych platform obliczeniowych. Specyfikacja OpenCL definiuje pojedynczy model programowania i zestaw abstrakcji na poziomie systemu, które są obsługiwane przez wszystkie platformy sprzętowe zgodne ze standardem. Oznacza to, że inżynier oprogramowania może nauczyć się jednego modelu programowania i używać go bezpośrednio na urządzeniach od wielu producentów.
OpenCL dostarcza język programowania i API runtime, aby wspierać rozwój oprogramowania close-to-the-metal, które jest zarówno wydajne, jak i przenośne. Dodatkowo OpenCL zapewnia niskopoziomowe abstrakcje sprzętowe, które pozwalają implementacjom OpenCL na ujawnienie wielu szczegółów leżących u podstaw sprzętu. Te niskopoziomowe abstrakcje to modele platformy, pamięci i wykonania opisane w specyfikacji OpenCL. Zrozumienie, jak te koncepcje przekładają się na fizyczne implementacje na FPGA, jest niezbędne do optymalizacji aplikacji.
Ten rozdział zawiera przegląd modelu platformy OpenCL i jego rozszerzeń na urządzenia FPGA. Wyjaśnia mapowanie platformy OpenCL i modelu pamięci na implementację generowaną przez SDAccel. Rozdział ten wspomina również, jak współczesne FPGA mogą być wykorzystane do osiągnięcia wysokiego poziomu wydajności przy użyciu narzędzia Xilinx® SDAccel.
.