OpenCL™ - BSP - Centro assistenza

Intel®'SDK FPGA per OpenCL™ consente agli sviluppatori di software di accelerare le proprie applicazioni prendendo di mira piattaforme eterogenee con CPU e FPGA Intel. Intel® FPGA SDK per OpenCL™ può essere installato come parte del software Intel® Quartus® Prime o come pacchetto separato. È possibile scaricare Intel FPGA SDK per OpenCL dal link sottostante.

Download di Intel® FPGA SDK per OpenCL™

Benvenuto nella pagina di supporto di OpenCL™ BSP! Qui troverai informazioni su come pianificare, progettare e implementare il tuo BSP OpenCL™, oltre a imparare alcuni suggerimenti e trucchi per il debug.

Questa pagina è configurata per guidarti dall'inizio alla fine del processo di sviluppo di un OpenCL™ Board Support Package (BSP) (o progettazione / migrazione di kernel / algoritmi OpenCL). Nella sezione Modifica di un progetto di riferimento sono disponibili risorse su come modificare la piattaforma di riferimento Intel® nella propria piattaforma personalizzata e su come compilare progetti piatti senza errori di temporizzazione. La sezione Planimetria e chiusura dei tempi fornisce indicazioni su come partizionare il progetto e ottenere la massima frequenza operativa. Descrive anche le tecniche per chiudere i tempi sul tuo progetto e avere una chiusura temporale garantita durante la costruzione di un BSP. La sezione Utilità MMD e OpenCL fornisce i passaggi per ricostruire MMD e fornisce informazioni dettagliate sulle utilità OpenCL. La sezione Debug fornisce alcuni strumenti e risorse per i problemi di debug che potrebbero verificarsi. Ci sono documenti e corsi di formazione elencati in tutte le sezioni che sono utili durante il processo di sviluppo BSP.

1. Modificare un progetto di riferimento

Introduttiva

Per iniziare con lo sviluppo BSP, assicurarsi di eseguire i passaggi seguenti:

  1. Verificare che sia installato l'SDK FPGA Intel® per il software OpenCL™ e Intel® Quartus®.
  2. Verificare che sia disponibile la versione dello strumento corrispondente al BSP di riferimento OpenCL™.
  3. Confermare l'accesso alla licenza software Intel® Quartus® completa.

Selezione di un progetto di riferimento

Seleziona il progetto di riferimento più adatto alla tua piattaforma personalizzata

Intel supporta i progetti BSP di riferimento OpenCL™ per le seguenti piattaforme. È inoltre possibile visualizzare la guida alla conversione di OpenCL™ BSP per una piattaforma specifica:

Modificare un progetto di riferimento

Iniziate a modificare il progetto di riferimento per il vostro platfrom seguendo i passaggi nelle guide alla portabilità di OpenCL BSP. Si consiglia di completare le modifiche al progetto, provare a compilare il primo kernel. Generalmente, usiamo un kernel chiamato Boardtest, che testa diverse interfacce del BSP. Le informazioni sui passaggi di costruzione di Boardtest e BSP generici sono menzionate nella seguente guida:

Intel® FPGA SDK per OpenCL™ Custom Platform Toolkit Guida dell'utente (PDF) ›

Passaggi consigliati per creare un BSP:

  1. Compilare il Boardtest in un flusso "flat" per generare un file ".aocx" chiuso di temporizzazione
  2. Convalidare ".aocx" eseguendo il Boardtest e incrociare le aspettative di larghezza di banda dell'interfaccia dal test
  3. Inizia a lavorare sulla planimetria per la costruzione "base" per creare un BSP OpenCL a tempo chiuso garantito

2. Planimetria e chiusura dei tempi

Introduttiva

