AN 824 FPGA SDK për OpenCL Board
Plani i Katit të Paketës Mbështetëse
Udhëzues përdorimi
Intel® FPGA SDK për Udhëzues për optimizimin e planit të dyshemesë për Paketën e Mbështetjes së Bordit OpenCL™
Udhëzuesi i optimizimit të planit të dyshemesë Intel/® FPGA SDK për Paketën e Mbështetjes së Bordit OpenCL™ (BSP) ofron udhëzime për planifikimin e dyshemesë për OpenCL) BSP. Ai gjithashtu ofron udhëzime se si mund të blini farën bazë me frekuencën maksimale mesatare më të mirë të funksionimit dhe të vlerësoni efikasitetin e përdorimit të burimeve të BSP.
Ky dokument supozon se jeni njohur me konceptet OpenCL(2) siç përshkruhet në versionin 1.0 të Specifikimeve OpenCL nga Khronos Group.
Rrjedha e përpilimit të OpenCL BSP
OpenCL BSP mbështet llojet e mëposhtme të rrjedhave të përpilimit:
- Përpilimi i sheshtë [–bsp-flow flat]: Kryen një përmbledhje të sheshtë të të gjithë dizajnit (BSP së bashku me harduerin e krijuar nga kernel).
- Përpilimi bazë [–bsp-flow base]: Kryen një përpilim bazë duke përdorur kufizimet LogicLock nga base.qsf file. Objektivi i orës së kernelit është i relaksuar në mënyrë që pajisja BSP të ketë më shumë liri për të përmbushur kohën. Është krijuar një bazë të dhënash base.qar për të ruajtur harduerin BSP, i cili është rajoni statik.
- Importo përpilimin [ ]: Rikthen rajonin statik të mbyllur të kohës nga baza e të dhënave base.qar dhe përpilon vetëm harduerin e krijuar nga kernel. Ai gjithashtu rrit objektivin e orës së kernelit për të marrë frekuencën maksimale të funksionimit të kernelit (fmax).
Ndarja e planit të dyshemesë OpenCL BSP
Plani i dyshemesë OpenCL BSP ndahet kryesisht në dy rajonet e mëposhtme:
- Rajoni statik: Përfaqëson rajonin që ka harduer të lidhur me BSP që mbetet statik. Koha është e mbyllur për këtë rajon gjatë përpilimit të bazës. Në përgjithësi, qëllimi është të minimizohen burimet e çipave të përdorura nga ky rajon për të mbyllur kohën.
- Rajoni i kernelit: Përfaqëson rajonin e rikonfigurimit të pjesshëm (PR) që është i rezervuar për modulin freeze_wrapper_inst|kernel_system_inst, i cili përmban kernelin. Në përgjithësi, qëllimi është të rezervohen burimet e çipave në masën maksimale për këtë rajon.
- Intel FPGA SDK për OpenCL bazohet në një specifikim të publikuar të Khronos dhe ka kaluar procesin e testimit të konformitetit të Khronos. Statusi aktual i konformitetit mund të gjendet në www.khronos.org/conformance.
- OpenCL dhe logoja OpenCL janë marka tregtare të Apple Inc. dhe përdoren me lejen e Khronos Group™.
Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime.
*Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Udhëzime për Planifikimin e Katit të OpenCL BSP
- Filloni me përpilimin e sheshtë për të kuptuar se ku vendosen natyrshëm të gjithë përbërësit kryesorë të BSP (veçanërisht blloqet IP me lidhje I/O si PCIe ose DDR). Gjatë projektimit të BSP-së, mund t'ju duhet të konsideroni ngritjen e tubacionittagështë në mes të IP-ve për të mbyllur kohën. Fillimisht duhet të kryeni një pastrim të sheshtë të përpilimit të farës për të identifikuar shtigjet e dështimit të përsëritur dhe më pas të përpiqeni t'i rregulloni ato.
Këshillë: — Një shkallë e mirë e mbylljes së kohës mbi fshirjet e farës së përpilimit të sheshtë do të ketë shanse më të larta për të mbyllur kohën e përpilimit të bazës.
— Nëse vëreni dështime të vazhdueshme në mm_interconnect* (komponenti i shtuar nga Qsys), atëherë hapni Sistemin me Qsys Interconnect viewer dhe vëzhgoni kompleksitetin e ndërlidhjes së dështuar. Ju mund të shtoni flipflops tubacioni në viewer për të përmirësuar kohën. Nëse ende nuk mund ta trajtoni problemin, mund t'ju duhet të prishni shtegun kritik të mm_interconnect* duke shtuar urat e tubacionit Avalon. - Gjatë përpilimit të bazës, filloni me LogicLock në rajonin e kernelit që përmban freeze_wrapper_inst|kernel_system_inst. Pa kufizime të tjera, Intel Quartus Prime mund ta vendosë lirisht harduerin BSP në pjesën e mbetur statike të çipit. Përdorni përpiluesin e sheshtë dhe planifikuesin e çipit për të identifikuar madhësinë dhe vendndodhjen e harduerit BSP, si PCIe dhe DDR. Pastaj, rezervoni rajonin e kernelit duke përdorur LogicLock duke shmangur zonat kryesore të grupuara të harduerit BSP.
Këshillë: Nëse familja e çipave të përdorur është e njëjtë me platformën e referencës dhe nëse përbërësit BSP janë të ngjashëm, mund të jetë më e shpejtë të filloni me rajonet LogicLock për freeze_wrapper_inst|kernel_system_inst që dërgohet me BSP-në referencë OpenCL dhe të punoni me dështimet. - Ju mund të shtoni komponentët e mëposhtëm shtesë në BSP tuaj:
— Bankat e memories: Nëse shtoni më shumë banka memorie, duhet të identifikoni vendndodhjen e bankës I/O pasi mund t'ju duhet të shtoni ura tubacioni për të përmbushur kohën.
— Kanalet I/O: Mund të shtoni kanale I/O si video, Ethernet ose ndërfaqe serike. Nëse shtoni kanale I/O, duhet të identifikoni vendndodhjen e bankës I/O pasi mund t'ju duhet të aplikoni rajone të reja LogicLock për tubacion nëse koha e mbylljes është e vështirë.
Këshillë: Nëse keni nevojë të shtoni ura tubacioni (për shembullample, për shkak të vonesave të mëdha të rrugëtimit që shkaktojnë dështime të kohës), atëherë merrni parasysh distancën e rrugëtimit nga logjika e burimit në destinacion në çip dhe lironi pak hapësirë të rezervuar për rajonin e kernelit. - Ndiqni këto udhëzime të përgjithshme kur rezervoni rajone LogicLock për kernel:
— Përpiquni të vendosni të gjitha kolonat DSP në sistemin kernel, përveç nëse kërkohet nga BSP.
— Përpiquni të rezervoni më shumë burime për sistemin kernel.
— Përpiquni të mbani në minimum numrin e pikave në rajonin e kernelit.
Figura e mëposhtme ilustron një nivel që u shtua për të vendosur një urë tubacioni midis bankës PCIe dhe DDR.
Figura 1. Plani i dyshemesë OpenCL BSP për Intel Arria® 10 GX në versionin 17.0
Udhëzime për frekuencën maksimale të funksionimit
Frekuenca maksimale e funksionimit (fmax) e arritur nga kernelet varet kryesisht nga shpejtësia FPGA pasi shumica e IP-ve duhet të jenë tashmë të optimizuara. Sidoqoftë, mund të ketë disa humbje fmax në varësi të planit të dyshemesë së BSP. Për shembullampLe, zakonisht numri i prerjeve në rajonin e kernelit të BSP ndikon në fmax të kernelit.
Siç ilustrohet në figurën e mëposhtme, për të marrë farën bazë më të mirë që jep fmax mesatare më të mirë:
- Kryeni një spastrim të farës në përpilimin e bazës në vend që të zgjidhni farën e parë bazë që plotëson kohën.
- Kryeni përpilimin e importit (duke përdorur pak kernele nga p.shample designs) në të gjitha farat bazë që kalojnë.
- Llogaritni fmax mesatar për të gjitha farat bazë.
- Zgjidhni farën bazë që jep mesataren më të lartë fmax.
Fara bazë me fmax mesatare më të mirë është një kandidat i mirë për lëshim me BSP. Nëse vendosni të ndiqni një qasje të ndryshme nga hapat e rekomanduar, mund të vëzhgoni 5-10% ndryshim në fmax të procesit të përpilimit të importit të kernelit.
Figura 2. Identifikimi i farës bazë më të mirë
- Për të kuptuar se sa shpejt mund të funksionojë kerneli pa kufizime të planit të dyshemesë:
1. Kryeni një përmbledhje të sheshtë të kernelit dhe vëzhgoni fmax.
2. Kryeni një përmbledhje importi në të njëjtin kernel dhe vëzhgoni fmax.
3. Krahasoni rezultatet e fmax.
Për shkak të kufizimeve të planit të dyshemesë, fmax e përpilimit të importit është gjithmonë më e ulët se fmax e përpilimit të sheshtë. Për të shmangur zhurmën e farës, përpiloni bërthamën me më shumë fara bazë dhe merrni parasysh një fmax mesatar ndërsa krahasoni rezultatet e fmax. - Asnjëherë mos e krahasoni kernel fmax nga një përmbledhje bazë me një kompilim të sheshtë ose import. Objektivat e orës së kernelit relaksohen gjatë përpilimit të bazës dhe për këtë arsye, nuk do të arrini kurrë rezultate të mira.
- Vëzhgoni rrugën kritike të orës së kernelit në përpilimin e bazës ose importit. Nëse rruga kritike po kalon nga bërthama në rajonin statik në planimetrinë e dyshemesë, ndryshoni planimetrinë e dyshemesë ose vendosni disa fara të tjera bazë për të shmangur këtë shteg kritik.
Udhëzime për Vlerësimin e Efikasitetit të Shfrytëzimit të Burimeve BSP
Sa më e lartë të jetë përqindja e përdorimit të burimevetage, aq më i mirë është përdorimi i zonës në zonën statike të BSP-së tuaj. Një përqindje e lartë e përdorimit të burimevetage gjithashtu nënkupton që më shumë burime janë në dispozicion për rajonin e kernelit.
Ndiqni hapat e mëposhtëm për të llogaritur përqindjen e përdorimit të burimevetage të BSP-së tuaj:
- Merrni vlerat për të gjitha burimet në FPGA nga top.fit.rpt ose base.fit.rpt të disponueshme në seksionin Statistikat e ndarjeve të raportit Fitter.
- Zbrisni vlerën për "freeze_wrapper_inst|kernel_system_inst" (rajoni i kernelit).
Këshillë:
Përqendrohuni më shumë në vlerat e modulit të logjikës adaptive (ALM) sesa në vlerat e burimeve të tjera. Sigurohuni që përqindja e shfrytëzimit të burimevetage për ALM është më afër referencës OpenCL BSP. Një përqindje shumë e lartëtage për ALM mund të çojë në mbingarkesë, gjë që mund të rrisë kohën e përpilimit dhe të prezantojë bllokime të rrugëtimit në kernelet komplekse. Sidoqoftë, gjithmonë mund të rrisni ose ulni zonën e rajonit statik dhe të vëzhgoni kohën e përpilimit dhe fmax.
Tabela e mëposhtme pasqyron përdorimin e burimeve OpenCL BSP të pajisjeve Arria ® 10 GX në versionin 17.0.
Tabela 1.
Përdorimi i burimeve OpenCL BSP i pajisjeve IntelArria 10 GX në versionin 17.0
Gjithsej në dispozicion | Rezervuar për Kernel | Në dispozicion për BSP | Përdoret nga BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71.% |
Regjistrat | 1708800 | 1575200 | 133600 | 38913 | 29.% |
M2OK | 2713 | 2534 | 179 | 134 | 75.% |
DSP | 1518 | 1518 | 0 | 0 | N/A |
Vini re se planifikimi i dyshemesë është ekzekutuar në atë mënyrë që rajoni statik të mos ketë blloqe DSP.
Historia e rishikimit të dokumentit
Tabela 2.
Historia e rishikimit të dokumentit të Intel FPGA SDK për Paketën e Mbështetjes së Bordit OpenCL Udhëzues për optimizimin e planit të dyshemesë
Data | Versioni | Ndryshimet |
gusht-17 | Lëshimi fillestar. |
Versioni Online
Dërgo koment
ID: 683312
AN-824
Versioni: 2017.08.08
AN 824: Intel® FPGA SDK për OpenCL™ Board
Udhëzues për optimizimin e planit të katit të paketës mbështetëse
Dokumentet / Burimet
![]() |
intel AN 824 FPGA SDK për Planin e Katit të Paketës së Mbështetjes së Bordit OpenCL [pdfUdhëzuesi i përdoruesit AN 824 FPGA SDK për Planin e Katit të Paketës së Mbështetjes së Bordit të OpenCL, AN 824, FPGA SDK për Paketën e Mbështetjes së Bordit OpenCL, Plani i dyshemesë i paketës së mbështetjes së bordit OpenCL, Plani i dyshemesë i paketës së mbështetjes së bordit, plani i dyshemesë i paketës mbështetëse, plani i dyshemesë i paketës mbështetëse, plani i dyshemesë i paketës, plani i dyshemesë |