OpenCL™ - BSP - Centrum Wsparcia
Intel® FPGA SDK for OpenCL™ umożliwia programistom przyspieszenie ich aplikacji poprzez ukierunkowanie heterogenicznych platform za pomocą procesorów Intel i układów FPGA. Intel® FPGA SDK for OpenCL™ można zainstalować jako część oprogramowania Intel® Quartus® Prime lub jako osobny pakiet. Możesz pobrać Intel FPGA SDK dla OpenCL, łącząc się z poniższym linkiem.
Witamy na stronie wsparcia OpenCL™ BSP! Tutaj znajdziesz informacje o tym, jak zaplanować, zaprojektować i wdrożyć OpenCL™ BSP, a także poznasz kilka wskazówek i wskazówek dotyczących debugowania.
Ta strona jest skonfigurowana tak, aby przeprowadzić Cię od początku do końca procesu tworzenia opencl™ Board Support Package (BSP) (lub projektowania/migracji jądra/algorytmów OpenCL). W sekcji Modyfikowanie projektu referencyjnego znajdziesz zasoby dotyczące modyfikowania platformy referencyjnej Intel® na własną platformę niestandardową, a także sposobu kompilowania płaskich projektów bez awarii czasu. Sekcja Planowanie i zamykanie pomieszczeń zawiera wskazówki dotyczące podziału projektu i osiągnięcia maksymalnej częstotliwości roboczej. Opisuje również techniki zamykania czasu w projekcie i gwarantowanego zamknięcia czasu podczas budowania BSP. Sekcja MmD i OpenCL Utilities zawiera kroki przebudowy MMD i zawiera szczegółowe informacje na temat narzędzi OpenCL. Sekcja Debugowanie zawiera kilka narzędzi i zasobów do debugowania problemów, które możesz napotkać. Istnieją dokumenty i kursy szkoleniowe wymienione we wszystkich sekcjach, które są pomocne podczas procesu rozwoju BSP.
1. Modyfikowanie projektu odniesienia
Wprowadzenie
Aby rozpocząć programowanie BSP, wykonaj następujące czynności:
- Upewnij się, że jest zainstalowany zestaw Intel® FPGA SDK dla OpenCL™ i Intel® Quartus®.
- Sprawdź, czy dostępna jest wersja narzędzia zgodna z listą BSP odwołania OpenCL™.
- Potwierdź dostęp do pełnej licencji na oprogramowanie Intel® Quartus®.
Wybierz projekt referencyjny
Wybierz projekt referencyjny, który pasuje do Twojej platformy niestandardowej
Firma Intel obsługuje referencyjne projekty BSP OpenCL™ dla następujących platform. Możesz także wyświetlić przewodnik po przenoszeniu OpenCL™ BSP dla określonej platformy:
- Stratix® V PCIe* Development Kit - Wyświetl zestaw Intel® FPGA SDK dla OpenCL™ Stratix® V Network Reference Platform Porting Guide ›
- Intel® Arria® 10 PCIe Development Kit - Wyświetl Intel® FPGA SDK dla OpenCL™ Intel® Arria® 10 GX FPGA Development Kit Reference Platform Porting Guide ›
- Intel® Arria® 10 SoC Development Kit - Wyświetl Intel® FPGA SDK dla OpenCL™ Intel® Arria® 10 SoC Development Kit Reference Platform Porting Guide ›
- Intel® Stratix® 10 PCIe* Development Kit — wyświetl zestaw Intel® FPGA SDK dla platformy referencyjnej Platformy referencyjnej OpenCL™ Intel® Stratix® 10 GX FPGA ›
Modyfikowanie projektu referencyjnego
Rozpocznij modyfikowanie projektu odniesienia do platformy, wykonując kroki opisane w przewodnikach przenoszenia OpenCL BSP. Zaleca się, aby po zakończeniu zmian w projekcie spróbować skompilować pierwsze jądro. Ogólnie rzecz biorąc, używamy jądra o nazwie Boardtest, które testuje różne interfejsy BSP. Informacje na temat Boardtest i ogólnych etapów budowania BSP są wymienione w następującym przewodniku:
Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit Podręcznik użytkownika (PDF) ›
Zalecane kroki, aby zbudować BSP:
- Skompiluj Boardtest w "płaskim" przepływie, aby wygenerować zamknięty plik ".aocx"
- Sprawdź poprawność ".aocx", uruchamiając Boardtest i sprawdzając oczekiwania przepustowości interfejsu z testu
- Rozpocznij pracę nad planowaniem pięter dla kompilacji "bazowej", aby stworzyć gwarantowany zamknięty czas OpenCL BSP
2. Planowanie pięter i zamknięcie czasowe
Wprowadzenie
W OpenCL musimy pracować nad czasem dwóch różnych wersji projektu - płaskiej i podstawowej. Wersja płaska to ta, która nie ma żadnych partycji ani regionów blokady logicznej i używa pliku hardware/flat.qsf do jej implementacji. Podczas gdy podstawowa wersja to ta, która zawiera partycjonowanie i blokady logiczne i używa pliku hardware/base.qsf do jego implementacji. Zalecamy, aby najpierw uzyskać czystą wersję płaskiego czasu jako dobry początek, a następnie pracować nad planowaniem podłogi, aby uzyskać czystą wersję bazową projektu.
Aby uzyskać więcej informacji na temat przepływu kompilacji, zapoznaj się z sekcją OpenCL™ BSP Compilation Flow w zestawie Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.
Podział na rozkład pomieszczeń
Zacznij od płaskiej kompilacji, aby zrozumieć, gdzie wszystkie główne komponenty BSP są umieszczane naturalnie (zwłaszcza bloki własności intelektualnej (IP) z połączeniami I / O, takimi jak PCIe * lub pamięć DDR).
Więcej wskazówek na ten temat można znaleźć w sekcji Wytyczne dotyczące planowania pięter OpenCL™ BSP w zestawie Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.
Szczegółowe informacje można również znaleźć w Podręczniku użytkownika częściowej rekonfiguracji.
Modyfikowanie regionu PR
Podczas kompilacji podstawowej zacznij od regionu logic lock na jądrze zawierającym freeze_wrapper_inst|kernel_system_inst. Użyj płaskiego kompilu i planera chipów, aby zidentyfikować rozmiar i lokalizację sprzętu BSP. Spróbuj zarezerwować więcej zasobów dla kernel_system przy użyciu obszaru blokady logicznej.
Więcej wskazówek na ten temat można znaleźć w sekcji Wytyczne dotyczące planowania pięter OpenCL™ BSP w zestawie Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.
Naprawianie naruszeń czasu
Aby naprawić naruszenia czasu w projekcie, może być konieczne dodanie etapów potoku między rdzeniami IP.
Aby uzyskać więcej wskazówek, skorzystaj z następujących linków:
Ograniczenia konfiguracji/wstrzymania
.failing_paths.rpt i .failing_clocks.rpt w katalogu wyjściowym wyświetlają listę głównych błędów w projekcie. Jeśli w niektórych ścieżkach występuje stały błąd, można ustawić minimalne lub maksymalne ograniczenie opóźnienia dla tej ścieżki krytycznej w pliku /hardware/top.sdc.
W przypadku powiązanych problemów można zapoznać się z następującą metodą obejścia na stronie Baza danych wiedzy —Jak zamknąć czas w przypadku naruszeń wstrzymania i konfiguracji konkurencji w programie Arria 10?
3. MMD i OpenCL™ Utilities
Rozwój lub modyfikacja źródła MMD
Biblioteka oprogramowania MMD implementuje podstawowe wejścia/wyjścia (I/O) między hostem a płytą akceleracji i zapewnia interfejsy, takie jak otwieranie, odczyt i zapis. Sterownik biblioteki MMD jest przechowywany w formacie Windows* 64 lub Linux* 64, a kod źródłowy jest przechowywany w folderze źródłowym.
Więcej informacji można znaleźć w sekcji Tworzenie biblioteki MMD w podręczniku użytkownika zestawu Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
Obsługa narzędzi
Narzędzia OpenCL™ umożliwiają dostęp do płyty przy użyciu zestawu Intel® FPGA SDK dla OpenCL™. Obejmuje to instalację aocl, odinstalowanie aocl, diagnozę aocl, program aocl i flash aocl.
Więcej informacji można znaleźć w sekcji Dostarczanie zestawu Intel® FPGA SDK for OpenCL™ Utilities Support w Podręczniku użytkownika Zestawu Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
Po utworzeniu narzędzi programowych i warstwy MMD należy przetestować projekt sprzętu. Standardowym sposobem jest wygenerowanie jądra boardtest i uruchomienie na płycie.
Aby uzyskać więcej informacji, zapoznaj się z sekcją Testowanie projektu sprzętu w podręczniku użytkownika zestawu Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
4. Debugowanie
Wychowawnie na tablicę
Ta sekcja ułatwia rozwiązywanie problemów podczas przywoływania zestawów programistycznych Intel® FPGA lub własnych niestandardowych płyt.
Aby dowiedzieć się o niektórych znanych problemach, które mogą napotkać podczas przywoływania płyt, zapoznaj się z następującymi sekcjami w AN 807: Konfigurowanie zestawu Intel® Arria® 10 GX FPGA Development Kit dla zestawu Intel® FPGA SDK dla OpenCL™ uwaga aplikacyjna:
Plan piętra i harmonogram
Aby uzyskać porady i wskazówki dotyczące używania minimalnego obszaru dla logiki statycznej i pozostawiania więcej miejsca na jądro OpenCL™, możesz zapoznać się z AN 824: Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.
Debugowanie środowiska wykonawczego
Istnieją pewne zmienne środowiskowe, które można ustawić, aby uzyskać więcej informacji o debugowaniu podczas uruchamiania aplikacji hosta. Są to Intel® FPGA SDK dla OpenCL™ określone zmienne środowiskowe, które mogą pomóc w diagnozowaniu problemów z niestandardowymi projektami platform.
W poniższej tabeli wymieniono wszystkie te zmienne środowiskowe oraz opisano je szczegółowo.
Zmienna środowiskowa |
Opis |
ACL_HAL_DEBUG |
Ustaw tę zmienną na wartość od 1 do 5, aby zwiększyć wydajność debugowania z warstwy ABSTRAKCJI sprzętu (HAL), która łączy się bezpośrednio z warstwą MMD. |
ACL_PCIE_DEBUG |
Ustaw tę zmienną na wartość od 1 do 10000, aby zwiększyć wydajność debugowania z MMD. To ustawienie zmiennej jest przydatne do potwierdzenia, że rejestr identyfikatora wersji został poprawnie odczytany, a rdzenie IP UniPHY są kalibrowane. |
ACL_PCIE_JTAG_CABLE |
Ustaw tę zmienną, aby zastąpić domyślny argument quartus_pgm, który określa numer. Wartość domyślna to 1. Jeśli istnieje wiele intel® FPGA, można określić konkretny, ustawiając tę zmienną. |
ACL_PCIE_JTAG_DEVICE_INDEX |
Ustaw tę zmienną, aby zastąpić domyślny argument quartus_pgm, który określa indeks urządzeń FPGA. Domyślnie ta zmienna ma wartość 1. Jeśli układ FPGA nie jest pierwszym urządzeniem w łańcuchu JTAG, można dostosować wartość. |
ACL_PCIE_USE_JTAG_PROGRAMMING |
Ustaw tę zmienną, aby wymusić przeprogramowanie układu FPGA przez MMD przy użyciu JTAG zamiast częściowej rekonfiguracji. |
ACL_PCIE_DMA_USE_MSI |
Ustaw tę zmienną, jeśli chcesz używać MSI do transferów bezpośredniego dostępu do pamięci (DMA) w systemie Windows*. |
Debugowanie signal tap
Ponieważ projekty OpenCL™ nie obsługują funkcji symulacji, użycie analizatora logicznego Signal Tap jest najlepszym sposobem debugowania tych projektów.
Aby debugować dowolny projekt, w którym występuje zawieszenie jądra lub problem związany z interfejsem pamięci lub awarią diagnozy aocl, zaleca się użycie analizatora logicznego Signal Tap.
Aby dowiedzieć się więcej o analizatorze logicy signal tap, zapoznaj się z sekcją Debugowanie projektu za pomocą analizatora logiki dotknięcia sygnału w Podręczniku użytkownika narzędzi debugowania.
Wykonaj następujące czynności, aby dodać plik Signal Tap do projektu BSP
1. Otwórz GUI Signal Tap i dodaj wszystkie sygnały do analizy.
2. Zapisz plik STP w tym samym katalogu, co plik projektu oprogramowania Intel® Quartus®.
3. Dodaj następujące wiersze poleceń do pliku flat.qsf:
- set_global_assignment -nazwa ENABLE_SIGNALTAP WŁĄCZONA
- set_global_assignment -nazwa USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -nazwa SIGNALTAP_FILE <file_name>.stp
4. Przekompiluj jądro z wiersza poleceń AOCL.
Rozwiązanie bazy danych wiedzy
Intel® Arria® 10 Urządzenia
Intel® Stratix® 10 Urządzenia
Znane problemy
Dodatkowe zasoby
Sekcja Projektowanie debugowania przy użyciu źródeł i sond w systemie w Podręczniku użytkownika narzędzi debugowania
AN 799: Szybkie debugowanie Intel® Arria® 10 przy użyciu sondy sygnałowej i szybkiej rekompilu ›
5. Zalecane czytanie i trening
OpenCL™ Kursy szkoleniowe
- Wprowadzenie do obliczeń równoległych z OpenCL™ na układach INTEL® FPGA ›
- Wprowadzenie do OpenCL™ dla układów Intel® FPGA ›
- Uruchamianie OpenCL™ na układach INTEL® FPGA ›
- Tworzenie niestandardowych platform dla Intel® FPGA SDK dla OpenCL™: Zawartość pakietu BSP (Board Support Package) ›
- Opracowanie niestandardowego pakietu wsparcia OpenCL™ Board Support Package (BSP) ›
- Kursy szkoleniowe OpenCL™ Board Support Package (BSP) ›
- Inne kursy szkoleniowe OpenCL™ ›
OpenCL™ Filmy
Tytuł |
Opis |
---|---|
W tym filmie opisano procedurę uruchamiania dwóch aplikacji, OpenCL™ HelloWorld i OpenCL™ szybkiej transformacji Fouriera (FFT) na SoC Cyclone® V przy użyciu komputera z systemem Windows*. |
|
W tym filmie opisano procedurę uruchamiania dwóch aplikacji, OpenCL™ HelloWorld i OpenCL™ FFT na SoC Cyclone® V przy użyciu komputera z systemem Windows*. |
|
W tym filmie opisano procedurę uruchamiania dwóch aplikacji, OpenCL™ HelloWorld i OpenCL™ FFT na SoC Cyclone® V przy użyciu komputera z systemem Windows*. |
|
W tym filmie opisano procedurę uruchamiania dwóch aplikacji, OpenCL™ HelloWorld i OpenCL™ FFT na SoC Cyclone® V przy użyciu komputera z systemem Windows*. |
|
W tym filmie opisano procedurę uruchamiania dwóch aplikacji, OpenCL™ HelloWorld i OpenCL™ FFT na SoC Cyclone® V przy użyciu komputera z systemem Windows*. |
|
Jak spakować niestandardowe moduły/projekty Verilog jako biblioteki OpenCL™ |
W filmie omówiono, dlaczego klienci mogą potencjalnie korzystać z tej funkcji, aby mieć swoje niestandardowe bloki przetwarzania (RTL) w OpenCL™ kod jądra. Film wyjaśnia przykład projektu, taki jak pliki make, pliki konfiguracyjne i wyjaśnia przepływ kompilacji. Film pokazuje również demo przykładu projektu. |
OpenCL™ na Intel FPGA SoC FPGA (Linux Host) - Część 1 - Narzędzia Pobierz i skonfiguruj |
W tym filmie pokazano, jak pobrać, zainstalować i skonfigurować narzędzia wymagane do tworzenia jąder OpenCL™ i kodu hosta ukierunkowanego na układy FPGA Układu Intel FPGA SoC. |
W tym klipie wideo pokazano, jak pobrać i skompilować przykładową aplikację OpenCL™ skierowaną do emulatora wbudowanego w Intel FPGA OpenCL™. |
|
OpenCL™ na Intel FPGA SoC FPGA (Linux Host) - Część 3 - Kompilacja jądra i kodu hosta dla SoC FPGA |
Ten film pokazuje, jak skompilować kod jądra OpenCL™ i hosta ukierunkowany na FPGA i procesor Cyclone® V SoC FPGA. |
OpenCL™ na Intel FPGA SoC FPGA (Linux Host) - Część 4 - Konfiguracja środowiska wykonawczego |
Ten film pokazuje, jak skonfigurować płytkę SoC Cyclone® V do uruchamiania OpenCL™ przykładu i wykonywania kodu hosta i jądra na płycie. |
6. Uzyskaj pomoc
Certyfikowani dostawcy usług OpenCL
Firma Intel zaleca następujących certyfikowanych dostawców usług, którzy mogą pomóc w opracowaniu pakietu obsługi płyty OpenCL™ dla płyt Intel® FPGA. Dostawcy ci mają duże doświadczenie w opracowywaniu wysokiej jakości pakietów obsługi płyt OpenCL, sterowników i migracji projektów dla płyt Intel FPGA:
Terasic Inc
OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc. używanymi za zgodą Khronos.
Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.