Introduction

With Intel CPUs making up nearly <a href="https://www.cpubenchmark.net/market_share.html">80% of the CPU market</a> and <a href="http://jonpeddie.com/press-releases/details/gpu-market-upintel-and-nvidia-graphics-winners-in-q4-amd-down/">66% of computers using integrated graphics</a> one can easily argue that integrated graphics devices represent one of the greatest markets for GPU-accelerated computing. Here at ArrayFire, we have long recognized the potential of these devices and offer built-in support for Intel CPUs, GPUs, and AMD APUs in the OpenCL backend of our <a href="http://www.arrayfire.com">ArrayFire</a> GPU computing library. Yet one common theme for debate in the office has been how the hardware performs on different operating systems with different drivers across hardware revisions.

To answer these questions (and, perhaps, to win an office bet) I decided to write a series of blog posts about Intel's GPU OpenCL performance.

<span style="line-height: 1.5;">#</span>

This weekend we decided to

the high level of cache makes them interesting devices to program

To compare the performance we stepped back to one of our favorite problems: calculation
of Pi by a Monte Carlo process.

1. Single core CPU implementation
2. A naive port of the CPU code into an OpenCL kernel, sum the results on the CPU
3. Reduce the workload of the CPU by partially summing the results on the GPU
4. Improve performance by using coalesced memory loads

Objective:
Compare the performance of OpenCL on Intel CPUs and Intel GPUs using both the
stock (Intel-provided) drivers (on Windows) and the open-source project, Beignet

Method:
* Use a classic benchmark: compute the value of Pi via. Monte Carlo methods
* Using the current git master version of Beignet (commit acfc2a2799b9cb4153b7581f66a78b046fbb97ec)

Hardware:
* ASUS N56V laptop
* i7-3610QM CPU
* HD Graphics 4000 GT2 GPU (16 EUs, 128 threads)

Operating systems:
* Ubuntu 14.10 with Beignet Release_v1.0.2

Results:
* Beignet is slightly slower on a i7-3610QM processor than Intel CPU
* Beginet is 16-21x faster than a single-core CPU implementation for this problem
speedbird: Ubuntu Linux 14.10, Beignet, i7-3610QM, Intel(R) HD Graphics IvyBridge M GT2 (HD Graphics 4000)