Does Your Hardware Support Opencl? - 12-29-2011 by Vincent - Streamcomputing
Total Page:16
File Type:pdf, Size:1020Kb
Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu Does your hardware support OpenCL? by vincent – Thursday, December 29, 2011 http://streamcomputing.eu/blog/2011-12-29/opencl-hardware-support/ Does your computer have OpenCL-capable hardware? Read on and find out… 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 absolute minimum requirement for OpenCL-on-a-CPU is SSE3, though. A question I see often is what to do if you have more devices. There is no OpenCL-package for all devices, so you then need to install drivers for each device. 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 GPU-z (CPUs and GPUs), GPUz (GPUs only) or GPU Caps Viewer (GPUs page 1 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu 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 sse3 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 and here. Support for CPUs is also already there. 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. Intel CPUs You can choose to use Intel’s drivers, or AMD’s drivers. Intel OpenCL drivers Intel’s drivers require support for SSE4.1. 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) page 2 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu Core i7 Processors Core i5 Processors Core i3 Processors Xeon 55XX series Xeon 56XX series Xeon 75XX series SSE4.1 (Q2-Q3 2008) Xeon 74XX series Quad-Core Xeon 54XX, 33XX series Dual-Core Xeon 52XX, 31XX series Core 2 Extreme 9XXX series Core 2 Quad 9XXX series Core 2 Duo 8XXX series Core 2 Duo E7200 The Intel SDK can be downloaded from http://software.intel.com/en-us/articles/download-intel-opencl-sdk/. AMD OpenCL drivers 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 page 3 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu 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 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 Bulldozer CPUs/APUs have support for AVX and thus even better performance with OpenCL. With SSE3 you might get some speed-up. These are: 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 The AMD SDK can be downloaded from http://developer.amd.com/amdapp 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. Recent APUs with embedded Radeon HD. Radeon HD 6450 and up. page 4 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu Radeon HD 5450 and up. FirePro V8800, V7800, V5800, V4800 and V3800. Mobility Radeon HD 5430 and up. Mobility FirePro M7820 and M5800. Older GPUs do have (beta) support, but won’t give really good speed-ups. It might be of interest when you have CrossFire. Here is the list: 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 Older GPUs (with compute capability 1.0 to 1.2) won’t get really good speed-ups. It might be of interest when you have SLI. The GPUs not listed above from the following series have minimal support for OpenCL, but the list could have some mistakes due to generalisations: 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. Recent drivers have the OpenCL runtime. The SDK can be page 5 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu downloaded from http://developer.nvidia.com/cuda-downloads. It might seem a bit strange you need the CUDA-SDK to develop OpenCL, but they chose to bundle the two. 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. StreamComputing 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. _______________________________________________ PDF generated by Kalin’s PDF Creation Station Related content: 1. Installing both NVidia GTX and AMD Radeon on Linux for OpenCL 2. NVIDIA’s answer to SandyBridge and Fusion 3. X86-workstation buying guide for OpenCL developers, Q1 2013 Also check out these posts LEAP-conference call for papers page 6 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu OpenCL Basics: Flags for the creating memory ... page 7 / 8 Does your hardware support OpenCL? - 12-29-2011 by vincent - StreamComputing - http://streamcomputing.eu Low-Energy Application Parallelism (LEAP) con... StreamComputing is at HiPEAC, Berlin page 8 / 8 Powered by TCPDF (www.tcpdf.org).