Intel's OpenCL also supports later CPU features even AVX.
Also it seems that application should detect CPU & video harware to
choose either CPU acceletartion  (Intel HDA VGA or Core* CPU, AMD
multicore) or GPU acceleration (AMD or NVdia GPU provided by drivers)
will be used so that to use proper OpenCL DLL but it definetely worths
of efforts because of huge pefromance improvement.

Thought OpenCL use a bit different workflow:
--------------------------------
This library deals with image processing. To use the library it is
necessary to understand these concepts :
1. Images and Buffers -  OpenCL can represent images in device memory
in two ways : As a Image or as a Buffer
   Some operations are faster when using an Image (like filters and
morphology) while some are faster when using buffers (like arithmetic
and reductions).
   The choice of Image or Buffer will depend on the program used.
   An Image or a Buffer must be created using a SImage structure to
inform the library about the size and type of the image.
   When creating an Image or a Buffer, the memory space is allocated
on the device
   That memory space will not be initialized.
   Use ocipSend* and ocipRead* to transfer data to and from the device.

2. Programs
   Before processing can be done, OpenCL needs to have a Program and
needs to have that program built for the type of image used.
   Programs are in .cl files in a folder distributed with this library
   ocipSetCLFilesPath() needs to be called to tell the library where
those files are
   ocipPrepare*() needs to be called to create the desired program and build it

3. Synchronous and asynchronous
   OpenCL works with an operation queue
   When an operation is issued, it is added to the queue
   All previous operations are guaranteed to be done before starting
the next item in the queue.
   These operations can be memory transfers and processing functions
   Asynchronous functions :
      ocipSendImage
      ocipSendImageBuffer
      Most processing functions
   These functions will return almost immediately.
   The image transfer or image processing will happens asyncrhonously.
   Read functions :
      ocipReadImage
      ocipReadImageBuffer
   The read functions will issue a reading operation and then wait for
all operations to complete.
   So after a read function returns, it is guaranteed to contain the
resulting data of the previously issued operations.

4. Processing functions
   The processing functions are grouped by program
   To use a processing function, a handle to the corresponding program
must be used.
   Each of these functions does the following :
      If the program was not built for the image type used, the program is built
      If the source images/buffers have not been sent to device
memory, a Send operation is added to the queue for each source.
      The processing operation is added to the queue.

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

Reply via email to