Inteli logo824 FPGA SDK OpenCL-plaadi jaoks
Tugipaketi korruseplaan
Kasutusjuhend

 Intel® FPGA SDK jaoks OpenCL ™ tahvli tugipaketi korruseplaani optimeerimise juhend
Intel/® FPGA SDK OpenCL™ Board Support Package (BSP) põrandaplaani optimeerimise juhend pakub OpenCL) BSP põrandaplaneerimise juhiseid. See annab ka juhiseid selle kohta, kuidas hankida parima keskmise maksimaalse töösagedusega baasseemnet ja hinnata BSP ressursside kasutamise tõhusust.
See dokument eeldab, et olete tuttav OpenCL(2) kontseptsioonidega, nagu on kirjeldatud Khronos Groupi OpenCL-i spetsifikatsiooni versioonis 1.0.

OpenCL BSP kompileerimisvoog
OpenCL BSP toetab järgmist tüüpi kompileerimisvooge:

  • Lame kompileerimine [–bsp-flow flat]: teostab kogu kujunduse (BSP koos tuuma genereeritud riistvaraga) lame kompileerimise.
  • Põhikompileerimine [–bsp-flow base]: teostab baaskompilatsiooni, kasutades LogicLocki piiranguid failist base.qsf file. Kerneli kella sihtmärk on lõdvestunud, nii et BSP riistvaral on ajastuse täitmiseks rohkem vabadust. BSP riistvara säilitamiseks luuakse andmebaas base.qar, mis on staatiline piirkond.
  • Impordi kompil [ ]: taastab base.qar andmebaasist ajastuse suletud staatilise piirkonna ja kompileerib ainult kerneli loodud riistvara. Samuti suurendab see kerneli kella sihtmärki, et saada parim tuuma maksimaalne töösagedus (fmax).

OpenCL BSP korruseplaani vahesein
OpenCL BSP põrandaplaan jaguneb peamiselt kaheks järgmiseks piirkonnaks:

  • Staatiline piirkond: tähistab piirkonda, kus on BSP-ga seotud riistvara, mis jääb staatiliseks. Ajastus on selle piirkonna jaoks baaskoostamise ajal suletud. Üldiselt on eesmärk minimeerida selle piirkonna kiibiressursse, mida sulgemise ajastus kasutab.
  • Kerneli piirkond: tähistab osalise ümberkonfigureerimise (PR) piirkonda, mis on reserveeritud tuuma sisaldava mooduli freeze_wrapper_inst|kernel_system_inst jaoks. Üldjuhul on eesmärk reserveerida kiibiressursse maksimaalselt sellele piirkonnale.
  1. Inteli FPGA SDK for OpenCL põhineb avaldatud Khronose spetsifikatsioonil ja on läbinud Khronose vastavustestimise protsessi. Praeguse vastavusseisundi leiate aadressilt www.khronos.org/conformance.
  2. OpenCL ja OpenCL logo on Apple Inc. kaubamärgid ja neid kasutatakse Khronos Group™ loal.

Intel Corporation. Kõik õigused kaitstud. Intel, Inteli logo ja muud Inteli kaubamärgid on Intel Corporationi või selle tütarettevõtete kaubamärgid. Intel garanteerib oma FPGA ja pooljuhttoodete toimimise praeguste spetsifikatsioonide kohaselt vastavalt Inteli standardgarantiile, kuid jätab endale õiguse teha mis tahes tooteid ja teenuseid igal ajal ilma ette teatamata. Intel ei võta endale mingit vastutust ega kohustusi, mis tulenevad siin kirjeldatud teabe, toote või teenuse rakendusest või kasutamisest, välja arvatud juhul, kui Intel on sellega sõnaselgelt kirjalikult nõustunud. Inteli klientidel soovitatakse hankida seadme spetsifikatsioonide uusim versioon enne avaldatud teabele tuginemist ja enne toodete või teenuste tellimuste esitamist.
*Teisi nimesid ja kaubamärke võidakse pidada teiste omandiks.

