AN 824 FPGA SDK pre dosku OpenCL
Pôdorys balíka podpory
Používateľská príručka
Intel® FPGA SDK pre OpenCL ™ Board Support Package Sprievodca optimalizáciou pôdorysu
Intel/® FPGA SDK for OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide poskytuje pokyny pre plánovanie podlahy pre OpenCL) BSP. Poskytuje tiež návod, ako môžete získať základný základ s najlepšou priemernou maximálnou prevádzkovou frekvenciou a vyhodnotiť efektivitu využívania zdrojov BSP.
Tento dokument predpokladá, že ste oboznámení s konceptmi OpenCL(2) popísanými v špecifikácii OpenCL verzie 1.0 od Khronos Group.
Tok kompilácie OpenCL BSP
OpenCL BSP podporuje nasledujúce typy kompilačných tokov:
- Plochá kompilácia [–bsp-flow flat]: Vykoná plochú kompiláciu celého návrhu (BSP spolu s hardvérom generovaným jadrom).
- Základná kompilácia [–bsp-flow base]: Vykoná základnú kompiláciu pomocou obmedzení LogicLock z base.qsf file. Cieľ hodín jadra je uvoľnený, takže hardvér BSP má väčšiu voľnosť pri plnení načasovania. Databáza base.qar sa vytvorí na zachovanie hardvéru BSP, čo je statická oblasť.
- Importovať kompilovať [ ]: Obnoví časovo uzavretú statickú oblasť z databázy base.qar a skompiluje iba hardvér vygenerovaný jadrom. Tiež zvyšuje cieľovú frekvenciu jadra, aby sa dosiahla najlepšia maximálna prevádzková frekvencia jadra (fmax).
OpenCL BSP Floorplan Partition
Pôdorys OpenCL BSP je rozdelený hlavne do nasledujúcich dvoch oblastí:
- Statická oblasť: Predstavuje oblasť s hardvérom súvisiacim s BSP, ktorý zostáva statický. Načasovanie je pre túto oblasť počas kompilácie základne uzavreté. Vo všeobecnosti je cieľom minimalizovať zdroje čipov využívané touto oblasťou na načasovanie uzávierky.
- Oblasť jadra: Predstavuje oblasť čiastočnej rekonfigurácie (PR), ktorá je vyhradená pre modul freeze_wrapper_inst|kernel_system_inst, ktorý obsahuje jadro. Vo všeobecnosti je cieľom rezervovať zdroje čipov v maximálnej miere pre tento región.
- Intel FPGA SDK pre OpenCL je založený na zverejnenej špecifikácii Khronos a prešiel procesom testovania zhody Khronos. Aktuálny stav zhody nájdete na www.khronos.org/conformance.
- OpenCL a logo OpenCL sú ochranné známky spoločnosti Apple Inc. a používajú sa na základe povolenia skupiny Khronos Group™.
Intel Corporation. Všetky práva vyhradené. Intel, logo Intel a ďalšie značky Intel sú ochranné známky spoločnosti Intel Corporation alebo jej dcérskych spoločností. Spoločnosť Intel zaručuje výkon svojich FPGA a polovodičových produktov podľa aktuálnych špecifikácií v súlade so štandardnou zárukou spoločnosti Intel, ale vyhradzuje si právo kedykoľvek bez upozornenia zmeniť akékoľvek produkty a služby. Spoločnosť Intel nepreberá žiadnu zodpovednosť ani zodpovednosť vyplývajúcu z aplikácie alebo používania akýchkoľvek informácií, produktov alebo služieb opísaných v tomto dokumente, pokiaľ to nie je výslovne písomne dohodnuté spoločnosťou Intel. Zákazníkom spoločnosti Intel sa odporúča získať najnovšiu verziu špecifikácií zariadení skôr, ako sa budú spoliehať na akékoľvek zverejnené informácie a pred zadaním objednávky produktov alebo služieb.
*Iné názvy a značky môžu byť majetkom iných.
Pokyny pre plánovanie podlahy OpenCL BSP
- Začnite s jednoduchou kompiláciou, aby ste pochopili, kam sa prirodzene umiestňujú všetky hlavné komponenty BSP (najmä bloky IP s I/O pripojeniami, ako sú PCIe alebo DDR). Pri navrhovaní BSP možno budete musieť zvážiť vytvorenie potrubia stages medzi IP do uzavretia načasovania. Najprv by ste mali spustiť plošné vymazanie semien kompilácie, aby ste identifikovali opakujúce sa zlyhávajúce cesty, a potom sa ich pokúsite opraviť.
Tip: — Dobrá miera uzávierky načasovania v porovnaní s plochými postupmi kompilácie bude mať vyššie šance na uzavretie základného načasovania kompilácie.
— Ak pozorujete konzistentné zlyhania v mm_interconnect* (komponent pridaný spoločnosťou Qsys), otvorte systém pomocou Qsys Interconnect viewa pozorujte zložitosť zlyhávajúceho prepojenia. Môžete pridať potrubné žabky do viewna zlepšenie načasovania. Ak stále nemôžete vyriešiť problém, možno budete musieť prelomiť kritickú cestu mm_interconnect* pridaním premostenia potrubia Avalon. - Počas základnej kompilácie začnite s LogicLock v oblasti jadra, ktorá obsahuje freeze_wrapper_inst|kernel_system_inst. Bez ďalších obmedzení môže Intel Quartus Prime voľne umiestniť hardvér BSP do zostávajúcej statickej oblasti čipu. Na identifikáciu veľkosti a umiestnenia hardvéru BSP, ako sú PCIe a DDR, použite plochý plánovač kompilácie a čipov. Potom rezervujte oblasť jadra pomocou LogicLock, pričom sa vyhnite hlavným klastrovaným oblastiam hardvéru BSP.
Tip: Ak je použitá rodina čipov rovnaká ako referenčná platforma a ak sú komponenty BSP podobné, môže byť rýchlejšie začať s oblasťami LogicLock pre freeze_wrapper_inst|kernel_system_inst, ktoré sa dodávajú s referenčným BSP OpenCL, a vyriešiť zlyhania. - Do svojho BSP môžete pridať nasledujúce dodatočné komponenty:
— Pamäťové banky: Ak pridáte viac pamäťových bánk, mali by ste identifikovať umiestnenie I/O banky, pretože možno budete musieť pridať potrubné mosty, aby ste dodržali načasovanie.
— I/O kanály: Môžete pridať I/O kanály, ako je video, Ethernet alebo sériové rozhranie. Ak pridáte I/O kanály, mali by ste identifikovať umiestnenie I/O banky, pretože ak je načasovanie uzávierky náročné, možno budete musieť použiť nové oblasti LogicLock na prepojenie.
Tip: Ak potrebujete pridať potrubné mosty (naprample, kvôli veľkým oneskoreniam smerovania spôsobujúcim zlyhania načasovania), potom zvážte smerovaciu vzdialenosť od zdroja k cieľovej logike v čipe a uvoľnite určitý priestor vyhradený pre oblasť jadra. - Pri rezervovaní oblastí LogicLock pre jadro postupujte podľa týchto všeobecných pokynov:
— Pokúsiť sa umiestniť všetky stĺpce DSP do systému kernel_system, pokiaľ to nevyžaduje BSP.
— Pokúste sa rezervovať viac zdrojov pre kernel_system.
— Pokúste sa udržať počet zárezov v oblasti jadra na minime.
Nasledujúci obrázok znázorňuje zárez, ktorý bol pridaný na umiestnenie potrubného mosta medzi PCIe a bankou DDR.
Obrázok 1. Pôdorys OpenCL BSP pre Intel Arria® 10 GX vo verzii 17.0
Pokyny pre maximálnu prevádzkovú frekvenciu
Maximálna prevádzková frekvencia (fmax) dosiahnutá jadrami do značnej miery závisí od rýchlosti FPGA, pretože väčšina IP by už mala byť optimalizovaná. V závislosti od pôdorysu BSP však môže dôjsť k určitým stratám fmax. Naprample, zvyčajne počet výrezov v oblasti jadra BSP ovplyvňuje kernel fmax.
Ako je znázornené na nasledujúcom obrázku, ak chcete získať najlepšie základné semeno, ktoré prináša najlepší priemerný fmax:
- Namiesto výberu prvého základného zdroja, ktorý vyhovuje načasovaniu, vykonajte vyhľadávanie semien na základnej kompilácii.
- Vykonajte kompiláciu importu (pomocou niekoľkých jadier z example designs) na všetky prechádzajúce základné semená.
- Vypočítajte priemernú hodnotu fmax pre všetky základné semená.
- Vyberte základné semeno, ktoré poskytuje najvyššiu priemernú hodnotu fmax.
Základné semeno s najlepším priemerným fmax je dobrým kandidátom na vydanie s BSP. Ak sa rozhodnete postupovať iným spôsobom, ako sú odporúčané kroky, môžete pozorovať 5-10% odchýlku v fmax procesu kompilácie importu jadra.
Obrázok 2. Identifikácia najlepšieho základného osiva
- Aby ste pochopili, ako rýchlo môže bežať jadro bez obmedzení pôdorysu:
1. Vykonajte plošnú kompiláciu jadra a sledujte fmax.
2. Vykonajte kompiláciu importu na rovnakom jadre a sledujte hodnotu fmax.
3. Porovnajte výsledky fmax.
Kvôli obmedzeniam pôdorysu je fmax importovanej kompilácie vždy nižšia ako fmax plochej kompilácie. Aby ste sa vyhli šumu semien, kompilujte jadro s viacerými základnými semenami a zvážte priemernú hodnotu fmax pri porovnávaní výsledkov fmax. - Nikdy neporovnávajte jadro fmax zo základnej kompilácie s plochou alebo importovanou kompiláciou. Ciele hodín jadra sú počas kompilácie základne uvoľnené, a preto nikdy nedosiahnete dobré výsledky.
- Sledujte kritickú cestu taktu jadra v základnej alebo importnej kompilácii. Ak kritická cesta prechádza z jadra do statickej oblasti v pôdoryse, zmeňte pôdorys alebo spustite niekoľko ďalších základných semien, aby ste sa vyhli tejto kritickej ceste.
Pokyny pre hodnotenie efektívnosti využívania zdrojov BSP
Čím vyššie je percento využitia zdrojovtage, tým lepšie je využitie plochy v statickej oblasti vášho BSP. Vysoké percento využitia zdrojovtage tiež znamená, že pre oblasť jadra je k dispozícii viac zdrojov.
Na výpočet percenta využitia zdrojov postupujte podľa nasledujúcich krokovtage vášho BSP:
- Získajte hodnoty pre všetky zdroje v FPGA z top.fit.rpt alebo base.fit.rpt, ktoré sú k dispozícii v sekcii Štatistika oddielov v správe Fitter.
- Odpočítajte hodnotu pre „freeze_wrapper_inst|kernel_system_inst“ (oblasť jadra).
Tip:
Zamerajte sa viac na hodnoty adaptívneho logického modulu (ALM) ako na hodnoty iných zdrojov. Uistite sa, že využitie zdrojov v percentáchtage pre ALM je bližšie k referenčnému BSP OpenCL. Veľmi vysoké percentotage pre ALM môže viesť k preťaženiu, čo môže predĺžiť čas kompilácie a spôsobiť preťaženie smerovania v zložitých jadrách. Vždy však môžete zväčšiť alebo zmenšiť oblasť statickej oblasti a sledovať čas kompilácie a fmax.
Nasledujúca tabuľka odráža využitie prostriedkov OpenCL BSP zariadení Arria ® 10 GX vo verzii 17.0.
Tabuľka 1.
OpenCL BSP Resource Využitie zariadení IntelArria 10 GX vo vydaní 17.0
Celkom k dispozícii | Vyhradené pre jadro | Dostupné pre BSP | Používa ho BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
Registre | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2OK | 2713 | 2534 | 179 | 134 | 75% |
DSP | 1518 | 1518 | 0 | 0 | N/A |
Všimnite si, že plánovanie podlahy sa vykonáva takým spôsobom, že statická oblasť nebude mať žiadne bloky DSP.
História revízií dokumentu
Tabuľka 2.
História revízií dokumentu Intel FPGA SDK pre balík podpory OpenCL Board Sprievodca optimalizáciou pôdorysu
Dátum | Verzia | Zmeny |
August-17 | Prvotné uvoľnenie. |
Online verzia
Odoslať spätnú väzbu
ID: 683312
AN-824
Verzia: 2017.08.08
AN 824: Intel® FPGA SDK pre dosku OpenCL™
Sprievodca optimalizáciou pôdorysu balíka podpory
Dokumenty / zdroje
![]() |
intel AN 824 FPGA SDK pre OpenCL Board Support Package Floorplan [pdf] Používateľská príručka AN 824 FPGA SDK pre balík podpory OpenCL Pôdorys, AN 824, FPGA SDK pre balík podpory OpenCL Pôdorys, balík podpory OpenCL Pôdorys, balík podpory dosky Pôdorys, balík podpory Pôdorys, balík Pôdorys, pôdorys |