Does Intel OpenCL implementation use both CPU and GPU?

recently I wrote several versions of the same program (generating Julia Sets - fractals pictures at size 17200x17200 pixels) to check the performance of a few different solutions.

I wrote versions:

  • CPU (pthreads) - 252s/1 thread, 131s/2 threads, 114s/3 threads, 95s/4 threads
  • CUDA - 2.51s ;)
  • OpenCL - 3.39s on GPU Nvidia implementation, 16.51s on CPU Intel implementation

Testing platform: Intel Core i5 520M, GeForce 330M

My question is: How to explain OpenCL CPU score? I expected the result near 4 threads on standard implementation - about 95s, but it took much less time. While program was working CPU was busy in 390%. How could it be?

Is OpenCL using both my Core i5 and integrated Intel HD Graphics?


Solution 1:

Intel also provides a OpenCL driver for the Intel HD graphic. So it looks like your tools used the Intel HD graphic.

It is also discussed here:

OpenCL support in graphics cards & on the Intel HD3000