OpenCL BSP põrandaplaneerimise juhised

  • Alustage lame kompileerimisega, et mõista, kuhu kõik BSP peamised komponendid loomulikult paigutatakse (eriti IP-plokid I/O-ühendustega, nagu PCIe või DDR). BSP kavandamisel peate võib-olla kaaluma torujuhtmete loomisttages IP-de vahel, et sulgeda. Korduvate ebaõnnestumistee tuvastamiseks peaksite esmalt käivitama tasase kompileerimise seemnepühkimise ja seejärel proovima neid parandada.
    Näpunäide. — Kui kompileerimise aeg on hea sulgemiskiirus võrreldes tasase kompileerimise seemnepühkimisega, on suurem tõenäosus baaskompileerimise ajastuse sulgemiseks.
    — Kui märkate järjekindlaid tõrkeid rakenduses mm_interconnect* (Qsysi lisatud komponent), avage süsteem Qsys Interconnectiga viewer ja jälgige rikkega ühenduse keerukust. Saate lisada torujuhtmete plätud viewet ajastust parandada. Kui te ikka ei saa probleemi lahendada, peate võib-olla katkestama mm_interconnect* kriitilise tee, lisades Avaloni torujuhtme sillad.
  • Põhikompileerimise ajal alustage LogicLockiga kerneli piirkonnas, mis sisaldab freeze_wrapper_inst|kernel_system_inst. Ilma muude piiranguteta saab Intel Quartus Prime paigutada BSP riistvara vabalt kiibi ülejäänud staatilisesse piirkonda. BSP riistvara (nt PCIe ja DDR) suuruse ja asukoha tuvastamiseks kasutage lamedat kompilaatorit ja kiibiplaneerijat. Seejärel reserveerige kerneli piirkond LogicLocki abil, vältides samal ajal BSP riistvara peamisi rühmitatud alasid.
    Näpunäide. Kui kasutatav kiibiperekond on sama mis võrdlusplatvormil ja kui BSP komponendid on sarnased, võib olla kiirem alustada OpenCL-i viite-BSP-ga tarnitud freeze_wrapper_inst|kernel_system_inst LogicLocki piirkondadega ja tõrked kõrvaldada.
  • Võite oma BSP-le lisada järgmised lisakomponendid.
    — Mälupangad: kui lisate rohkem mälupankasid, peaksite tuvastama I/O panga asukoha, kuna võib-olla peate ajastuse järgimiseks lisama konveiersildasid.
    — I/O kanalid: saate lisada I/O kanaleid, nagu video, Ethernet või jadaliides. Kui lisate I/O kanaleid, peaksite tuvastama I/O panga asukoha, sest kui sulgemise ajastus on keeruline, peate võib-olla rakendama konveieri jaoks uusi LogicLocki piirkondi.
    Näpunäide: kui teil on vaja lisada torujuhtme sildu (ntample, suurte marsruutimisviivituste tõttu, mis põhjustavad ajastustõrkeid), siis arvestage marsruutimise kaugust allikast sihtkohani kiibis ja vabastage kerneli piirkonna jaoks reserveeritud ruumi.
  • LogicLocki piirkondade reserveerimisel kernelile järgige neid üldisi juhiseid.
    — Proovige paigutada kõik DSP veerud kernel_süsteemi, kui BSP seda ei nõua.
    — Proovige reserveerida süsteemi kernel_süsteemi jaoks rohkem ressursse.
    — Püüdke hoida sälkude arv tuuma piirkonnas minimaalsena.
    Järgmine joonis illustreerib sälku, mis lisati torujuhtme silla paigutamiseks PCIe ja DDR-panga vahele.

Joonis 1. OpenCL BSP põrandaplaan Intel Arria® 10 GX jaoks 17.0 versioonis

intel AN 824 FPGA SDK OpenCL Board Support Package Floorplan jaoks

Maksimaalse töösageduse juhised
Tuumade saavutatav maksimaalne töösagedus (fmax) sõltub suuresti FPGA kiirusest, kuna enamik IP-sid peaks olema juba optimeeritud. Sõltuvalt BSP põrandaplaanist võib siiski esineda mõningaid fmax-i kaotusi. Näiteksample, tavaliselt mõjutab väljalõigete arv BSP kerneli piirkonnas kerneli fmax.
Nagu on näidatud järgmisel joonisel, et saada parim alusseemne, mis annab parima keskmise fmax-i:

  1. Tehke algkoostisele seemnete pühkimine selle asemel, et valida esimene ajastusele vastav baasseemne.
  2. Tehke impordi kompileerimine (kasutades mõnda tuuma example designs) kõikidel läbivatel alusseemnetel.
  3. Arvutage kõigi baasseemnete keskmine fmax.
  4. Valige baasseeme, mis annab suurima keskmise fmax.
    Parima keskmise fmax-iga baasseeme on hea kandidaat BSP-ga vabastamiseks. Kui otsustate järgida soovitatud sammudest erinevat lähenemisviisi, võite täheldada kerneli impordi kompileerimisprotsessi fmax-i 5–10% varieerumist.

