Does your computer have OpenCL-capable hardware? Read on and find out if your computer is compatible…
If you want to know what other non-PC hardware (phones, tablets, FPGAs, DSPs, etc) is running OpenCL, see the OpenCL SDK page.
For people who only want to run OpenCL-software and have recent hardware, just read this paragraph. If you have recent drivers for your GPU, you can be sure OpenCL is already supported and you can run OpenCL-capable software. NVidia has support for OpenCL 1.1 since drivers 280.13, so if you need OpenCL 1.1, then make sure you have this version or later. If you want to use Intel-processors and you don’t have an AMD GPU installed, you need to download the runtime of Intel OpenCL.
If you want to know if your X86 device is supported, you’ll find answers in this article.
Often it is not clear how OpenCL works on CPUs. If you have a 8 core processor with double threading, then it mostly is understood that 16 pipelines of instructions are possible. OpenCL takes care of this threading, but also uses parallelism provided by SSE and AVX extension. I talked more about this here and here. Meaning that an 8-core processor with AVX can compute 8 times 32 bytes (8*8 floats or 8*4 doubles) in parallel. You could see it as parallelism of parallelism. SSE is designed with multimedia-operations in mind, but has enough to be used with OpenCL. The minimum requirement for OpenCL-on-a-CPU is SSE 4.2, though.
A question I see often is what to do if you have more devices. There is no OpenCL-package for all the available devices, so you then need to install drivers for each device. CPU-drivers are often included in the GPU-drivers.
Read on to find out exactly which processors are supported.
Finding useful hardware
In short: hardware from 2010 and 2011 has OpenCL-support, hardware from late 2008 to beginning 2010 have reasonable support. Older hardware has support (if you bought the best of the best), but might not give real good speed-up. To be sure (as there are always exceptions), you need to know which processor and graphics card are installed.
Windows
As OpenCL works on CPUs, GPUs and accelerators, the first step is to get a list of all devices. Under the “System and Security” section of the “Control Panel” you’ll find the device manager. This lists all devices. We are interested in “display adaptors” and “processors”. Check for the brands AMD, ATI, NVidia and Intel.
Alternatively you can use CPU-z (CPUs and GPUs), GPUz (GPUs only) or GPU Caps Viewer (GPUs only, but also a lot on OpenCL-support) to find the information. For CPUs CPU-Z is very useful, as shows you immediately if your CPU supports SSE4.2 and AVX for exquisite OpenCL-performance.
Linux
Easiest way is to install ‘sysinfo’, which tells everything about your computer. Alternatively you can find supported CPUs with:
cat /proc/cpuinfo | grep sse4_2
A list of GPUs with:
lspci | grep VGA
Apple
You get the GPU-drivers provided with the OS. I found an overview of supported GPUs here, here and here. Support for CPUs is also available by default in the recent OSX releases. If you want to develop software on a MAC, you will find examples here and will find XCode completely ready.
The only down-side is that the drivers cannot be manually updated – you need to update OSX for that.
Intel CPUs
You can choose to use Intel’s drivers, or AMD’s drivers.
Intel OpenCL drivers
Intel’s drivers require support for SSE 4.1 4.2. Below is an overview of all CPUs released until now which support OpenCL via the intel driver. Do you have a Core processor, scroll down to AMD OpenCL drivers.
AVX (Q1 2011)
- 2nd Generation Core i-series (SandyBridge).
SSE 4.2 (Q1 2009 – Q3 2010)
- Core i7 Processors
- Core i5 Processors
- Core i3 Processors
- Xeon 55XX series
- Xeon 56XX series
- Xeon 75XX series
Update: SSE 4.1 not supported anymore. See discussion.
SSE4.1 (Q2-Q3 2008)
Xeon 74XX seriesQuad-Core Xeon 54XX, 33XX seriesDual-Core Xeon 52XX, 31XX seriesCore 2 Extreme 9XXX seriesCore 2 Quad 9XXX seriesCore 2 Duo 8XXX seriesCore 2 Duo E7200
AMD OpenCL drivers
Update: Under Windows OpenCL support for CPUs seems to have disappeared. Will update article accordingly, when we tested it ourselves.
AMD’s drivers support above devices and processors with SSE3 or SSSE3. They claim support for SSE2.x too – but since not much extra speed could be squeezed out of these, I only list CPUs with at least SSE3 support.
SSSE3
- Quad-Core Xeon 73XX, 53XX, 32XX series
- Dual-Core Xeon 72XX, 53XX, 51XX, 30XX series
- Core 2 Extreme 7XXX, 6XXX series
- Core 2 Quad 6XXX series
- Core 2 Duo 7XXX (except E7200), 6XXX, 5XXX, 4XXX series
- Core 2 Solo 2XXX series
- Pentium dual-core processor E2XXX, T23XX series
SSE3
- Atom processors (SSE3_ATOM)
- Dual-Core Xeon 70XX, 71XX, 50XX Series
- Dual-Core Xeon processor (ULV and LV) 1.66, 2.0, 2.16
- Dual-Core Xeon 2.8
- Xeon processors with SSE3 instruction set support
- Core Duo
- Core Solo
- Pentium dual-core processor T21XX, T20XX series
- Pentium processor Extreme Edition
- Pentium D
- Pentium 4 processors with SSE3 instruction set support
It is interesting to know that AMD and Intel have different optimisation techniques and therefore sometimes AMD’s and sometimes Intel’s drivers give faster code.
The AMD SDK can be downloaded from http://developer.amd.com/amdapp
Intel GPUs
For the HD 4000 and up there is OpenCL 1.2 support on Windows 7/8/10. The Intel drivers can be downloaded from http://software.intel.com/en-us/vcsource/tools/opencl-sdk
For Apple you need OSX Sea Lion.
No support under Linux.
AMD CPU/APU
Intel officially only supports their own processors, so you cannot use Intel’s drivers.
To have good support for OpenCL, it is a good bet to have at least SSE4a-support – which is on their K10-architecture:
- Phenom
- Phenom II
- Athlon II
- Athlon 64 (since Venice Stepping E3 and San Diego Stepping E4)
- Athlon 64 X2
- Athlon 64 FX (since San Diego Stepping E4)
- Opteron (since Stepping E4)
- Sempron (since Palermo. Stepping E3)
- Turion 64
- Turion 64 X2
AMD/ATI GPUs
Over the years the architecture of AMD/ATI GPUs changed to get better support for OpenCL. Below is a list of GPUs that have good support for OpenCL 1.1 or 1.2.
- Recent APUs with embedded Radeon HD.
- Radeon HD 6450 and up.
- Radeon HD 5450 and up.
- FirePro V8800, V7800, V5800, V4800 and V3800.
- Mobility Radeon HD 5430 and up.
- HD 6330M and up.
- Mobility FirePro M7820 and M5800.
- Radeon 4350 and up.
- FirePro V8750, V8700, V7750, V5700 and V3750.
- FireStream 9270 and 9250.
- Mobility Radeon HD 4300 Series and up.
- Mobility FirePro M7740.
Recent drivers have the OpenCL runtime. The SDK can be downloaded from http://developer.amd.com/amdapp
NVidia GPUs
NVidia supports OpenCL well on devices with Compute Capability 1.3 and up, which are the following:
- GeForce GTX 260 and up.
- GeForce GTX 400 series.
- GeForce GTX 500 series.
- Tesla C/S 1060 and up.
- Quadro FX 4800 and 5800
- GeForce 100 series.
- GeForce 200 series.
- GeForce 8000 series.
- GeForce 9000 series.
- Tesla C/D/S 870.
- Quadro FX. Check this table if it mentions CUDA-cores.
Want more OpenCL?
Best thing to do is to stay in touch with us via Twitter and via the newsletter.
Take some time to look around on this site, as there is a lot of information on OpenCL available on for example the blog and self-study pages.
StreamHPC provides consultancy and training to support your business-needs. This is perfect if you want get up-and-running quickly.
If you have any questions, just fill in the contact-form or give a call.
NVIDIA compute 1.x devices (including 1.0 to 1.2) support OpenCL with no problem. The problem is that they only support OpenCL 1.0 because they only have 16KB local memory and the spec requires at least 32KB for OpenCL 1.1
You can get really good speedups, but in all cases you need to know what you are doing for complex work
Thanks for this hint. There is 48KB on NVidia GPUs with at least Compute Capability 2.0, which are the Geforce 400 an 500 series (cards of March 2010 and later).
can you clarify why should one pay so much for tesla over the geforce line. I have read somewhere that geforce doesn’t support double precision. Can you verify that.
Most important Tesla has ECC memory – this makes the device slower though. It also has Infiniband for faster transfers (if not routed via PCI-e of course). They have had “Zero error tolerance stress testing” and have 3 years waranty. And also very important: great HPC-support.
Pingback: Does Your Device Support OpenCL? | insideHPC.com
Are OpenCL and CUDA complementary? It looks so on the surface. They have the same approach targeting heterogeneous hardware based on unified computational kernel concept. What’s with that? Why not using one standard? Are there clear competitive advantage of using the one over the other and/or vice versa?
OpenCL is the standard, CUDA only works on Nvidia-hardware. As having a standard has the most advantages, especially in the long term, we at StreamHPC chose OpenCL.
10x. Who is backing OpenCL? Khronos group?
Correct. http://www.khronos.org/opencl/
Hi there.
I have an 8 core AMD CPU and and Nvidia 570 GPU. I’ve an application that uses OPENCL for processing large ammounts of data. When I had an intel dual core the application could see the Nvidia GPU, but now with the AMD CPU and app can not see the Nvidia graphics card. I’ve upgraded all drives I could fine (twice or more) but no luck. Any ideas?
You should focus on the NVIDIA-drivers – you can ignore the CPU, as OpenCL is designed to have several drivers working next to each other.
Get CPU-Z or Caps-viewer to find out if the drivers were installed correct. If CUDA works, but OpenCL doesn’t, then you need other drivers.
AMD Mobility Radeon HD *5430 and UP*
Does Radeon mobilty HD 6490M support OpenCL?
That card has support for OpenCL 1.1. See http://www.techpowerup.com/gpudb/414/AMD_Radeon_HD_6490M_512_MB.html for more info.
I want open cl support for Intel 82915G/GV/910GL.
Is it possible???
Isn’t that a motherboard-chipset? You need to find out the CPU or GPU available in your system as described above.
ATI card support:
“Radeon HD 5450 and up.”
But why is my HD 5670 NOT working on OpenCL? (Overclocked)
According to http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/system-requirements-driver-compatibility/ your card supports OpenCL indeed. So something else is wrong. Easiest is to discuss your problem at http://www.khronos.org/message_boards/forumdisplay.php/87-OpenCL
Dear All,
I am the fresher in OpenCL field.
So, Can you please help me to execute one sample opencl program.
So, that I can run one OpenCl program
I do not know about the system requirements also.
Please guide me!
At https://streamhpc.com/knowledge/for-developers/ there is a huge section of the site where we’ve collected materials to help starting developers like yourself. Let me know what information you found helpful to start going.
Hi, I my laptop has the following, ATI Radeon HD 3200 Graphics, and AMD Dual Core Mobile RM 72 Processors. is there a way where I can get support for OpenCL ? I didn’t see these under the list, but I thought I would ask if there is a way to make it work. thanks in advance
On the link to the CPU-z program there is “GPU-z” written that seems to be a misprint
Thanks!
please i have Intel celeron CPU B830 and Intel HD Graphic card, WIn 8. is there any driver that will enable open CPL in that kind of system. thanks.
You could try PortableCL aka POCL, if the official Intel drivers doesn’t support it.
I am a lucky owner of Intel’s CPU with SSE 4.1 and it is supported in “Intel® SDK for OpenCL 2012”, but not in the later releases (SSE 4.2 becomes the mandatory). At the moment, Intel provides SDK for 2015 and 2016 years. Perhaps somebody still keeps such an ancient SDK 2012 release?
Try PortableCL/POCL.