KPETOB.COM

Kretov Nikolai Nikolaevich: Introduzione a OpenCL

Lo sviluppo è guidato dal famigerato Khronos Group. Quello che promuove OpenGl e OpenAL. Inoltre, OpenGL e OpenCL provengono essenzialmente dalla stessa infrastruttura software e possono interagire in modo molto stretto.

L'essenza dell'idea è che non ci interessa assolutamente: il processore di fronte a noi o la scheda video. Estraiamo dalla piattaforma in quanto tale e consideriamo di avere N dispositivi informatici. OpenCL come standard descrive le regole per l'elaborazione su questi dispositivi. Pertanto, otteniamo un unico codice che sarà assolutamente portabile su qualsiasi piattaforma. AMD o Intel hai un processore, una scheda video nVidia o ATI o un server Blade con Cell-core: non importa affatto. L'applicazione funzionerà ovunque i dispositivi supportino lo standard OpenCL.

Vale la pena notare che stiamo parlando di calcolo parallelo sulle istruzioni SIMD.

OpenCL è un'estensione del linguaggio C. Abbiamo un'applicazione host e un'applicazione OpenCL. L'host prepara un set di dispositivi disponibili per l'uso e passa l'attività alla parte OpenCL per l'esecuzione. Successivamente, OpenCL soddisfa e restituisce il risultato all'host.

Il codice OpenCL viene archiviato in file *.cl e compilato in fase di esecuzione per una determinata architettura. Ciò garantisce la portabilità dell'applicazione.

Apple ha fatto un ulteriore passo avanti rilasciando il supporto a livello di kernel per OpenCL nel suo sistema operativo Snow Leopard, ottenendo significativi miglioramenti delle prestazioni.

A cosa serve?

OpenCL mangia bene gli algoritmi SIMD. Questo è ciò per cui è stato creato. E questa è crittografia varia, vari effetti di post-elaborazione, elaborazione del suono e vari modelli matematici, codifica video.

Per gli sviluppatori

Al momento sono disponibili versioni di nVidia OpenCL SDK e AMD OpenCL SDK. Puoi sempre scaricarli dai siti Web ufficiali di queste società.

Nei prossimi articoli ti spiegherò come utilizzare in pratica questa tecnologia nelle tue applicazioni.