OpenCL 1.1 per sfruttare al meglio CPU e GPU

Open CL 1.1 è la nuova versione dello standard aperto che mette in comunicazione applicazioni tradizionali con CPU e GPU per maggiore rapidità di calcolo.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

OpenCL, lo standard aperto per la programmazione parallela, raggiunge la versione 1.1. La nuova release, retrocompatibile con la versione 1.0, integra miglioramenti prestazionali e funzionalità per la programmazione parallela. Ecco la lista delle novità (in inglese):

  • Host-thread safety, enabling OpenCL commands to be enqueued e from multiple hosts
  • Sub-buffer objects to distribute regions of a buffer across multiple OpenCL devices
  • User events to enable enqueued OpenCL commands to wait on external events
  • Event callbacks that can be used to enqueue new OpenCL commands based on event state changes in a non-blocking manner
  • 3-component vector data types
  • Global work-offset which enable kernels to operate on different portions of the NDRange
  • Memory object destructor callback
  • Read, write and copy a 1D, 2D or 3D rectangular region of a buffer object
  • Mirrored repeat addressing mode and additional image formats
  • New OpenCL C built-in functions such as integer clamp, shuffle and asynchronous strided copies
  • Improved OpenGL interoperability through efficient sharing of images and buffers by linking OpenCL event objects to OpenGL fence sync objects
  • Optional features in OpenCL 1.0 have been bought into core OpenCL 1.1 including: writes to a pointer of bytes or shorts from a kernel, and conversion of atomics to 32-bit integers in local or global memory.

"Le specifiche 1.1 giungono a 18 mesi dalle 1.0 e permettono ai programmatori di sfruttare più efficacemente le risorse di calcolo. Al tempo stesso le nuove specifiche proteggono gli investimenti fatti nel codice OpenCL", ha dichiarato Neil Trevett, presidente di OpenCL Working Group e presidente di Khronos Group nonché vicepresidente di Nvidia.

"Le OpenCL 1.1 arrivano in un momento perfetto e traggono vantaggio dalla rapida crescita d'interesse verso il GPU computing nel mondo industriale. AMD crede che si debba spronare questa crescita […]. Come uno dei primi sostenitori di OpenCL con l'SDK di ATI Stream, AMD è pronta a liberare il vero potenziale dell'accelerazione delle applicazioni con la famiglia di APU Fusion, attesa nel 2011. Queste APU sono progettate per supportare OpenCL sia sulla parte CPU che su quella GPU, fornendo così una piattaforma di calcolo eterogenea senza rivali", ha dichiarato Manju Hegde, vicepresidente del programma Fusion Experience di AMD.