In OpenCL, dobbiamo lavorare sui tempi per due diverse revisioni del progetto: la revisione piatta e la revisione di base. Una revisione flat è quella senza partizioni o regioni di blocco logico e utilizza il file hardware/flat.qsf per implementarla. Mentre la revisione di base è quella che include il partizionamento e i blocchi logici e utilizza il file hardware / base.qsf per implementarlo. Si consiglia di ottenere prima una revisione piatta di pulizia dei tempi come buon inizio e quindi di lavorare sulla planimetria per ottenere una revisione di base del progetto pulita dai tempi.

Per ulteriori dettagli sul flusso di compilazione, fare riferimento alla sezione Flusso di compilazione BSP OpenCL™ nella Guida all'ottimizzazione della planimetria del pacchetto di supporto intel® FPGA per OpenCL per OpenCL™.

Planimetria Divisoria

Inizia con la compilazione piatta per capire dove vengono posizionati naturalmente tutti i componenti principali del BSP (in particolare i blocchi di proprietà intellettuale (IP) con connessioni I/O, come la memoria PCIe* o DDR).

Per ulteriori linee guida in merito, fare riferimento alla sezione Linee guida per OpenCL™ BSP Floorplanning nella Guida all'ottimizzazione della planimetria del pacchetto di supporto intel® FPGA per OpenCL™.

Per informazioni dettagliate, è inoltre possibile fare riferimento alla Guida dell'utente per la riconfigurazione parziale.

Modifica area PR

Durante la compilazione di base, iniziare con l'area di blocco logico sul kernel che contiene freeze_wrapper_inst|kernel_system_inst. Utilizzare la compilazione piatta e il pianificatore di chip per identificare le dimensioni e la posizione dell'hardware BSP. Tentare di riservare più risorse per il kernel_system utilizzando l'area di blocco logico.

Per ulteriori linee guida in merito, fare riferimento alla sezione Linee guida per OpenCL™ BSP Floorplanning nella Guida all'ottimizzazione della planimetria del pacchetto di supporto intel® FPGA per OpenCL™.

Correzione delle violazioni dei tempi

Per correggere le violazioni di temporizzazione nella progettazione, potrebbe essere necessario aggiungere fasi della pipeline tra i core IP.

Per ulteriori linee guida, fare riferimento ai seguenti collegamenti:

Vincoli di configurazione/attesa

Le .failing_paths.rpt e .failing_clocks.rpt nella directory di output elencano gli errori principali nella progettazione. Se si è verificato un errore costante in alcuni dei percorsi, è possibile impostare un vincolo di ritardo minimo o massimo per tale percorso critico all'interno del file /hardware/top.sdc.

Per i problemi correlati, è possibile fare riferimento al seguente metodo di soluzione alternativa nella pagina Knowledge Database:Come chiudere i tempi di sospensione concorrente e le violazioni di configurazione in Arria 10?

3. Utilità MMD e OpenCL™

Sviluppo o modifica dell'origine MMD

La libreria software MMD implementa l'input/output (I/O) di base tra l'host e la scheda di accelerazione e fornisce interfacce, ad esempio apertura, lettura e scrittura. Il driver della libreria MMD viene memorizzato nei formati Windows* 64 o Linux* 64 e il codice sorgente viene memorizzato nella cartella di origine.

Per ulteriori informazioni, fare riferimento alla sezione Creazione della libreria MMD nella Guida dell'utente di Intel® FPGA SDK per OpenCL™ Custom Platform Toolkit.

Supporto utility

Le utilità OpenCL™ consentono di eseguire l'accesso alla scheda madre utilizzando Intel® FPGA SDK per OpenCL™. Ciò include l'installazione di aocl, la disinstallazione di aocl, la diagnosi di aocl, il programma aocl e il flash aocl.

Per ulteriori informazioni, fare riferimento alla sezione Fornitura di INTEL® FPGA SDK per OpenCL™ Utilities Support nella Guida dell'utente di Intel® FPGA SDK per OpenCL™ Custom Platform Toolkit.

Dopo aver creato le utilità software e il livello MMD, è necessario testare la progettazione hardware. Il modo standard è quello di generare il kernel boardtest ed eseguire sulla scheda.

