Pomóc programistom w doborze odpowiedniego sprzętu
Projektowanie na poziomie systemu elektronicznego (ESL) to nowatorska metodologia tworzenia i weryfikacji półprzewodników, która może pomóc programistom w automatycznym projektowanie modułów sprzętowych z wysokiego poziomu reprezentacji danego zadania. Brak jest jednak narzędzi językowych potrzebnych do komunikacji między różnymi poziomami abstrakcji, co powoduje wydłużenie czasu prowadzania produktu na rynek. Naukowcy postanowili wykorzystać paradygmaty przetwarzania strumieni i równoległości danych, dzięki którym można postrzegać aplikację jako wiele pojedynczych jednostek obliczeniowych (jąder) bez jawnego zarządzania komunikacją między tymi jednostkami. W realizacji tego celu pomogły środki unijne w ramach projektu ESL_STR ("Automatic hardware generation using the stream programming paradigm"). Do studium przypadku wybrano zastosowanie do programowanej macierzy bramek logicznych (FPGA), półprzewodnika, który może być po wyprodukowaniu "programowany" przez użytkownika poprzez modyfikację obwodów w układzie scalonym w celu uzyskania żądanej funkcjonalności. Badacze zbudowali narzędzie CAD, aby uzyskać projekt koprocesora do FPGA. Narzędzie to wykorzystuje język OpenCL, standardowe środowisko umożliwiające pisanie programów do heterogenicznych architektur obliczeniowych (z więcej niż jednym procesorem), składających się z hosta (centralnego procesora) oraz urządzenia (karty graficznej). Wersja ESL_STR, nosząca nazwę OpenCL lub SOpenCL, mapuje równoległość (wiele procesorów) aplikacji na rekonfigurowalną macierz FPGA. Kompilator wysokiego poziomu (HLC) partycjonuje jądra aplikacji OpenCL w procesorze, karcie graficznej i samej macierzy FPGA. Kompilator niskiego poziomu (LLC) przetwarza jądra wybrane do pracy na platformach FPGA, generując równoważny projekt sprzętu, spełniający wymagania w zakresie wydajności. Narzędzie ESL_STR otwiera drogę do możliwości przenoszenia kodów między różnymi platformami wieloprocesorowymi, w tym architekturami stałymi, jak i rekonfigurowalnymi. Osiągnięcie te pomoże nowym technologiom takim jak FPGA zdobyć trwałą pozycję na rynku rozwiązań obliczeniowych o dużej wydajności.