EEN 824 FPGA SDK voor OpenCL Board
Ondersteuningspakket Plattegrond
Gebruikershandleiding
Intel® FPGA SDK voor OpenCL ™ bordondersteuningspakket Gids voor optimalisatie van plattegronden
De Intel/® FPGA SDK voor OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide biedt richtlijnen voor plattegronden voor OpenCL) BSP. Het biedt ook richtlijnen over hoe u het basiszaad kunt verkrijgen met de beste gemiddelde maximale werkfrequentie en hoe u de efficiëntie van het gebruik van BSP-bronnen kunt evalueren.
Dit document gaat ervan uit dat u bekend bent met OpenCL(2)-concepten zoals beschreven in de OpenCL-specificatie versie 1.0 van de Khronos Group.
OpenCL BSP-compilatiestroom
OpenCL BSP ondersteunt de volgende soorten compileerstromen:
- Platte compilatie [–bsp-flow flat]: Voert een platte compilatie uit van het volledige ontwerp (BSP samen met door de kernel gegenereerde hardware).
- Basiscompilatie [–bsp-flow base]: Voert een basiscompilatie uit met behulp van LogicLock-beperkingen van base.qsf file. Het doel van de kernelklok is versoepeld, zodat de BSP-hardware meer vrijheid heeft om aan de timing te voldoen. Er wordt een base.qar-database gemaakt om de BSP-hardware, de statische regio, te behouden.
- Importeren compileren [ ]: herstelt de timing gesloten statische regio van de base.qar-database en compileert alleen de door de kernel gegenereerde hardware. Het verhoogt ook het doel van de kernelklok om de beste maximale werkfrequentie (fmax) van de kernel te verkrijgen.
OpenCL BSP-plattegrondpartitie
OpenCL BSP-plattegrond is hoofdzakelijk verdeeld in de volgende twee regio's:
- Statische regio: Vertegenwoordigt de regio met BSP-gerelateerde hardware die statisch blijft. De timing is gesloten voor deze regio tijdens de basiscompilatie. Over het algemeen is het doel om de chipbronnen die door deze regio worden gebruikt, te minimaliseren om de timing te sluiten.
- Kernelregio: Vertegenwoordigt de gedeeltelijke herconfiguratie (PR)-regio die is gereserveerd voor de freeze_wrapper_inst|kernel_system_inst module, die de kernel bevat. Over het algemeen is het doel om chipbronnen maximaal te reserveren voor deze regio.
- De Intel FPGA SDK voor OpenCL is gebaseerd op een gepubliceerde Khronos-specificatie en heeft het Khronos-conformiteitstestproces doorstaan. De huidige conformiteitsstatus is te vinden op www.khronos.org/conformance.
- OpenCL en het OpenCL-logo zijn handelsmerken van Apple Inc. en worden gebruikt met toestemming van de Khronos Group™.
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en services. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk door Intel is overeengekomen. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze bestellingen voor producten of diensten plaatsen.
*Andere namen en merken kunnen eigendom van anderen zijn.
Richtlijnen voor OpenCL BSP Floorplanning
- Begin met platte compilatie om te begrijpen waar alle hoofdcomponenten van de BSP op natuurlijke wijze worden geplaatst (vooral de IP-blokken met I/O-verbindingen zoals PCIe of DDR). Bij het ontwerpen van de BSP moet u misschien overwegen om pijplijnen op te zettentages tussen de IP's om de timing te sluiten. U moet eerst een platte compile-seed-sweep uitvoeren om de terugkerende falende paden te identificeren en vervolgens proberen ze te repareren.
Tip: - Een goede timing-sluitingssnelheid boven flat compile seed sweeps zal een grotere kans hebben om de basiscompilatie-timing te sluiten.
— Als u consistente fouten waarneemt in mm_interconnect* (component toegevoegd door Qsys), open dan het systeem met Qsys Interconnect viewen observeer de complexiteit van de falende interconnect. U kunt pipelining-flipflops toevoegen in de viewer om de timing te verbeteren. Als u het probleem nog steeds niet kunt oplossen, moet u mogelijk het kritieke pad mm_interconnect* opsplitsen door Avalon-pijplijnbruggen toe te voegen. - Begin tijdens de basiscompilatie met LogicLock op de kernelregio die freeze_wrapper_inst|kernel_system_inst bevat. Zonder andere beperkingen kan Intel Quartus Prime de BSP-hardware vrij in het resterende statische gebied van de chip plaatsen. Gebruik de platte compileer- en chipplanner om de grootte en locatie van de BSP-hardware te identificeren, zoals PCIe en DDR. Reserveer vervolgens de kernelregio door LogicLock te gebruiken terwijl u de belangrijkste geclusterde gebieden van de BSP-hardware vermijdt.
Tip: Als de gebruikte chipfamilie dezelfde is als die van het referentieplatform en als de BSP-componenten vergelijkbaar zijn, kan het sneller zijn om te beginnen met de LogicLock-regio's voor freeze_wrapper_inst|kernel_system_inst die wordt meegeleverd met de OpenCL-referentie-BSP en de fouten te verhelpen. - U kunt de volgende aanvullende componenten aan uw BSP toevoegen:
— Geheugenbanken: als u meer geheugenbanken toevoegt, moet u de locatie van de I/O-bank identificeren, aangezien u mogelijk pijplijnbruggen moet toevoegen om aan de timing te voldoen.
— I/O-kanalen: u kunt I/O-kanalen toevoegen, zoals video, Ethernet of seriële interface. Als u I/O-kanalen toevoegt, moet u de locatie van de I/O-bank identificeren, aangezien u mogelijk nieuwe LogicLock-regio's voor pipelining moet toepassen als de sluitingstijd moeilijk is.
Tip: Als u pijpleidingbruggen moet toevoegen (bijvample, vanwege grote routeringsvertragingen die timingfouten veroorzaken), overweeg dan de routeringsafstand van bron- naar bestemmingslogica in de chip en maak wat ruimte vrij die is gereserveerd voor het kernelgebied. - Volg deze algemene richtlijnen bij het reserveren van LogicLock-regio's voor de kernel:
— Poging om alle DSP-kolommen in het kernel_system te plaatsen, tenzij vereist door de BSP.
— Poging om meer bronnen te reserveren voor het kernel_system.
— Probeer het aantal inkepingen in het kernelgebied tot een minimum te beperken.
De volgende afbeelding illustreert een inkeping die is toegevoegd om een pijplijnbrug tussen PCIe en DDR-bank te plaatsen.
Afbeelding 1. OpenCL BSP-plattegrond voor Intel Arria® 10 GX in release 17.0
Richtlijnen voor maximale werkfrequentie
De maximale werkfrequentie (fmax) die door kernels wordt bereikt, hangt grotendeels af van de FPGA-snelheid, aangezien de meeste IP's al zouden moeten zijn geoptimaliseerd. Er kunnen echter enkele fmax-verliezen zijn, afhankelijk van de BSP-plattegrond. Voor bijvample, heeft meestal het aantal uitsnijdingen in het kernelgebied van BSP invloed op kernel fmax.
Zoals geïllustreerd in de volgende afbeelding, om het beste basiszaad te verkrijgen dat de beste gemiddelde fmax oplevert:
- Voer een seed-sweep uit op de basiscompilatie in plaats van de eerste basisseed te selecteren die voldoet aan de timing.
- Voer een importcompilatie uit (door enkele kernels van de example designs) op alle passerende basiszaden.
- Bereken de gemiddelde fmax voor alle basiszaden.
- Selecteer het basiszaad dat de hoogste gemiddelde fmax oplevert.
Het basiszaad met de beste gemiddelde fmax is een goede kandidaat voor vrijgave met BSP. Als u besluit een andere aanpak te volgen dan de aanbevolen stappen, ziet u mogelijk 5-10% variatie in de fmax van het kernel-importcompilatieproces.
Figuur 2. Identificatie van het beste basiszaad
- Om te begrijpen hoe snel de kernel kan draaien zonder beperkingen op de plattegrond:
1. Voer een platte compilatie van de kernel uit en observeer de fmax.
2. Voer een importcompilatie uit op dezelfde kernel en observeer de fmax.
3. Vergelijk fmax-resultaten.
Vanwege de plattegrondbeperkingen is import compile fmax altijd lager dan flat compile fmax. Om seed-ruis te voorkomen, compileert u de kernel met meer basisseeds en houdt u rekening met een gemiddelde fmax bij het vergelijken van fmax-resultaten. - Vergelijk nooit kernel fmax van een basiscompilatie met een platte of een importcompilatie. Kernelklokdoelen zijn ontspannen tijdens basiscompilatie en daarom zult u nooit goede resultaten behalen.
- Observeer het kritieke pad van de kernelklok in de basis- of importcompilatie. Als het kritieke pad van de kernel naar het statische gebied in de plattegrond kruist, verander dan de plattegrond of voer nog een paar basiszaden uit om dit kritieke pad te vermijden.
Richtlijnen voor het evalueren van de efficiëntie van het gebruik van BSP-bronnen
Hoe hoger het resourcegebruikspercentagetage, hoe beter het gebiedsgebruik in het statische gebied van uw BSP. Een hoog resourcegebruikspercentagetage impliceert ook dat er meer bronnen beschikbaar zijn voor de kernelregio.
Volg de onderstaande stappen om het resourcegebruikspercentage te berekenentage van uw BSP:
- Verkrijg waarden voor alle bronnen in de FPGA uit de top.fit.rpt of base.fit.rpt die beschikbaar zijn in het gedeelte Partitiestatistieken van het Fitter-rapport.
- Trek de waarde af voor "freeze_wrapper_inst|kernel_system_inst" (kernelregio).
Tip:
Richt u meer op de waarden van de adaptieve logische module (ALM) dan op de waarden van andere bronnen. Zorg ervoor dat het resourcegebruikspercentagetage voor ALM ligt dichter bij de OpenCL-referentie-BSP. Een zeer hoog percentagetage voor ALM kan leiden tot congestie, wat de compilatietijd kan verlengen en routeringscongesties in complexe kernels kan introduceren. U kunt echter altijd het statische gebied vergroten of verkleinen en de compilatietijd en fmax observeren.
De volgende tabel geeft het OpenCL BSP-resourcegebruik weer van Arria ® 10 GX-apparaten in de 17.0-release.
Tabel 1.
OpenCL BSP-brongebruik van IntelArria 10 GX-apparaten in release 17.0
Totaal beschikbaar | Gereserveerd voor Kernel | Beschikbaar voor BSP | Gebruikt door BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71,% |
Registers | 1708800 | 1575200 | 133600 | 38913 | 29,% |
M2OK | 2713 | 2534 | 179 | 134 | 75,% |
DSP | 1518 | 1518 | 0 | 0 | n.v.t. |
Merk op dat de floorplanning zo wordt uitgevoerd dat het statische gebied geen DSP-blokken heeft.
Document revisiegeschiedenis
Tabel 2.
Documentrevisiegeschiedenis van de Intel FPGA SDK voor OpenCL Board Support Package Floorplan Optimization Guide
Datum | Versie | Wijzigingen |
Augustus-17 | Eerste release. |
Online versie
Feedback verzenden
ID: 683312
Een-824
Versie: 2017.08.08
AN 824: Intel® FPGA SDK voor OpenCL™ Board
Ondersteuningspakket Plattegrond Optimalisatie Gids
Documenten / Bronnen
![]() |
intel AN 824 FPGA SDK voor OpenCL Board Support Package Plattegrond [pdf] Gebruikershandleiding AN 824 FPGA SDK voor OpenCL Board Ondersteuningspakket Plattegrond, AN 824, FPGA SDK voor OpenCL Board Ondersteuningspakket Plattegrond, OpenCL Board Ondersteuningspakket Plattegrond, Bordondersteuningspakket Plattegrond, Ondersteuningspakket Plattegrond, Pakket Plattegrond, Plattegrond |