Un SDK 824 FPGA per la scheda OpenCL
Planimetria del pacchetto di supporto
Guida per l'utente
Intel® FPGA SDK per OpenCL ™ Board Support Package Guida all'ottimizzazione della planimetria
L'SDK Intel/® FPGA per OpenCL™ Board Support Package (BSP) Guida all'ottimizzazione della planimetria fornisce linee guida per la pianificazione della planimetria per OpenCL) BSP. Fornisce inoltre indicazioni su come acquisire il seme di base con la migliore frequenza operativa massima media e valutare l'efficienza di utilizzo delle risorse BSP.
Questo documento presuppone che tu abbia familiarità con i concetti di OpenCL(2) come descritto nella specifica OpenCL versione 1.0 del Khronos Group.
Flusso di compilazione OpenCL BSP
OpenCL BSP supporta i seguenti tipi di flussi di compilazione:
- Flat compile [–bsp-flow flat]: esegue una compilazione flat dell'intero progetto (BSP insieme all'hardware generato dal kernel).
- Base compile [–bsp-flow base]: esegue una compilazione di base utilizzando le restrizioni LogicLock da base.qsf file. L'obiettivo del clock del kernel è rilassato in modo che l'hardware BSP abbia più libertà di rispettare i tempi. Viene creato un database base.qar per preservare l'hardware BSP, che è la regione statica.
- Importa compila [ ]: ripristina la regione statica chiusa di temporizzazione dal database base.qar e compila solo l'hardware generato dal kernel. Aumenta anche l'obiettivo del clock del kernel per ottenere la migliore frequenza operativa massima del kernel (fmax).
Partizione della planimetria OpenCL BSP
La planimetria di OpenCL BSP è suddivisa principalmente nelle seguenti due regioni:
- Regione statica: rappresenta la regione con hardware correlato a BSP che rimane statico. La tempistica è chiusa per questa regione durante la compilazione di base. In generale, l'obiettivo è ridurre al minimo le risorse di chip utilizzate da questa regione per chiudere i tempi.
- Regione del kernel: rappresenta la regione di riconfigurazione parziale (PR) riservata al modulo freeze_wrapper_inst|kernel_system_inst, che contiene il kernel. In generale, l'obiettivo è riservare le risorse di chip al massimo per questa regione.
- L'SDK Intel FPGA per OpenCL si basa su una specifica Khronos pubblicata e ha superato il processo di test di conformità Khronos. Lo stato di conformità attuale è disponibile all'indirizzo www.khronos.org/conformance.
- OpenCL e il logo OpenCL sono marchi di Apple Inc. e utilizzati su autorizzazione di Khronos Group™.
Società Intel. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche correnti in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di informazioni, prodotti o servizi qui descritti, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi.
*Altri nomi e marchi potrebbero essere rivendicati come proprietà di terzi.
Linee guida per OpenCL BSP Floorplanning
- Inizia con la compilazione semplice per capire dove vengono posizionati naturalmente tutti i componenti principali del BSP (in particolare i blocchi IP con connessioni I/O come PCIe o DDR). Durante la progettazione del BSP, potrebbe essere necessario considerare la creazione di pipelinetages tra gli IP per chiudere i tempi. Dovresti prima eseguire uno sweep del seme di compilazione flat per identificare i percorsi ricorrenti in errore e quindi tentare di correggerli.
Suggerimento: — Un buon tasso di chiusura dei tempi rispetto agli sweep dei semi di compilazione flat avrà maggiori possibilità di chiudere i tempi di compilazione di base.
— Se si osservano errori coerenti in mm_interconnect* (componente aggiunto da Qsys), aprire il sistema con Qsys Interconnect viewe osservare la complessità dell'interconnessione difettosa. Puoi aggiungere infradito pipelining nel file viewer per migliorare i tempi. Se ancora non riesci a risolvere il problema, potresti dover abbattere il percorso critico mm_interconnect* aggiungendo bridge di pipeline Avalon. - Durante la compilazione di base, inizia con LogicLock sulla regione del kernel che contiene freeze_wrapper_inst|kernel_system_inst. Senza altre restrizioni, Intel Quartus Prime può posizionare liberamente l'hardware BSP nella restante regione statica del chip. Usa la compilazione flat e il pianificatore di chip per identificare le dimensioni e la posizione dell'hardware BSP, come PCIe e DDR. Quindi, riserva la regione del kernel utilizzando LogicLock evitando le principali aree cluster dell'hardware BSP.
Suggerimento: se la famiglia di chip utilizzata è la stessa della piattaforma di riferimento e se i componenti BSP sono simili, potrebbe essere più rapido iniziare con le regioni LogicLock per freeze_wrapper_inst|kernel_system_inst fornite con il BSP di riferimento OpenCL e risolvere i problemi. - Potresti aggiungere i seguenti componenti aggiuntivi al tuo BSP:
— Banchi di memoria: se si aggiungono più banchi di memoria, è necessario identificare la posizione del banco I/O poiché potrebbe essere necessario aggiungere ponti di pipeline per rispettare i tempi.
— Canali I/O: è possibile aggiungere canali I/O come video, Ethernet o interfaccia seriale. Se aggiungi canali I/O, dovresti identificare la posizione del banco I/O poiché potrebbe essere necessario applicare nuove regioni LogicLock per il pipelining se i tempi di chiusura sono difficili.
Suggerimento: se è necessario aggiungere ponti di pipeline (ad esample, a causa di grandi ritardi di instradamento che causano errori di temporizzazione), quindi considerare la distanza di instradamento dalla logica di origine a quella di destinazione nel chip e liberare un po' di spazio riservato per la regione del kernel. - Segui queste linee guida generali quando prenoti regioni LogicLock per il kernel:
— Tentare di posizionare tutte le colonne DSP nel kernel_system a meno che non sia richiesto dal BSP.
— Tentativo di riservare più risorse per il kernel_system.
— Cercare di mantenere al minimo il numero di tacche nella regione del kernel.
La figura seguente illustra una tacca che è stata aggiunta per posizionare un bridge pipeline tra PCIe e il banco DDR.
Figura 1. Planimetria OpenCL BSP per Intel Arria® 10 GX nella versione 17.0
Linee guida per la massima frequenza operativa
La frequenza operativa massima (fmax) raggiunta dai kernel dipende in gran parte dalla velocità dell'FPGA poiché la maggior parte degli IP dovrebbe già essere ottimizzata. Tuttavia, potrebbero esserci alcune perdite fmax a seconda della planimetria BSP. Per esample, di solito il numero di ritagli nella regione del kernel di BSP influisce sul kernel fmax.
Come illustrato nella figura seguente, per acquisire il miglior seme di base che produce il miglior fmax medio:
- Esegui uno sweep seme sulla compilazione di base invece di selezionare il primo seme di base che soddisfa i tempi.
- Eseguire la compilazione dell'importazione (utilizzando alcuni kernel dall'example disegni) su tutti i semi di base passanti.
- Calcola la fmax media per tutti i semi di base.
- Seleziona il seme di base che produce la fmax media più alta.
Il seme di base con il miglior fmax medio è un buon candidato per il rilascio con BSP. Se decidi di seguire un approccio diverso dai passaggi consigliati, potresti osservare una variazione del 5-10% nell'fmax del processo di compilazione dell'importazione del kernel.
Figura 2. Identificazione del miglior seme di base
- Per capire quanto velocemente può essere eseguito il kernel senza restrizioni di planimetria:
1. Eseguire una compilazione semplice del kernel e osservare fmax.
2. Eseguire una compilazione di importazione sullo stesso kernel e osservare fmax.
3. Confrontare i risultati fmax.
A causa delle restrizioni sulla planimetria, import compile fmax è sempre inferiore a flat compile fmax. Per evitare il rumore del seme, compila il kernel con più semi di base e considera un fmax medio confrontando i risultati di fmax. - Non confrontare mai il kernel fmax da una compilazione di base con una compilazione flat o di importazione. Gli obiettivi di clock del kernel sono rilassati durante la compilazione di base e quindi non otterrai mai buoni risultati.
- Osservare il percorso critico dell'orologio del kernel nella compilazione di base o di importazione. Se il percorso critico passa dal kernel alla regione statica nella planimetria, modificare la planimetria o eseguire altri semi di base per evitare questo percorso critico.
Linee guida per la valutazione dell'efficienza nell'utilizzo delle risorse BSP
Maggiore è la percentuale di utilizzo delle risorsetage, migliore è l'utilizzo dell'area nell'area statica del tuo BSP. Un'elevata percentuale di utilizzo delle risorsetage implica anche che sono disponibili più risorse per la regione del kernel.
Seguire i passaggi seguenti per calcolare la percentuale di utilizzo delle risorsetage del tuo BSP:
- Ottieni i valori per tutte le risorse nell'FPGA da top.fit.rpt o base.fit.rpt disponibile nella sezione Partition Statistics del report Fitter.
- Detrarre il valore per "freeze_wrapper_inst|kernel_system_inst" (regione del kernel).
Mancia:
Concentrati maggiormente sui valori del modulo logico adattivo (ALM) che sui valori di altre risorse. Assicurarsi che la percentuale di utilizzo delle risorsetage per ALM è più vicino al BSP di riferimento OpenCL. Una percentuale molto altatage per ALM potrebbe portare a congestione, che può aumentare il tempo di compilazione e introdurre congestioni di instradamento in kernel complessi. Tuttavia, puoi sempre aumentare o diminuire l'area della regione statica e osservare il tempo di compilazione e fmax.
La tabella seguente riflette l'utilizzo delle risorse OpenCL BSP dei dispositivi Arria ® 10 GX nella versione 17.0.
Tabella 1.
Utilizzo delle risorse OpenCL BSP dei dispositivi IntelArria 10 GX nella versione 17.0
Totale disponibile | Riservato al kernel | Disponibile per BSP | Utilizzato da BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71.% |
Registri | 1708800 | 1575200 | 133600 | 38913 | 29.% |
M2OK | 2713 | 2534 | 179 | 134 | 75.% |
Controllo di Produzione | 1518 | 1518 | 0 | 0 | N / A |
Osservare che la pianificazione del piano sia eseguita in modo tale che la regione statica non abbia blocchi DSP.
Cronologia delle revisioni del documento
Tabella 2.
Cronologia delle revisioni del documento dell'SDK Intel FPGA per OpenCL Board Support Package Guida all'ottimizzazione della planimetria
Data | Versione | Cambiamenti |
Agosto-17 | Versione iniziale. |
Versione online
Invia feedback
Numero identificativo: 683312
AN-824
Versione: 2017.08.08
AN 824: Intel® FPGA SDK per scheda OpenCL™
Guida all'ottimizzazione della planimetria del pacchetto di supporto
Documenti / Risorse
![]() |
intel AN 824 FPGA SDK per la planimetria del pacchetto di supporto della scheda OpenCL [pdf] Guida utente SDK FPGA AN 824 per planimetria del pacchetto di supporto scheda OpenCL, AN 824, SDK FPGA per planimetria pacchetto di supporto scheda OpenCL, planimetria pacchetto di supporto scheda OpenCL, planimetria pacchetto di supporto scheda, planimetria pacchetto di supporto, planimetria pacchetto, planimetria |