Joonis 2. Parima algseemne väljaselgitamineintel AN 824 FPGA SDK OpenCL-i plaadi tugipaketi põhiplaani jaoks – joon.

  • Et mõista, kui kiiresti võib tuum ilma põrandaplaani piiranguteta töötada:
    1. Tehke tuumast lame kompilatsioon ja jälgige fmax.
    2. Tehke importimise kompileerimine samal tuumal ja jälgige fmax.
    3. Võrrelge fmax tulemusi.
    Põrandaplaani piirangute tõttu on impordikompileerimise fmax alati väiksem kui lamekompileerimise fmax. Seemnemüra vältimiseks kompileerige kernel rohkema baasseemnetega ja arvestage fmax tulemuste võrdlemisel keskmist fmax-i.
  • Ärge kunagi võrrelge kerneli fmaxi põhikompilatsioonist lame- või impordikompilatsiooniga. Kerneli kella sihtmärgid on baaskompileerimise ajal lõdvestunud ja seega ei saa te kunagi häid tulemusi.
  • Jälgige kerneli kella kriitilist teed baas- või impordikompilatsioonis. Kui kriitiline tee ristub tuumast põrandaplaani staatilise piirkonnani, muutke korruseplaani või käivitage selle kriitilise tee vältimiseks veel mõned baasseemned.

Juhised BSP ressursside kasutamise tõhususe hindamiseks

Mida suurem on ressursikasutuse protsenttage, seda parem on pindala kasutamine teie BSP staatilises piirkonnas. Kõrge ressursikasutuse protsenttage tähendab ka seda, et kerneli piirkonna jaoks on saadaval rohkem ressursse.
Järgige allolevaid samme, et arvutada ressursikasutuse protsentitage teie BSP-st:

  1. Hankige kõigi FPGA ressursside väärtused failist top.fit.rpt või base.fit.rpt, mis on saadaval Fitteri aruande jaotises Partition Statistics.
  2. Lahutage väärtuse "freeze_wrapper_inst|kernel_system_inst" (kerneli piirkond).

Näpunäide:
Keskenduge rohkem adaptiivse loogikamooduli (ALM) väärtustele kui muude ressursside väärtustele. Veenduge, et ressursikasutus protsentidestage ALM jaoks on lähemal OpenCL-i viite-BSP-le. Väga kõrge protsenttage ALM-i puhul võib põhjustada ülekoormust, mis võib pikendada kompileerimisaega ja tekitada keerulistes tuumades marsruutimise ummikuid. Siiski saate alati suurendada või vähendada staatilise piirkonna pindala ning jälgida kompileerimisaega ja fmax.
Järgmine tabel kajastab OpenCL BSP ressursikasutust Arria ® 10 GX seadmetes versioonis 17.0.

Tabel 1.
IntelArria 10 GX seadmete OpenCL BSP ressursside kasutamine 17.0 versioonis

Saadaval kokku Reserveeritud Kerneli jaoks Saadaval BSP jaoks Kasutab BSP 0/0
ALM 427200 393800 33400 23818. 71%
Registrid 1708800 1575200 133600 38913 29%
M2OK 2713 2534 179 134 75%
DSP 1518 1518 0 0 Ei kehti

Jälgige, et korruse planeerimine oleks teostatud nii, et staatilises piirkonnas ei oleks DSP plokke.

Dokumendi läbivaatamise ajalugu

Tabel 2.
Dokumenteerige Intel FPGA SDK versioonide ajalugu OpenCL-plaadi tugipaketi põhiplaani optimeerimise juhend

Kuupäev Versioon Muudatused
august-17 Esialgne vabastamine.

ikooni Online versioon
cardo 590878 Spirit Bluetooth Intercom – ICON 14 Saada tagasisidet
ID: 683312
AN-824
Versioon: 2017.08.08
AN 824: Intel® FPGA SDK OpenCL™ plaadile

Tugipaketi korruseplaani optimeerimise juhend

Dokumendid / Ressursid

intel AN 824 FPGA SDK OpenCL Board Support Package Floorplan jaoks [pdfKasutusjuhend
AN 824 FPGA SDK OpenCL-i tahvli tugipaketi korruseplaani jaoks, AN 824, FPGA SDK OpenCL-i tahvli tugipaketi korruseplaani jaoks, OpenCL-i tahvli tugipaketi korruseplaan, tahvli tugipaketi korruseplaan, tugipaketi korruseplaan, paketi korruseplaan, korruseplaan

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *