AN 824 FPGA SDK til OpenCL Board
Supportpakke Plantegning
Brugervejledning
Intel® FPGA SDK til OpenCL ™ Board Support Package Plantegningsoptimeringsvejledning
Intel/® FPGA SDK for OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide giver retningslinjer for gulvplanlægning for OpenCL) BSP. Den giver også vejledning i, hvordan du kan erhverve basisfrøet med den bedste gennemsnitlige maksimale driftsfrekvens og evaluere effektiviteten af BSP-ressourceudnyttelsen.
Dette dokument forudsætter, at du er bekendt med OpenCL(2)-koncepter som beskrevet i OpenCL Specification version 1.0 af Khronos Group.
OpenCL BSP Compilation Flow
OpenCL BSP understøtter følgende typer kompileringsforløb:
- Flad kompilering [–bsp-flow flad]: Udfører en flad kompilering af hele designet (BSP sammen med kernegenereret hardware).
- Basiskompilering [–bsp-flow base]: Udfører en basiskompilering ved at bruge LogicLock-begrænsninger fra base.qsf file. Kernelur-målet er afslappet, så BSP-hardwaren har mere frihed til at overholde timing. En base.qar-database oprettes for at bevare BSP-hardwaren, som er den statiske region.
- Importer kompiler [ ]: Gendanner den timing lukkede statiske region fra base.qar-databasen og kompilerer kun den kernegenererede hardware. Det øger også kerneklokkemålet for at opnå den bedste kerne maksimale driftsfrekvens (fmax).
OpenCL BSP Gulvplanspartition
OpenCL BSP grundplan er hovedsageligt opdelt i følgende to regioner:
- Statisk region: Repræsenterer den region, der har BSP-relateret hardware, der forbliver statisk. Timingen er lukket for denne region under basiskompilering. Generelt er målet at minimere de chipressourcer, der bruges af denne region, for at lukke timing.
- Kernel region: Repræsenterer den partielle rekonfiguration (PR) region, der er reserveret til freeze_wrapper_inst|kernel_system_inst modul, som indeholder kernen. Generelt er målet at reservere chipressourcer i maksimalt omfang til denne region.
- Intel FPGA SDK til OpenCL er baseret på en offentliggjort Khronos-specifikation og har bestået Khronos Conformance Testing Process. Aktuel overensstemmelsesstatus kan findes på www.khronos.org/conformance.
- OpenCL og OpenCL-logoet er varemærker tilhørende Apple Inc. og bruges med tilladelse fra Khronos Group™.
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester.
*Andre navne og mærker kan hævdes at være andres ejendom.
Retningslinjer for OpenCL BSP Gulvplanlægning
- Begynd med flad kompilering for at forstå, hvor alle hovedkomponenter i BSP'en placeres naturligt (især IP-blokkene med I/O-forbindelser såsom PCIe eller DDR). Mens du designer BSP'en, skal du muligvis overveje at etablere pipeline stages mellem IP'erne for at lukke timing. Du bør først køre en flad kompileringsseed-sweep for at identificere de tilbagevendende fejlstier og derefter forsøge at rette dem.
Tip: — En god timing-lukningshastighed i forhold til flade compile-seed-sweep vil have større chancer for at lukke basis-kompilerings-timing.
— Hvis du observerer konsekvente fejl i mm_interconnect* (komponent tilføjet af Qsys), skal du åbne systemet med Qsys Interconnect viewer og observer kompleksiteten af den svigtende sammenkobling. Du kan tilføje pipelining flipflops i viewfor at forbedre timingen. Hvis du stadig ikke kan løse problemet, skal du muligvis nedbryde den kritiske sti mm_interconnect* ved at tilføje Avalon-rørledningsbroer. - Under basiskompileringen, start med LogicLock på kerneområdet, der indeholder freeze_wrapper_inst|kernel_system_inst. Uden andre begrænsninger kan Intel Quartus Prime placere BSP-hardwaren frit i det resterende statiske område af chippen. Brug den flade kompilering og chipplanlæggeren til at identificere størrelsen og placeringen af BSP-hardwaren, såsom PCIe og DDR. Reserver derefter kerneregionen ved at bruge LogicLock, mens du undgår de vigtigste grupperede områder af BSP-hardwaren.
Tip: Hvis den anvendte chipfamilie er den samme som referenceplatformen, og hvis BSP-komponenterne er ens, kan det være hurtigere at starte med LogicLock-regionerne for freeze_wrapper_inst|kernel_system_inst, der leveres med OpenCL-reference-BSP'en og arbejde igennem fejlene. - Du kan tilføje følgende ekstra komponenter til din BSP:
— Hukommelsesbanker: Hvis du tilføjer flere hukommelsesbanker, bør du identificere I/O-bankens placering, da du muligvis skal tilføje pipeline-broer for at overholde timingen.
— I/O-kanaler: Du kan tilføje I/O-kanaler såsom video, Ethernet eller serielt interface. Hvis du tilføjer I/O-kanaler, bør du identificere I/O-bankens placering, da du muligvis skal anvende nye LogicLock-regioner til pipelining, hvis lukningstidspunktet er vanskeligt.
Tip: Hvis du har brug for at tilføje rørledningsbroer (f.eksample, på grund af store routingforsinkelser, der forårsager timingfejl), så overvej routingafstanden fra kilde til destinationslogik i chippen og frigiv noget plads reserveret til kerneregionen. - Følg disse generelle retningslinjer, når du reserverer LogicLock-regioner til kernen:
— Forsøg at placere alle DSP-kolonner i kernel_system, medmindre det kræves af BSP'en.
— Forsøg på at reservere flere ressourcer til kernel_system.
— Forsøg at holde antallet af hak i kerneområdet på et minimum.
Følgende figur illustrerer et hak, der blev tilføjet for at placere en rørledningsbro mellem PCIe og DDR-bank.
Figur 1. OpenCL BSP plantegning for Intel Arria® 10 GX i 17.0-versionen
Retningslinjer for maksimal driftsfrekvens
Maksimal driftsfrekvens (fmax) opnået af kerner afhænger i høj grad af FPGA-hastighed, da de fleste af IP'erne allerede burde være optimeret. Der kan dog være nogle fmax-tab afhængigt af BSP-gulvplanen. F.eksample, normalt påvirker antallet af udskæringer i kerneregionen af BSP kernel fmax.
Som illustreret i den følgende figur, for at erhverve det bedste basisfrø, der giver den bedste gennemsnitlige fmax:
- Udfør et seed-sweep på basiskompileringen i stedet for at vælge det første basisseed, der opfylder timingen.
- Udfør importkompilering (ved at bruge få kerner fra example designs) på alle de passerende basisfrø.
- Beregn den gennemsnitlige fmax for alle basisfrø.
- Vælg det basisfrø, der giver den højeste gennemsnitlige fmax.
Basisfrøet med den bedste gennemsnitlige fmax er en god kandidat til frigivelse med BSP. Hvis du beslutter dig for at følge en anden tilgang end de anbefalede trin, kan du muligvis observere 5-10 % variation i fmax for kerneimportkompileringsprocessen.
Figur 2. Identifikation af det bedste basisfrø
- For at forstå, hvor hurtigt kernen kan køre uden grundplansbegrænsninger:
1. Udfør en flad kompilering af kernen og observer fmax.
2. Udfør en importkompilering på den samme kerne og observer fmax.
3. Sammenlign fmax-resultater.
På grund af grundplansbegrænsningerne er import compile fmax altid lavere end flad compile fmax. For at undgå frøstøj skal du kompilere kernen med flere basisfrø og overveje en gennemsnitlig fmax, mens du sammenligner fmax-resultater. - Sammenlign aldrig kernel fmax fra en basiskompilation med en flad- eller importkompilation. Kernel ur-mål er afslappet under basiskompilering, og du vil derfor aldrig opnå gode resultater.
- Observer kerne-urets kritiske sti i basis- eller importkompileringen. Hvis den kritiske sti krydser fra kernen til den statiske region i gulvplanen, skal du ændre gulvplanen eller køre nogle flere basisseeds for at undgå denne kritiske sti.
Retningslinjer for evaluering af BSP-ressourceudnyttelseseffektivitet
Jo højere ressourceudnyttelsesprocenttage, jo bedre er arealutnyttelsen i det statiske område på din BSP. En høj ressourceudnyttelsesprocenttage indebærer også, at flere ressourcer er tilgængelige for kerneregionen.
Følg nedenstående trin for at beregne ressourceudnyttelsesprocententage af din BSP:
- Få værdier for alle ressourcer i FPGA'en fra top.fit.rpt eller base.fit.rpt, der er tilgængelig under afsnittet Partitionsstatistik i Fitter-rapporten.
- Fratræk værdien for "freeze_wrapper_inst|kernel_system_inst" (kerneregion).
Tip:
Fokuser mere på værdierne af adaptive logic modul (ALM) end på værdierne af andre ressourcer. Sørg for, at ressourceudnyttelsen pcttage for ALM er tættere på OpenCL reference BSP. En meget høj procentdeltage for ALM kan føre til overbelastning, hvilket kan øge kompileringstiden og introducere routing-overbelastninger i komplekse kerner. Du kan dog altid øge eller formindske det statiske område og observere kompileringstiden og fmax.
Følgende tabel afspejler OpenCL BSP-ressourceudnyttelsen af Arria ® 10 GX-enheder i 17.0-udgivelsen.
Tabel 1.
OpenCL BSP-ressourceudnyttelse af IntelArria 10 GX-enheder i 17.0-versionen
I alt tilgængeligt | Reserveret til Kernel | Fås til BSP | Anvendes af BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71, % |
Registre | 1708800 | 1575200 | 133600 | 38913 | 29, % |
M2 OK | 2713 | 2534 | 179 | 134 | 75, % |
DSP | 1518 | 1518 | 0 | 0 | N/A |
Vær opmærksom på, at gulvplanlægningen udføres på en sådan måde, at det statiske område ikke vil have nogen DSP-blokke.
Revisionshistorik for dokument
Tabel 2.
Dokumentrevisionshistorik for Intel FPGA SDK til OpenCL Board Support Package Plantegningsoptimeringsvejledning
Dato | Version | Ændringer |
august-17 | Første udgivelse. |
Online Version
Send feedback
ID: 683312
AN-824
Version: 2017.08.08
AN 824: Intel® FPGA SDK til OpenCL™ Board
Supportpakke plantegningsoptimeringsvejledning
Dokumenter/ressourcer
![]() |
intel AN 824 FPGA SDK til OpenCL Board Support Package Gulvplan [pdfBrugervejledning AN 824 FPGA SDK til OpenCL Board Support Package Plantegning, AN 824, FPGA SDK for OpenCL Board Support Package Plantegning, OpenCL Board Support Package Plantegning, Board Support Package Plantegning, Support Package Plantegning, Pakke Plantegning, Plantegning |