AN 824 FPGA SDK, skirtas OpenCL plokštėms
Palaikymo paketo grindų planas
Vartotojo vadovas
Intel® FPGA SDK, skirtas OpenCL ™ lentos palaikymo paketo aukšto plano optimizavimo vadovas
Intel/® FPGA SDK, skirta OpenCL™ plokštės palaikymo paketui (BSP) grindų plano optimizavimo vadove pateikiamos OpenCL) BSP grindų planavimo gairės. Jame taip pat pateikiamos gairės, kaip įsigyti bazinę sėklą geriausiu vidutiniu didžiausiu veikimo dažniu ir įvertinti BSP išteklių panaudojimo efektyvumą.
Šiame dokumente daroma prielaida, kad esate susipažinę su OpenCL(2) sąvokomis, aprašytomis Khronos Group OpenCL specifikacijos 1.0 versijoje.
OpenCL BSP kompiliavimo srautas
OpenCL BSP palaiko šiuos kompiliavimo srautų tipus:
- Plokščiasis kompiliavimas [–bsp-flow flat]: atlieka vientisą viso dizaino kompiliaciją (BSP kartu su branduolio generuojama aparatine įranga).
- Bazinis kompiliavimas [–bsp-flow base]: atlieka bazinį kompiliavimą naudodamas LogicLock apribojimus iš base.qsf file. Branduolio laikrodžio tikslas yra sušvelnintas, kad BSP aparatinė įranga turėtų daugiau laisvės laikytis laiko. Base.qar duomenų bazė sukurta siekiant išsaugoti BSP aparatinę įrangą, kuri yra statinė sritis.
- Importuoti kompiliuoti [ ]: atkuria laiko uždarytą statinį regioną iš base.qar duomenų bazės ir kompiliuoja tik branduolio sugeneruotą aparatinę įrangą. Tai taip pat padidina branduolio laikrodžio tikslą, kad būtų pasiektas geriausias branduolio maksimalus veikimo dažnis (fmax).
OpenCL BSP grindų plano pertvara
OpenCL BSP grindų planas daugiausia suskirstytas į šiuos du regionus:
- Statinis regionas: reiškia regioną, kuriame yra su BSP susijusi aparatinė įranga, kuri išlieka statiška. Šio regiono laikas yra uždarytas bazinio kompiliavimo metu. Apskritai, tikslas yra sumažinti lustų išteklius, naudojamus šiame regione uždarymo laikui.
- Branduolio sritis: reiškia dalinio perkonfigūravimo (PR) regioną, kuris yra rezervuotas moduliui freeze_wrapper_inst|kernel_system_inst, kuriame yra branduolys. Apskritai, tikslas yra maksimaliai rezervuoti lustų išteklius šiam regionui.
- „Intel“ FPGA SDK, skirtas „OpenCL“, yra pagrįstas paskelbta „Khronos“ specifikacija ir praėjo „Khronos“ atitikties testavimo procesą. Dabartinę atitikties būseną galite rasti adresu www.khronos.org/conformance.
- OpenCL ir OpenCL logotipas yra Apple Inc. prekių ženklai ir naudojami gavus Khronos Group™ leidimą.
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas.
*Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
OpenCL BSP grindų planavimo gairės
- Pradėkite nuo vienodo kompiliavimo, kad suprastumėte, kur natūraliai dedami visi pagrindiniai BSP komponentai (ypač IP blokai su I/O jungtimis, pvz., PCIe arba DDR). Kuriant BSP, gali tekti apsvarstyti galimybę sukurti dujotiekio stages tarp IP iki uždarymo laiko. Pirmiausia turėtumėte paleisti vientisą kompiliavimo pradinį apdorojimą, kad nustatytumėte pasikartojančius nesėkmingus kelius, o tada pabandykite juos ištaisyti.
Patarimas: — Geras laiko uždarymo greitis, palyginti su plokščių kompiliavimo pradinių duomenų nuskaitymu, padidins bazinio kompiliavimo laiko uždarymo tikimybę.
— Jei pastebite nuolatinius mm_interconnect* (Qsys pridėto komponento) gedimus, atidarykite sistemą su Qsys Interconnect viewer ir stebėkite sugedusio sujungimo sudėtingumą. Galite pridėti vamzdynų šlepečių viewer pagerinti laiką. Jei vis tiek negalite išspręsti problemos, gali tekti išardyti mm_interconnect* kritinį kelią, pridedant Avalon dujotiekio tiltus. - Bazinio kompiliavimo metu pradėkite nuo LogicLock branduolio srityje, kurioje yra freeze_wrapper_inst|kernel_system_inst. Be jokių kitų apribojimų, „Intel Quartus Prime“ gali laisvai įdėti BSP aparatinę įrangą likusioje statinėje lusto srityje. Norėdami nustatyti BSP aparatinės įrangos, pvz., PCIe ir DDR, dydį ir vietą, naudokite plokščią kompiliatorių ir lustų planavimo priemonę. Tada rezervuokite branduolio regioną naudodami LogicLock, vengdami pagrindinių BSP aparatinės įrangos grupių.
Patarimas: jei naudojama lustų šeima yra tokia pati kaip ir pamatinė platforma, o BSP komponentai yra panašūs, gali būti greičiau pradėti nuo „LogicLock“ regionų, skirtų freeze_wrapper_inst|kernel_system_inst, kurie pristatomi kartu su „OpenCL“ nuoroda BSP, ir pašalinti gedimus. - Prie savo BSP galite pridėti šiuos papildomus komponentus:
— Atminties bankai: jei pridedate daugiau atminties bankų, turėtumėte nustatyti įvesties/išvesties banko vietą, nes gali tekti pridėti dujotiekio tiltelius, kad atitiktų laiką.
— Įvesties/išvesties kanalai: galite pridėti įvesties/išvesties kanalų, pvz., vaizdo, eterneto arba nuosekliosios sąsajos. Jei pridedate įvesties / išvesties kanalus, turėtumėte nustatyti įvesties / išvesties banko vietą, nes gali tekti taikyti naujus LogicLock regionus konvejerijoms, jei sunku uždaryti laiką.
Patarimas: jei reikia pridėti dujotiekio tiltus (pvz.,ample, dėl didelių maršruto vėlavimų, sukeliančių laiko gedimus), tada apsvarstykite maršruto atstumą nuo šaltinio iki paskirties vietos lustoje ir atlaisvinkite dalį branduolio regionui skirtos vietos. - Laikykitės šių bendrųjų nurodymų, kai rezervuojate „LogicLock“ regionus branduoliui:
— Pabandykite įdėti visus DSP stulpelius į kernel_sistemą, nebent to reikalauja BSP.
— Pabandykite rezervuoti daugiau išteklių kernel_sistemai.
— Pabandykite sumažinti įpjovų skaičių branduolio srityje iki minimumo.
Toliau pateiktame paveikslėlyje parodyta įpjova, kuri buvo pridėta dujotiekio tiltui tarp PCIe ir DDR banko pastatyti.
1 pav. OpenCL BSP grindų planas, skirtas Intel Arria® 10 GX 17.0 laidoje

