1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Apple Mac OS X OpenCL Performance vs. Linux

Michael Larabel

Published on 26 August 2010
Written by Michael Larabel
Page 1 of 3 - 8 Comments

Yesterday we looked at the performance of Apple's "Snow Leopard Graphics Update" for Mac OS X 10.6.4 designed to enhance both the image quality and rendering performance for OpenGL games and applications. For testing their graphics update we benchmarked Mac OS X 10.6.2, 10.6.3, 10.6.4, and 10.6.4 with the Snow Leopard Graphics Update 1.0 installed and benchmarked the Apple OpenGL performance against Ubuntu Linux. The results were mixed showing Apple still has room to optimize their OpenGL stack compared to NVIDIA's Linux implementation and in not all areas did this package update result in performance enhancements. After we finished that OpenGL comparison, we decided to see how the OpenCL performance compares between Mac OS X 10.6.4 and Ubuntu Linux 10.04.1 LTS. We tested the Open Computing Language on both the Intel Core 2 Duo CPU and on the NVIDIA GPU.

OpenCL was originally developed by Apple in collaboration with the major tier-one hardware vendors and is now maintained by the Khronos Group, which also sees after the OpenGL specification and various other industry APIs. Apple released Mac OS X 10.6 "Snow Leopard" with a full OpenCL implementation that is capable of running on either the Intel CPU or ATI/NVIDIA GPUs. Older Mac computers with Intel graphics cannot accelerate OpenCL. Apple's OpenCL implementation utilizes the LLVM (Low-Level Virtual Machine) with the Clang compiler, both of which projects Apple also sponsors. Unfortunately, Linux currently lacks an OpenCL implementation that is provided "out of the box". The only way right now to take advantage of OpenCL under Linux is by either installing the ATI Catalyst driver and the AMD Stream SDK or the latest proprietary NVIDIA driver. When using the AMD Stream SDK you can utilize OpenCL on Radeon/FirePro graphics processors as well as with x86 SSE2/SSE3/SSE4 CPUs, but installing the Stream Software Development Kit requires the Catalyst driver to also be installed. The latest ATI Stream SDK release, which is version 2.2, supports the latest OpenCL 1.1 specification.

The proprietary NVIDIA Linux driver ships with its OpenCL library and header file within the driver package itself, which is much more convenient than having to install a separate package like is required with ATI graphics. However, NVIDIA's OpenCL implementation for Linux is limited to running on the GPU and not any CPU. The latest stable NVIDIA Linux driver implements the OpenCL 1.0 specification, but their latest development drivers that CUDA/OpenCL developers are able to test do provide OpenCL 1.1 compatibility. The OpenCL 1.1 specification was released in June adds new data types, enhanced use of events, additional C built-in functions, and improved OpenGL interoperability, among other enhancements since the OpenCL 1.0 specification was ratified in 2008.

Sadly, these are the only two viable options for using OpenCL under Linux at this point. There is Clover, which is the work of Zack Rusin to bring OpenCL over Mesa and Gallium3D for open-source graphics drivers and from there it could be implemented on the CPU via LLVMpipe. Clover also uses LLVM and Clang for its OpenCL compilation. While Clover has been around for a year, it has not made much progress and is still far from being usable. Once there is Clover implemented in Mesa/Gallium3D, we may finally see OpenCL available "out of the box" for Linux distributions or when any other open-source projects come around aiming for just a CPU implementation of OpenCL 1.0/1.1 with LLVM+Clang.

For this testing we once again used the 2009 Mac Mini (Apple Mac-F22C86C8) with an Intel Core 2 Dup P7350 clocked at 2.00GHz, 1GB of system memory, a 120GB Fujitsu MHZ2120B SATA HDD, and NVIDIA GeForce 9400M graphics. On the Mac OS X side we were running the updated Mac OS X 10.6.4 installation and Xcode 3.2.3 while on the Linux side was Ubuntu 10.04.1 LTS with the Linux 2.6.32 x86_64 kernel, X.Org Server 1.7.6, GCC 4.4.3, and Clang/LLVM 2.7. Originally, we planned to use the NVIDIA 256.44 Linux driver for our OpenCL testing, but it had not worked with OpenCL on the NVIDIA GeForce 9400M (MCP79) graphics processor. Instead we had to use the not-publicly-released NVIDIA 258.19 driver with its initial OpenCL 1.1 implementation where the GeForce 9400M had worked fine with OpenCL. Unfortunately, due to the NVIDIA OpenCL implementation not supporting the Open Computing Language on the CPU and the ATI Stream SDK not working without the Catalyst driver installed, we were limited to OpenCL GPU testing on Linux. With Apple Mac OS X we ran OpenCL tests both on the Intel Core 2 Duo P7350 and NVIDIA GeForce 9400M. Unfortunately, this is the only available Apple hardware we had to test.

Testing was done with the JuliaGPU, MandelGPU, SmallPT GPU, and MandelbulbGPU tests via the Phoronix Test Suite.

<< Previous Page
1
Latest Linux Hardware Reviews
  1. Btrfs On 4 x Intel SSDs In RAID 0/1/5/6/10
  2. AMD Radeon R9 290 On Ubuntu 14.10: RadeonSI Gallium3D vs. Catalyst
  3. MSI X99S SLI PLUS On Linux
  4. NVIDIA GeForce GTX 970 Offers Great Linux Performance
Latest Linux Articles
  1. NVIDIA's Linux Driver Can Deliver Better OpenGL Performance Than Windows 8.1
  2. Windows 8.1 vs. Ubuntu 14.10 With Intel HD Graphics
  3. 6-Way Ubuntu 14.10 Radeon Gallium3D vs. Catalyst Driver Comparison
  4. NVIDIA vs. Nouveau Drivers On Ubuntu 14.10
Latest Linux News
  1. Wine 1.7.30 Continues Work On DirectWrite & Offers Regedit Fixes
  2. Has The Sky Fallen? Qualcomm Contributes To Freedreno's DRM/KMS Driver
  3. Manjaro Works To Make Calamares A Distribution-Independent Installer
  4. DisplayLink USB 3.0 Support Sounds Like A Mess
  5. PulseAudio Gains A Native Bluetooth Headset Backend
  6. X.Org Foundation Decides On Its Women Outreach Project
  7. GTK+ 3.16's New GtkGLArea Widget Gets Improved
  8. X.Org Server 1.17 ABI Bumped
  9. Fedora 21 Beta To Be Released Next Week
  10. Go 1.4 Beta Release Brings Big Runtime Changes
Latest Forum Discussions
  1. What Would You Like To See Next?
  2. Closed source to opensource
  3. How to get rid of Linux
  4. Is foolish currently develop in machine code, hexadecimal and assembly?
  5. Reducing The CPU Usage In Mesa To Improve Performance
  6. Help diagnosing problems with a Readon HD 4670 on Mesa 10.3.2-1
  7. Advertisements On Phoronix
  8. nv and xorg.conf under Debian PPC