sigla intelAN 824 FPGA SDK pentru placa OpenCL
Pachet de suport Plan de etaj
Ghidul utilizatorului

 Intel® FPGA SDK pentru Ghid de optimizare a planului de etaj al pachetului de suport pentru plăci OpenCL ™
Ghidul de optimizare a planului de etaj Intel/® FPGA SDK pentru OpenCL™ Board Support Package (BSP) oferă ghiduri de planificare a etajului pentru OpenCL) BSP. De asemenea, oferă îndrumări despre cum puteți achiziționa semințele de bază cu cea mai bună frecvență medie de operare maximă și pentru a evalua eficiența utilizării resurselor BSP.
Acest document presupune că sunteți familiarizat cu conceptele OpenCL(2) așa cum sunt descrise în specificația OpenCL versiunea 1.0 de către grupul Khronos.

Flux de compilare OpenCL BSP
OpenCL BSP acceptă următoarele tipuri de fluxuri de compilare:

  • Compilare plată [–bsp-flow flat]: Efectuează o compilare plată a întregului design (BSP împreună cu hardware-ul generat de kernel).
  • Compilare de bază [–bsp-flow base]: Efectuează o compilare de bază utilizând restricțiile LogicLock din base.qsf file. Ținta ceasului kernelului este relaxată, astfel încât hardware-ul BSP să aibă mai multă libertate de a îndeplini sincronizarea. O bază de date base.qar este creată pentru a păstra hardware-ul BSP, care este regiunea statică.
  • Import compilare [ ]: Restaurează regiunea statică închisă de sincronizare din baza de date base.qar și compilează numai hardware-ul generat de kernel. De asemenea, crește ținta ceasului nucleului pentru a obține cea mai bună frecvență maximă de operare a nucleului (fmax).