Didžiausio veikimo dažnio gairės
Didžiausias branduolių pasiekiamas veikimo dažnis (fmax) labai priklauso nuo FPGA greičio, nes dauguma IP jau turėtų būti optimizuoti. Tačiau, priklausomai nuo BSP grindų plano, gali būti šiek tiek fmax nuostolių. Pavyzdžiui,ample, paprastai išjungimų skaičius BSP branduolio srityje turi įtakos branduolio fmax.
Kaip parodyta toliau pateiktame paveikslėlyje, kad gautumėte geriausią bazinę sėklą, kuri duoda geriausią vidutinį fmax:
- Užuot pasirinkę pirmąją bazinę sėklą, atitinkančią nustatytą laiką, atlikite pagrindo rinkinio sėklų nuvalymą.
- Atlikite importo kompiliavimą (naudodami keletą branduolių iš example designs) ant visų praeinančių bazinių sėklų.
- Apskaičiuokite visų bazinių sėklų vidutinį fmax.
- Pasirinkite bazinę sėklą, kuri duoda didžiausią vidutinį fmax.
Bazinė sėkla su geriausiu vidutiniu fmax yra geras kandidatas išleisti su BSP. Jei nuspręsite laikytis kitokio požiūrio nei rekomenduojami veiksmai, galite pastebėti, kad branduolio importo kompiliavimo proceso fmax skiriasi 5–10%.
2 pav. Geriausios bazinės sėklos nustatymas
- Norėdami suprasti, kaip greitai branduolys gali veikti be grindų plano apribojimų:
1. Atlikite plokščią branduolio kompiliaciją ir stebėkite fmax.
2. Atlikite importo kompiliaciją tame pačiame branduolyje ir stebėkite fmax.
3. Palyginkite fmax rezultatus.
Dėl aukšto plano apribojimų importo kompiliavimo fmax visada yra mažesnis nei plokščio kompiliavimo fmax. Kad išvengtumėte sėklų triukšmo, sukompiliuokite branduolį su daugiau bazinių sėklų ir, palygindami fmax rezultatus, atsižvelkite į vidutinį fmax. - Niekada nelyginkite branduolio fmax iš bazinės kompiliacijos su plokščia ar importuota kompiliacija. Branduolio laikrodžio taikiniai atpalaiduojami bazinio kompiliavimo metu, todėl niekada nepasieksite gerų rezultatų.
- Stebėkite branduolio laikrodžio kritinį kelią bazinėje arba importo kompiliacijoje. Jei kritinis kelias kerta iš branduolio į statinį grindų plano regioną, pakeiskite grindų planą arba paleiskite dar keletą bazinių sėklų, kad išvengtumėte šio kritinio kelio.
BSP išteklių panaudojimo efektyvumo vertinimo gairės
Kuo didesnis išteklių panaudojimo proctage, tuo geresnis ploto panaudojimas statinėje jūsų BSP srityje. Didelis išteklių panaudojimo proctage taip pat reiškia, kad branduolio regione yra daugiau išteklių.
Norėdami apskaičiuoti išteklių panaudojimo procentą, atlikite toliau nurodytus veiksmustage iš jūsų BSP:
- Gaukite visų FPGA išteklių reikšmes iš top.fit.rpt arba base.fit.rpt, pasiekiamo „Fitter“ ataskaitos skirsnyje „Paskirstymo statistika“.
- Atimkite „freeze_wrapper_inst|kernel_system_inst“ (branduolių regiono) reikšmę.
Patarimas:
Daugiau dėmesio skirkite adaptyviojo logikos modulio (ALM) reikšmėms, o ne kitų išteklių reikšmėms. Užtikrinti, kad išteklių panaudojimas proctagALM e yra artimesnis OpenCL nuorodos BSP. Labai didelis procentastage ALM gali sukelti perkrovą, o tai gali pailginti kompiliavimo laiką ir sukelti maršrutų perkrovas sudėtinguose branduoliuose. Tačiau visada galite padidinti arba sumažinti statinio regiono plotą ir stebėti kompiliavimo laiką bei fmax.
Šioje lentelėje parodytas OpenCL BSP išteklių naudojimas Arria ® 10 GX įrenginiuose 17.0 versijoje.
1 lentelė.
„IntelArria 10 GX“ įrenginių OpenCL BSP išteklių naudojimas 17.0 versijoje
| Iš viso prieinama | Rezervuota branduoliui | Galima BSP | Naudojo BSP | 0/0 | |
| ALM | 427200 | 393800 | 33400 | 23818. | 71. proc. |
| Registrai | 1708800 | 1575200 | 133600 | 38913 | 29. proc. |
| M2OK | 2713 | 2534 | 179 | 134 | 75. proc. |
| DSP | 1518 | 1518 | 0 | 0 | N/A |
Stebėkite, kad grindų planavimas būtų atliktas taip, kad statinėje srityje nebūtų jokių DSP blokų.
Dokumento taisymo istorija
2 lentelė.
Dokumento „Intel FPGA SDK“, skirto OpenCL plokštės palaikymo paketo, grindų plano optimizavimo vadovo peržiūros istorija
| Data | Versija | Pakeitimai |
| rugpjūčio-17 | Pradinis išleidimas. |
Internetinė versija
Siųsti Atsiliepimus
ID: 683312
AN-824
Versija: 2017.08.08
AN 824: Intel® FPGA SDK, skirtas OpenCL™ plokštėms
Palaikymo paketo aukšto plano optimizavimo vadovas
Dokumentai / Ištekliai
![]() |
intel AN 824 FPGA SDK, skirtas „OpenCL Board Support Package Floorplan“. [pdfVartotojo vadovas AN 824 FPGA SDK, skirtas OpenCL plokštės palaikymo paketui, AN 824, FPGA SDK, skirtas OpenCL plokštės palaikymo paketui, grindų planui, OpenCL plokštės palaikymo paketui, grindų planui, atraminio paketo aukšto planui, paketo aukšto planui, aukšto planui |




