Intro

Scopo della classe: gpu_kernel è stata progettata per facilitare la preparazione ed esecuzione dei kernel OpenCL, nascondendo tutti i dettagli  delle operazioni necessarie, la cui scrittura complica notevolmente la stesura del codice: per eseguire una funzione kernel è necessario innanzitutto individuare le piattaforme OpenCL presenti nell’hardware; quindi definire i context, richiamare un programma C OpenCL  (sorgente o precompilato) contenente la funzione kernel, eventualmente compilarlo, quindi creare un oggetto kernel.

Dopo questi passaggi sarà necessario, per eseguire il kernel, definire gli argomenti della funzione, in genere oggetti allocati nel context OpenCL, infine Lanciare il kernel ed estrarre gli oggetti calcolati (oggetti di memoria e/o immagini 2d o 3d.

Di seguito è riportato un diagramma della struttura di un’applicazione OpenCL:

Come si può dedurre dall’analisi del diagramma UML,  l’esecuzione di un kernel richiede la definizione di diversi oggetti, allocati utilizzando i comandi delle API OpenCL .

La creazione ed esecuzione di un kernel richiede infatti la creazione di un programma e degli argomenti necessari; il diagramma che segue schematizza il metodo di creazione dello stesso

%d bloggers like this:
Skip to toolbar