Partiție pentru planul de etaj OpenCL BSP
Planul OpenCL BSP este împărțit în principal în următoarele două regiuni:

  • Regiunea statică: reprezintă regiunea cu hardware asociat BSP care rămâne static. Timpul este închis pentru această regiune în timpul compilării bazei. În general, scopul este de a minimiza resursele de cip utilizate de această regiune pentru a închide sincronizarea.
  • Regiunea kernel: reprezintă regiunea de reconfigurare parțială (PR) care este rezervată pentru modulul freeze_wrapper_inst|kernel_system_inst, care conține nucleul. În general, scopul este de a rezerva resurse de cip într-o măsură maximă pentru această regiune.
  1. SDK-ul Intel FPGA pentru OpenCL se bazează pe o specificație Khronos publicată și a trecut procesul de testare a conformității Khronos. Starea actuală de conformitate poate fi găsită la www.khronos.org/conformance.
  2. OpenCL și sigla OpenCL sunt mărci comerciale ale Apple Inc. și sunt utilizate cu permisiunea Khronos Group™.

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii.
*Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Linii directoare pentru Planificarea etajului OpenCL BSP

  • Începeți cu compilarea plată pentru a înțelege unde sunt plasate în mod natural toate componentele principale ale BSP (în special blocurile IP cu conexiuni I/O, cum ar fi PCIe sau DDR). În timp ce proiectați BSP, ar putea fi necesar să luați în considerare stabilirea conductelortageste între IP-uri pentru a închide sincronizarea. Mai întâi ar trebui să rulați o analiză de bază de compilare plată pentru a identifica căile recurente care eșuează și apoi să încercați să le remediați.
    Sfat: — O rată bună de închidere a timpului în comparație cu măturarea semințelor de compilare plată va avea șanse mai mari de închidere a timpului de compilare de bază.
    — Dacă observați defecțiuni constante în mm_interconnect* (componentă adăugată de Qsys), atunci deschideți Sistemul cu Qsys Interconnect viewer și observați complexitatea interconexiunii eșuate. Puteți adăuga flipflops de pipelining în viewer pentru a îmbunătăți sincronizarea. Dacă tot nu reușiți să rezolvați problema, este posibil să trebuiască să distrugeți calea critică mm_interconnect* prin adăugarea de poduri de conducte Avalon.
  • În timpul compilării de bază, începeți cu LogicLock pe regiunea nucleului care conține freeze_wrapper_inst|kernel_system_inst. Fără alte restricții, Intel Quartus Prime poate plasa hardware-ul BSP liber în regiunea statică rămasă a cipului. Utilizați compilarea plată și planificatorul de cip pentru a identifica dimensiunea și locația hardware-ului BSP, cum ar fi PCIe și DDR. Apoi, rezervați regiunea nucleului utilizând LogicLock evitând în același timp zonele principale grupate ale hardware-ului BSP.
    Sfat: Dacă familia de cipuri utilizată este aceeași cu platforma de referință și dacă componentele BSP sunt similare, ar putea fi mai rapid să începeți cu regiunile LogicLock pentru freeze_wrapper_inst|kernel_system_inst care este livrat cu BSP de referință OpenCL și să rezolvați eșecurile.
  • Puteți adăuga următoarele componente suplimentare la BSP:
    — Bănci de memorie: dacă adăugați mai multe bănci de memorie, ar trebui să identificați locația băncii de I/O, deoarece poate fi necesar să adăugați punți de conducte pentru a respecta sincronizarea.
    — Canale I/O: puteți adăuga canale I/O, cum ar fi interfața video, Ethernet sau serială. Dacă adăugați canale I/O, ar trebui să identificați locația băncii de I/O, deoarece s-ar putea să fie necesar să aplicați noi regiuni LogicLock pentru pipeline dacă momentul de închidere este dificil.
    Sfat: Dacă trebuie să adăugați poduri de conducte (de example, din cauza întârzierilor mari de rutare care cauzează eșecuri de sincronizare), apoi luați în considerare distanța de rutare de la logica sursă la destinație în cip și eliberați spațiu rezervat pentru regiunea nucleului.
  • Urmați aceste instrucțiuni generale atunci când rezervați regiuni LogicLock pentru nucleu:
    — Încercați să plasați toate coloanele DSP în sistemul kernel_system, cu excepția cazului în care este solicitat de BSP.
    — Încercați să rezervați mai multe resurse pentru sistemul_kernel.
    — Încercați să mențineți la minimum numărul de crestături din regiunea nucleului.
    Următoarea figură ilustrează o crestătură care a fost adăugată pentru a plasa o punte de conductă între PCIe și banca DDR.

Figura 1. Planul de etaj OpenCL BSP pentru Intel Arria® 10 GX în versiunea 17.0

Intel AN 824 FPGA SDK pentru OpenCL Board Support Package Floorplan

Ghid pentru frecvența maximă de operare
Frecvența maximă de operare (fmax) atinsă de nuclee depinde în mare măsură de viteza FPGA, deoarece majoritatea IP-urilor ar trebui deja optimizate. Cu toate acestea, ar putea exista unele pierderi fmax în funcție de planul BSP. De exampde obicei, numărul de decupaje din regiunea nucleului BSP afectează fmax-ul nucleului.
După cum este ilustrat în figura următoare, pentru a obține cea mai bună sămânță de bază care produce cel mai bun fmax mediu:

  1. Efectuați o măturare a semințelor pe compilarea de bază în loc să selectați prima sămânță de bază care îndeplinește calendarul.
  2. Efectuați compilarea de import (prin folosirea câtorva nuclee din example designs) pe toate semințele de bază care trec.
  3. Calculați fmax mediu pentru toate semințele de bază.
  4. Selectați sămânța de bază care dă cel mai mare fmax mediu.
    Sămânța de bază cu cel mai bun fmax mediu este un bun candidat pentru eliberare cu BSP. Dacă decideți să urmați o abordare diferită de pașii recomandați, este posibil să observați o variație de 5-10% a fmax-ului procesului de compilare a importului nucleului.

