OpenCL lurking around the corner…

After months in the standardization-pipeline, OpenCL seems to be finally somewhere around. OpenCL generalizes the access to parallel-computing technologies such as Nvidia’s CUDA, AMD’s Stream, IBM’s Cell/B.E., FPGA- or similar platforms by defining a common API that talks to the devices and a C-derived language to define the kernels. The goal is “write once, run everywhere”…

A few days ago Nvidia has pre-released a “conformance candidate” for it’s OpenCL-implementation to registered developers. Although this is a early stage, the quality of the tools and libraries already seems very promising. Nvidia clearly took a run for OpenCL with the changes to the CUDA-API since 2.0 and the transition from CUDA to OpenCL is nice and easy. I took Sunday afternoon and implemented a  OpenCL-core for Pyrit; the new code was committed to svn as rev100.

End-users are actually not able to take use of the new core right now as the required GPU- and OpenCL-drivers are not available to the general public yet. In the long term however, the OpenCL-core will replace the CUDA-/AMD-specific code and provide access to other platforms like Cell/B.E. (->Pyrit on Playstation 3). This looks very promising…

Oh, and by the way: According to Google’s codesearch Pyrit is one of the first GPL’ed tools using OpenCL :-)


  1. Question #1
    Vhat is the advantage to move from CUDA to openGL? We can hope in better performace referring k/s or the advantage is only related to “write one, run everywhere?”

    Question #2
    Nice to know that CELL of PS3 will be supported: any prevision of when pyrit-on-PS3 will be avaiable? some friend of mine have PS3 underused :)

  2. I forgot
    question #3
    I am afraid that too much software layer will separate user application from the hardware, so the raw performances will be decreased: is this a real risk?

  3. #1 Don’t expect a performance increase. OpenCL for Nvidia is build upon the CUDA-API so it’s basically just a wrapper.

    #2 Writing code for Cell/B.E. is not easy and I don’t have time for it now (I don’t own a PS3 either :-))

    #3 No. Pyrit is already quite efficient at splitting work between CPU and GPU. Tasks like reading/unpacking/packing/writing workunits is done while the GPU is computing.

Comments RSS TrackBack Identifier URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

  • RSS Unknown Feed

    • An error has occurred; the feed is probably down. Try again later.