Per ulteriori informazioni, fare riferimento alla sezione Test della progettazione hardware nella Guida dell'utente di Intel® FPGA SDK per OpenCL™ Custom Platform Toolkit.

4. Eseguire il debug

Bring-Up della scheda

Questa sezione consente di risolvere i problemi durante la installazione di kit di sviluppo FPGA Intel® o schede madri personalizzate.

Per scoprire alcuni problemi noti che potresti dover affrontare durante la creazione delle schede madri, fare riferimento alle seguenti sezioni in AN 807: Configurazione del kit di sviluppo FPGA Intel® Arria® 10 GX per Intel® FPGA SDK per OpenCL™ Nota applicativa:

Planimetria e tempistica

Per suggerimenti e trucchi sull'utilizzo di un'area minima per la logica statica e per lasciare più spazio per il kernel OpenCL™, è possibile fare riferimento a AN 824: Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.

Runtime Debug

Esistono alcune variabili di ambiente che possono essere impostate per ottenere ulteriori informazioni di debug durante l'esecuzione dell'applicazione host. Si tratta di Intel® FPGA SDK per OpenCL™ variabili di ambiente specifiche, che possono aiutare a diagnosticare i problemi con i progetti di piattaforme personalizzate.

Nella tabella seguente sono elencate tutte queste variabili di ambiente e vengono descritte in dettaglio.

Variabile di ambiente

Descrizione

ACL_HAL_DEBUG

Impostare questa variabile su un valore compreso tra 1 e 5 per aumentare l'output di debug dall'HAL (Hardware Abstraction Layer), che si interfaccia direttamente con il livello MMD.

ACL_PCIE_DEBUG

Impostare questa variabile su un valore compreso tra 1 e 10000 per aumentare l'output di debug da MMD. Questa impostazione della variabile è utile per confermare che il registro ID versione è stato letto correttamente e che i core IP UniPHY sono calibrati.

ACL_PCIE_JTAG_CABLE

Impostare questa variabile per eseguire l'override dell'argomento di quartus_pgm predefinito che specifica il numero del cavo. Il valore predefinito è il cavo 1. Se sono presenti più cavi di download FPGA Intel®, è possibile specificare un cavo specifico impostando questa variabile.

ACL_PCIE_JTAG_DEVICE_INDEX

Impostare questa variabile in modo che esegua l'quartus_pgm argomento predefinito che specifica l'indice del dispositivo FPGA. Per impostazione predefinita, questa variabile ha un valore pari a 1. Se l'FPGA non è il primo dispositivo nella catena JTAG, è possibile personalizzare il valore.

ACL_PCIE_USE_JTAG_PROGRAMMING

Impostare questa variabile per forzare l'MMD a riprogrammare l'FPGA utilizzando il cavo JTAG anziché la riconfigurazione parziale.

ACL_PCIE_DMA_USE_MSI

Impostare questa variabile se si desidera utilizzare MSI per i trasferimenti DMA (Direct Memory Access) in Windows*.

Debug del tocco del segnale

Poiché i progetti OpenCL™ non supportano la funzionalità di simulazione, l'utilizzo di Signal Tap Logic Analyzer è il modo migliore per eseguire il debug di questi progetti.

Per eseguire il debug di qualsiasi progetto in cui si verifica un blocco del kernel o un problema relativo all'interfaccia di memoria o all'errore di diagnosi aocl, si consiglia di utilizzare Signal Tap Logic Analyzer.

Per ulteriori informazioni su Signal Tap Logic Analyzer, fare riferimento alla sezione Design Debugging with the Signal Tap Logic Analyzer nella Guida dell'utente degli strumenti di debug.

Eseguire la procedura seguente per aggiungere il file Signal Tap nella progettazione BSP

1. Apri la GUI Signal Tap e aggiungi tutti i segnali da analizzare.

2. Salvare il file STP nella stessa directory del file di progetto software Intel® Quartus®.

