Questo esempio di progettazione esegue due istanze di una classe in due thread separati. Ogni istanza utilizza un kernel diverso: la prima istanza esegue un kernel di addizione vettoriale per eseguire: C = A + B dove A, B e C sono vettori N-element. La seconda istanza esegue un kernel di moltiplicazione vettoriale membro per eseguire: C = A * B (memberwise). I kernel sono intenzionalmente mantenuti semplici e non ottimizzati.
Poiché il dispositivo non può essere programmato per utilizzare due programmi separati contemporaneamente, entrambe le istanze del problema condividono lo stesso programma OpenCL™ (quindi in esecuzione nello stesso contesto). Tuttavia, come nel caso di questo esempio, i due thread possono avere code di comandi separate. Per semplicità, i due thread vengono eseguiti su due istanze dello stesso codice, con argomenti diversi, ma in genere possono eseguire due classi separate.
Oltre a dimostrare l'API (Application Programming Interface) OpenCL di base, questo esempio supporta il partizionamento del problema su più dispositivi OpenCL, se disponibile. Se sono disponibili dispositivi M, il problema è diviso in modo che ogni dispositivo funzioni su punti N/M. Il programma host presuppone che tutti i dispositivi siano dello stesso tipo (cioè, è possibile utilizzare lo stesso binario, ma il codice può essere generalizzato per supportare facilmente diversi tipi di dispositivi).
Download
L'esempio di progettazione fornisce il codice sorgente per il dispositivo OpenCL (.cl) e l'applicazione host. Per la compilazione dell'applicazione host, il pacchetto Linux* include un Makefile e il pacchetto Windows* include un progetto Microsoft* Visual Studio 2010.
Per questo esempio vengono forniti i seguenti download:
L'utilizzo di questa progettazione è regolato e soggetto ai termini e condizioni del contratto di licenza di progettazione di riferimento hardware.
Requisiti software e hardware
Questo esempio di progettazione richiede i seguenti strumenti:
- software Intel® FPGA v17.1 o versioni successive
- SDK Intel FPGA per OpenCL™ v17.1 o versioni successive
- Su Linux: GNU Make e gcc
- In Windows: Microsoft Visual Studio 2010
Per scaricare gli strumenti di progettazione Intel®, visitare la pagina di download OpenCL. I requisiti per il sistema operativo sottostante sono gli stessi dell'SDK Intel FPGA per OpenCL.
OpenCL e il logo OpenCL sono marchi di Apple Inc. utilizzati su autorizzazione da Khronos.
* Il prodotto si basa su una specifica Khronos pubblicata e ha superato il processo di test di conformità Khronos. Lo stato di conformità attuale può essere trovato in www.khronos.org/conformance.