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.

Pobierz Intel® FPGA SDK dla OpenCL™

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:

  1. Upewnij się, że jest zainstalowany zestaw Intel® FPGA SDK dla OpenCL™ i Intel® Quartus®.
  2. Sprawdź, czy dostępna jest wersja narzędzia zgodna z listą BSP odwołania OpenCL™.
  3. 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:

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:

  1. Skompiluj Boardtest w "płaskim" przepływie, aby wygenerować zamknięty plik ".aocx"
  2. Sprawdź poprawność ".aocx", uruchamiając Boardtest i sprawdzając oczekiwania przepustowości interfejsu z testu
  3. 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.

Znane problemy

5. Zalecane czytanie i trening

OpenCL™ Filmy

Tytuł

Opis

Pierwsze kroki z OpenCL™ część 1

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*.

Pierwsze kroki z OpenCL™ część 2

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*.

Pierwsze kroki z OpenCL część 3

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*.

Pierwsze kroki z OpenCL Część 4

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*.

Pierwsze kroki z OpenCL część 5

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.

OpenCL™ na Intel FPGA SoC FPGA (Linux Host) - Część 2 - Uruchamianie przykładu dodawania wektora za pomocą emulatora

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.