OpenCL

From BOINC Wiki
Jump to: navigation, search

What is OpenCL?

Since the success of CUDA & Stream/CAL, everyone with a GPU has been waiting with bated breath for the next best thing: OpenCL, or Open Computing Language.

While OpenCL can be compared to CUDA or Stream/CAL, in that it will runs a program on the CPU that tells the GPU to do all the calculations, it can also be different, by using all computational hardware in your computer. This isn't yet supported in BOINC, maybe with a future version.

This means that it'll run on all your CPUs, all your GPUs and whatever else you may have lurking inside your box that does independent calculations, such as Network Processing Units.

Both Nvidia and ATI/AMD have by now released drivers for the most popular GPUs, to have them support OpenCL. Nvidia runs behind on driver maturity though. It'll be hit and miss for their drivers for a while yet.

The new BOINC 7 (tested as 6.13) has OpenCL support for ATI/AMD and Nvidia GPUs only.


Supported operating systems?

  • Windows XP and above.
  • Linux openSUSE™ 11.2 (32-bit/64-bit), Ubuntu® 9.10 (32-bit/64-bit), Red Hat® Enterprise Linux® 5.4 (32-bit/64-bit)
  • Macintosh OS X 10.6 (Snow Leopard) and above.


Supported GPUs

Nvidia: According to their website, all CUDA capable GPUs since 2006 have OpenCL support. I won't dispute them.

ATI/AMD: Essentially all GPUs from the 4350 onwards have some sort of OpenCL support. For a comprehensive list, check their SDK page.

Intel: The Intel GPU built into the Sandy Bridge CPU will eventually have OpenCL support. All Intel GPUs hereafter will have OpenCL support.


Supported CPUs

Any x86 and x86-64 based CPU with at least SSE3 will work.


Other processors?

According to Khronos, OpenCL is developed and supported by: 3DLABS, Activision Blizzard, AMD, Apple, ARM, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, Fujitsu, GE, Graphic Remedy, HI, IBM, Intel, Imagination Technologies, Los Alamos National Laboratory, Motorola, Movidius, Nokia, NVIDIA, Petapath, QNX, Qualcomm, RapidMind, Samsung, Seaweed, S3, ST Microelectronics, Takumi, Texas Instruments, Toshiba and Vivante.

So anything these developers produce that has a processing unit in your PC is an option.


Projects

 * Windows only, Linux and Macintosh require 3rd party applications or are not available.  ** Macintosh GPU apps available.


Is OpenCL comparable to CUDA or CAL?

Not completely. With the former technologies, an application would run on the CPU which would translate whatever was to do to kernels for the shader processors or stream processors in the GPU to work with. At that time the GPU wouldn't be able to do much of anything else, including showing you graphics output in real time, as the GPU was busy doing these intricate calculations. Using graphics, streaming video, a screen saver? until recently all that wasn't possible on CUDA/Brook+, although newer GPUs and more memory on the cards make it now possible to do just that.

OpenCL is more comparable to OpenGL (the Open Graphics Language), as it can not only do intricate calculations, but also still show you your desktop in real time, show streaming video and show real-time calculated graphics at the same time.


Are there BOINC projects yet that have an application?

A couple of projects are testing OpenCL applications, some others have them already in full production.

For more info, search their Number Crunching forums for mention of the Lunatics optimized applications. (Until Seti v7 apps come out).

  • Einstein has a test project, called [email protected] that tests their BRP4 ATI OpenCL application on Windows, Macintosh and Linux!
  • Primegrid is testing an ATI OpenCL application on Windows, Linux and Macintosh (Proth Prime Search (Sieve)).
  • [email protected] has released all their favorite applications in OpenCL 1.1 format.
  • Collatz Conjecture has an OpenCL application for Mac OS X 10.5 or later and are beta testing apps for Windows and Linux.


Do I need to install anything to be able to run OpenCL?

  • In the case of Nvidia GPUs, you'll need an up-to-date driver.
  • In the case of ATI/AMD GPUs, you'll need an up-to-date APP driver.
  • In the case that your GPU cannot support the APP driver, for whatever reason, you'll need to install the ATI Stream SDK for Windows and Linux, since it contains specific libraries that are needed. You will also require Catalysts 10.4 or above. The SDK page will tell you which Catalysts are required for the latest SDK.


So far:

  • SDK v2.1 needed 10.4
  • SDK v2.2 needed 10.7
  • SDK v2.3 needed 10.9
  • SDK v2.4 needed 11.3/11/4
  • SDK v2.5 needed 11.7

You will need to install this SDK as AMD does not allow that projects distribute the needed libraries on their own yet.

Macintosh OS X 10.6 has these libraries built in.


Are there any tools or demos I can use to test with?

Of course there are.

There is one very cool Tool, called GPU Caps Viewer with which you can not only test the OpenGL part of your GPU, but also the OpenCL part of your GPU and CPU. Various demos are included in the application.

On top of that it gives a lot of information about your GPU and CPU, more than CPUZ and GPUZ can give together! For instance, it shows the actual OpenCL compute capability of your hardware.


Where can I read up on this technology?

Start on Guru3D's site. Further information (more technical) can be found on:

- AMD

- Nvidia

- Khronos


Original writer Original FAQ Date
Jorden 506 05-12-2009