SDK AN 824 FPGA dla płyty OpenCL
Plan piętra pakietu wsparcia
Instrukcja użytkownika
Zestaw SDK Intel® FPGA dla Przewodnik optymalizacji planu piętra dla pakietu wsparcia płyty OpenCL™
Podręcznik optymalizacji planu piętra Intel/® FPGA SDK dla pakietu wsparcia płyty OpenCL™ (BSP) zawiera wytyczne dotyczące planowania piętra dla OpenCL) BSP. Zawiera także wskazówki dotyczące pozyskiwania nasion podstawowych przy najlepszej średniej maksymalnej częstotliwości operacyjnej i oceny efektywności wykorzystania zasobów BSP.
W tym dokumencie zakłada się, że znasz koncepcje OpenCL(2) opisane w specyfikacji OpenCL w wersji 1.0 opracowanej przez Khronos Group.
Przebieg kompilacji OpenCL BSP
OpenCL BSP obsługuje następujące typy przepływów kompilacji:
- Kompilacja płaska [–bsp-flow płaska]: Wykonuje płaską kompilację całego projektu (BSP wraz ze sprzętem wygenerowanym przez jądro).
- Kompilacja podstawowa [–bsp-flow base]: Wykonuje kompilację podstawową przy użyciu ograniczeń LogicLock z pliku base.qsf file. Docelowy zegar jądra jest rozluźniony, dzięki czemu sprzęt BSP ma większą swobodę w dotrzymywaniu terminów. Tworzona jest baza danych base.qar w celu zachowania sprzętu BSP, który stanowi region statyczny.
- Importuj kompilację [ ]: Przywraca zamknięty region statyczny z bazy danych base.qar i kompiluje tylko sprzęt wygenerowany przez jądro. Zwiększa także docelowy zegar jądra, aby uzyskać najlepszą maksymalną częstotliwość roboczą jądra (fmax).
Partycja planu piętra OpenCL BSP
Plan piętra OpenCL BSP jest podzielony głównie na następujące dwa regiony:
- Region statyczny: reprezentuje region posiadający sprzęt związany z BSP, który pozostaje statyczny. Czas dla tego regionu jest zamknięty podczas kompilacji podstawowej. Ogólnie rzecz biorąc, celem jest zminimalizowanie zasobów chipów wykorzystywanych przez ten region w celu zamknięcia czasu.
- Region jądra: reprezentuje region częściowej rekonfiguracji (PR), który jest zarezerwowany dla modułu freeze_wrapper_inst|kernel_system_inst, który zawiera jądro. Ogólnie rzecz biorąc, celem jest maksymalne zarezerwowanie zasobów chipów dla tego regionu.
- Zestaw Intel FPGA SDK dla OpenCL jest oparty na opublikowanej specyfikacji Khronos i przeszedł proces testowania zgodności Khronos. Aktualny stan zgodności można sprawdzić pod adresem www.khronos.org/conformance.
- OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc. i są wykorzystywane za zgodą Khronos Group™.
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej oddziałów. Firma Intel gwarantuje działanie swoich produktów FPGA i produktów półprzewodnikowych zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym momencie i bez powiadomienia. Firma Intel nie przyjmuje żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, chyba że zostało to wyraźnie uzgodnione na piśmie przez firmę Intel. Klientom firmy Intel zaleca się uzyskanie najnowszej wersji specyfikacji urządzenia przed skorzystaniem z jakichkolwiek opublikowanych informacji i złożeniem zamówienia na produkty lub usługi.
*Inne nazwy oraz marki mogą być własnością osób trzecich.
Wytyczne dotyczące planowania pięter OpenCL BSP
- Rozpocznij od kompilacji płaskiej, aby zrozumieć, gdzie w sposób naturalny rozmieszczone są wszystkie główne komponenty BSP (zwłaszcza bloki IP z połączeniami we/wy, takimi jak PCIe lub DDR). Projektując BSP, być może będziesz musiał rozważyć utworzenie potoku stages pomiędzy adresami IP, aby zamknąć termin. Powinieneś najpierw uruchomić płaską analizę nasion kompilacji, aby zidentyfikować powtarzające się błędne ścieżki, a następnie spróbować je naprawić.
Wskazówka: — Dobry współczynnik zamykania taktowania w porównaniu z przebiegami nasion z płaską kompilacją będzie miał większe szanse na zamknięcie taktowania bazowego kompilacji.
— Jeśli zaobserwujesz ciągłe awarie w mm_interconnect* (komponent dodany przez Qsys), otwórz system za pomocą Qsys Interconnect viewer i obserwuj złożoność uszkodzonego połączenia międzysieciowego. Możesz dodać przerzutniki potokowe w pliku viewer, aby poprawić synchronizację. Jeśli nadal nie możesz rozwiązać problemu, być może będziesz musiał podzielić ścieżkę krytyczną mm_interconnect*, dodając mostki potokowe Avalon. - Podczas kompilacji podstawowej zacznij od LogicLock w regionie jądra, który zawiera freeze_wrapper_inst|kernel_system_inst. Bez żadnych innych ograniczeń, Intel Quartus Prime może swobodnie umieścić sprzęt BSP w pozostałym statycznym obszarze chipa. Użyj płaskiego narzędzia do planowania kompilacji i chipów, aby określić rozmiar i lokalizację sprzętu BSP, takiego jak PCIe i DDR. Następnie zarezerwuj region jądra, używając LogicLock, unikając głównych skupionych obszarów sprzętu BSP.
Wskazówka: Jeśli używana rodzina chipów jest taka sama jak platforma referencyjna i jeśli komponenty BSP są podobne, szybsze może być rozpoczęcie od regionów LogicLock dla freeze_wrapper_inst|kernel_system_inst dostarczanych z referencyjnym BSP OpenCL i naprawienie błędów. - Możesz dodać następujące dodatkowe komponenty do swojego BSP:
— Banki pamięci: Jeśli dodasz więcej banków pamięci, powinieneś określić lokalizację banku we/wy, ponieważ może być konieczne dodanie mostków potokowych, aby zachować odpowiedni czas.
— Kanały we/wy: Można dodać kanały we/wy, takie jak wideo, Ethernet lub interfejs szeregowy. Jeśli dodasz kanały we/wy, powinieneś określić lokalizację banku we/wy, ponieważ może być konieczne zastosowanie nowych regionów LogicLock do potokowania, jeśli moment zamknięcia jest trudny.
Wskazówka: jeśli chcesz dodać mosty rurociągowe (npample, ze względu na duże opóźnienia w routingu powodujące awarie synchronizacji), następnie rozważ logikę odległości routingu od źródła do miejsca docelowego w chipie i zwolnij trochę miejsca zarezerwowanego dla regionu jądra. - Podczas rezerwowania regionów LogicLock dla jądra postępuj zgodnie z poniższymi ogólnymi wytycznymi:
— Spróbuj umieścić wszystkie kolumny DSP w kernel_system, chyba że jest to wymagane przez BSP.
— Spróbuj zarezerwować więcej zasobów dla systemu jądra.
— Staraj się ograniczać do minimum liczbę nacięć w obszarze jądra.
Poniższy rysunek ilustruje wycięcie, które zostało dodane w celu umieszczenia mostu rurociągu pomiędzy PCIe a bankiem DDR.
Rysunek 1. Plan piętra OpenCL BSP dla Intel Arria® 10 GX w wersji 17.0
Wytyczne dotyczące maksymalnej częstotliwości roboczej
Maksymalna częstotliwość robocza (fmax) osiągana przez jądra w dużej mierze zależy od szybkości FPGA, ponieważ większość adresów IP powinna być już zoptymalizowana. Jednakże, w zależności od planu piętra BSP, mogą wystąpić pewne straty fmax. Na przykładample, zwykle liczba wycięć w obszarze jądra BSP wpływa na fmax jądra.
Jak pokazano na poniższym rysunku, aby uzyskać najlepsze ziarno podstawowe, które daje najlepszą średnią fmax:
- Wykonaj przeglądanie nasion w kompilacji podstawowej, zamiast wybierać pierwszy podstawowy materiał siewny, który spełnia wymagania czasowe.
- Wykonaj kompilację importu (używając kilku jąder z example Designs) na wszystkich przechodzących nasionach bazowych.
- Oblicz średnie fmax dla wszystkich nasion podstawowych.
- Wybierz ziarno podstawowe, które daje najwyższą średnią fmax.
Bazowy materiał siewny z najlepszym średnim fmax jest dobrym kandydatem do wydania z BSP. Jeśli zdecydujesz się zastosować podejście inne niż zalecane kroki, możesz zaobserwować 5-10% zmiany w fmax procesu kompilacji importu jądra.
Rysunek 2. Identyfikacja najlepszego materiału siewnego bazowego
- Aby zrozumieć, jak szybko jądro może działać bez ograniczeń dotyczących planu piętra:
1. Wykonaj płaską kompilację jądra i obserwuj fmax.
2. Wykonaj kompilację importu na tym samym jądrze i obserwuj fmax.
3. Porównaj wyniki fmax.
Ze względu na ograniczenia planu piętra fmax kompilacji importu jest zawsze niższe niż fmax kompilacji płaskiej. Aby uniknąć szumu nasion, skompiluj jądro z większą liczbą nasion bazowych i rozważ średnie fmax podczas porównywania wyników fmax. - Nigdy nie porównuj fmax jądra z kompilacji podstawowej z kompilacją płaską lub importowaną. Docelowe zegary jądra są rozluźniane podczas kompilacji podstawowej, dlatego nigdy nie uzyskasz dobrych wyników.
- Obserwuj ścieżkę krytyczną zegara jądra w kompilacji podstawowej lub importowej. Jeśli ścieżka krytyczna przechodzi od jądra do obszaru statycznego na planie piętra, zmień plan piętra lub uruchom jeszcze kilka podstawowych nasion, aby ominąć tę ścieżkę krytyczną.
Wytyczne dotyczące oceny efektywności wykorzystania zasobów BSP
Im wyższy procent wykorzystania zasobówtage, tym lepsze wykorzystanie obszaru w obszarze statycznym Twojego BSP. Wysoki procent wykorzystania zasobówtage oznacza również, że dla regionu jądra dostępnych jest więcej zasobów.
Wykonaj poniższe czynności, aby obliczyć procent wykorzystania zasobówtage Twojego BSP:
- Uzyskaj wartości dla wszystkich zasobów w FPGA z top.fit.rpt lub base.fit.rpt dostępnych w sekcji Partition Statistics raportu instalatora.
- Odejmij wartość „freeze_wrapper_inst|kernel_system_inst” (region jądra).
Wskazówka:
Skoncentruj się bardziej na wartościach adaptacyjnego modułu logicznego (ALM) niż na wartościach innych zasobów. Upewnij się, że procent wykorzystania zasobówtage dla ALM jest bliższy referencyjnemu BSP OpenCL. Bardzo wysoki procenttage dla ALM może prowadzić do zatorów, co może wydłużyć czas kompilacji i wprowadzić zatory w routingu w złożonych jądrach. Jednakże zawsze możesz zwiększyć lub zmniejszyć obszar obszaru statycznego i obserwować czas kompilacji oraz fmax.
Poniższa tabela przedstawia wykorzystanie zasobów OpenCL BSP przez urządzenia Arria ® 10 GX w wersji 17.0.
Tabela 1.
Wykorzystanie zasobów OpenCL BSP w urządzeniach IntelArria 10 GX w wersji 17.0
Całkowicie dostęny | Zarezerwowane dla jądra | Dostępne dla BSP | Używany przez BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71,% |
Rejestry | 1708800 | 1575200 | 133600 | 38913 | 29,% |
M2OK | 2713 | 2534 | 179 | 134 | 75,% |
DSP | 1518 | 1518 | 0 | 0 | Brak |
Należy zwrócić uwagę, że planowanie piętra zostało wykonane w taki sposób, aby obszar statyczny nie zawierał żadnych bloków DSP.
Historia rewizji dokumentu
Tabela 2.
Dokument historii wersji pakietu Intel FPGA SDK dla pakietu obsługi płyty OpenCL Przewodnik optymalizacji planu piętra
Data | Wersja | Zmiany |
17 sierpnia | Pierwsze wydanie. |
Wersja online
Wyślij opinię
Identyfikator: 683312
AN-824
Wersja: 2017.08.08
AN 824: Intel® FPGA SDK dla płyty OpenCL™
Przewodnik optymalizacji planu piętra pakietu wsparcia
Dokumenty / Zasoby
![]() |
Intel AN 824 FPGA SDK dla pakietu obsługi płyty OpenCL Plan piętra [plik PDF] Instrukcja użytkownika AN 824 FPGA SDK dla pakietu obsługi płyty OpenCL Plan piętra, AN 824, FPGA SDK dla pakietu obsługi płyty OpenCL Plan piętra, Pakiet obsługi płyty OpenCL Plan piętra, Plan piętra pakietu wsparcia płyty, Plan piętra pakietu wsparcia, Plan piętra pakietu, Plan piętra |