3. Aggiungi le seguenti righe di comando al tuo flat.qsf:

  • set_global_assignment -name ENABLE_SIGNALTAP ON
  • set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
  • set_global_assignment -name SIGNALTAP_FILE <file_name>.stp

4. Ricompilare il kernel dalla riga di comando AOCL.

Problemi noti

5. Lettura e formazione consigliate

OpenCL™ Video

Titolo

Descrizione

Introduzione a OpenCL™ parte 1

In questo video viene descritta la procedura predefinita per l'esecuzione di due applicazioni, OpenCL™ HelloWorld e OpenCL™ trasformata di Fourier veloce (FFT) sul SoC Cyclone® V utilizzando un computer Windows*.

Introduzione a OpenCL™ parte 2

In questo video viene descritta la procedura predefinita per l'esecuzione di due applicazioni, OpenCL™ HelloWorld e OpenCL™ FFT sul SoC Cyclone® V utilizzando un computer Windows*.

Introduzione a OpenCL parte 3

In questo video viene descritta la procedura predefinita per l'esecuzione di due applicazioni, OpenCL™ HelloWorld e OpenCL™ FFT sul SoC Cyclone® V utilizzando un computer Windows*.

Introduzione a OpenCL Parte 4

In questo video viene descritta la procedura predefinita per l'esecuzione di due applicazioni, OpenCL™ HelloWorld e OpenCL™ FFT sul SoC Cyclone® V utilizzando un computer Windows*.

Introduzione a OpenCL parte 5

In questo video viene descritta la procedura predefinita per l'esecuzione di due applicazioni, OpenCL™ HelloWorld e OpenCL™ FFT sul SoC Cyclone® V utilizzando un computer Windows*.

Come impacchettare moduli /progetti Verilog personalizzati come librerie OpenCL™

Il video illustra perché i clienti potrebbero potenzialmente utilizzare questa funzione per avere i loro blocchi di elaborazione personalizzati (RTL) in OpenCL™ codice del kernel. Il video spiega l'esempio di progettazione, ad esempio i file make, i file di configurazione e spiega il flusso di compilazione. Il video mostra anche una demo dell'esempio di design.

OpenCL™ su Intel FPGA SoC FPGA (Linux Host) - Parte 1 - Download e configurazione degli strumenti

Questo video mostra come scaricare, installare e configurare gli strumenti necessari per sviluppare kernel OpenCL™ e codice host destinati agli FPGA SoC Intel FPGA.

OpenCL™ su Intel FPGA SoC FPGA (Linux Host) – Parte 2 – Esecuzione dell'esempio di aggiunta vettoriale con l'emulatore

In questo video viene illustrato come scaricare e compilare un esempio di applicazione OpenCL™ destinata all'emulatore incorporato in Intel FPGA OpenCL™.

OpenCL™ su Intel FPGA SoC FPGA (Linux Host) – Parte 3 – Compilazione di kernel e codice host per SoC FPGA

Questo video mostra come compilare il kernel OpenCL™ e il codice host destinati all'FPGA e al processore dell'FPGA SoC Cyclone® V.

OpenCL™ su Intel FPGA SoC FPGA (Linux Host) – Parte 4 – Configurazione dell'ambiente di runtime

Questo video mostra come configurare la scheda SoC Cyclone® V per eseguire OpenCL™ esempio, ed eseguire il codice host e il kernel sulla scheda.

6. Ottieni assistenza

Fornitori di servizi certificati OpenCL

Intel consiglia i seguenti fornitori di servizi certificati che possono fornire assistenza per lo sviluppo di un pacchetto di supporto per schede opencl™ per schede FPGA Intel®. Questi provider hanno una vasta esperienza nello sviluppo di pacchetti di supporto per schede OpenCL di alta qualità, driver e migrazione del progetto per schede FPGA Intel:

Terasic Inc

OpenCL e il logo OpenCL sono marchi di Apple Inc. utilizzati su autorizzazione di Khronos.

Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.