Figura 2. Identificarea celei mai bune semințe de bazăIntel AN 824 FPGA SDK pentru OpenCL Board Support Package Floorplan - fig

  • Pentru a înțelege cât de repede poate rula nucleul fără restricții de plan:
    1. Efectuați o compilare plată a nucleului și respectați fmax.
    2. Efectuați o compilare de import pe același nucleu și respectați fmax.
    3. Comparați rezultatele fmax.
    Din cauza restricțiilor planului de etaj, import compile fmax este întotdeauna mai mic decât flat compile fmax. Pentru a evita zgomotul de semințe, compilați nucleul cu mai multe semințe de bază și luați în considerare un fmax mediu în timp ce comparați rezultatele fmax.
  • Nu compara niciodată nucleul fmax dintr-o compilație de bază cu o compilație flată sau de import. Țintele de ceas kernel sunt relaxate în timpul compilării de bază și, prin urmare, nu veți obține niciodată rezultate bune.
  • Observați calea critică a ceasului nucleului în compilarea de bază sau de import. Dacă calea critică trece de la nucleu la regiunea statică din planul de etaj, modificați planul de etaj sau mai rulați câteva semințe de bază pentru a evita această cale critică.

Linii directoare pentru evaluarea eficienței utilizării resurselor BSP

Cu cât procentul de utilizare a resurselor este mai maretage, cu atât este mai bună utilizarea zonei în zona statică a BSP-ului dumneavoastră. Un procent ridicat de utilizare a resurselortagE implică, de asemenea, că sunt disponibile mai multe resurse pentru regiunea nucleului.
Urmați pașii de mai jos pentru a calcula procentul de utilizare a resurselortage din BSP-ul dvs.:

  1. Obțineți valori pentru toate resursele din FPGA din top.fit.rpt sau base.fit.rpt disponibile în secțiunea Statistici partiții a raportului Montator.
  2. Deduceți valoarea pentru „freeze_wrapper_inst|kernel_system_inst” (regiunea kernelului).

Sfat:
Concentrați-vă mai mult pe valorile modulelor logice adaptive (ALM) decât pe valorile altor resurse. Asigurați-vă că procentul de utilizare a resurselortage pentru ALM este mai aproape de BSP de referință OpenCL. Un procent foarte maretage pentru ALM poate duce la congestie, care poate crește timpul de compilare și poate introduce congestii de rutare în nucleele complexe. Cu toate acestea, puteți oricând să creșteți sau să micșorați aria regiunii statice și să respectați timpul de compilare și fmax.
Următorul tabel reflectă utilizarea resurselor OpenCL BSP a dispozitivelor Arria ® 10 GX în versiunea 17.0.

Tabelul 1.
Utilizarea resurselor OpenCL BSP a dispozitivelor IntelArria 10 GX în versiunea 17.0

Total disponibil Rezervat pentru Kernel Disponibil pentru BSP Folosit de BSP 0/0
ALM 427200 393800 33400 23818. 71%
Registrele 1708800 1575200 133600 38913 29%
M2OK 2713 2534 179 134 75%
DSP 1518 1518 0 0 N / A

Observați că planificarea etajului este executată în așa fel încât regiunea statică să nu aibă blocuri DSP.

Istoricul revizuirilor documentelor

Tabelul 2.
Istoricul revizuirilor documentului pentru Intel FPGA SDK pentru OpenCL Board Support Package Ghid de optimizare a planului

Data Versiune Schimbări
august-17 Lansare inițială.

pictograma Versiunea online
cardo 590878 Spirit interfon Bluetooth - ICONA 14 Trimiteți feedback
ID: 683312
AN-824
Versiune: 2017.08.08
AN 824: Intel® FPGA SDK pentru placa OpenCL™

Ghid de optimizare a planurilor pentru pachetul de asistență

Documente/Resurse

Intel AN 824 FPGA SDK pentru OpenCL Board Support Package Floorplan [pdfGhid de utilizare
AN 824 FPGA SDK pentru OpenCL Board Support Package Floorplan, AN 824, FPGA SDK for OpenCL Board Support Package Floorplan, OpenCL Board Support Package Floorplan, Board Support Package Floorplan, Suport Package Floorplan, Package Floorplan, Floorplan

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *