Opencl Benchmark : CPU Usage

I have to make a presentation on Opencl performance, CPU vs GPU,
so I’m using examples from nvidia Opencl SDK,
I can print the process time with both CPU and GPU(opencl) used, and see that it’s a lot faster with OpenGL,
but when I look at my CPU usage when running Opencl Gpu code, it’s used up to 50%,

How can I explain that? isn’t Opencl code supposed to run on GPUs only?


Intel core2 DUO CPU

When the CPU is blocked via finish(), waitForEvents(), or a blocking I/O, the usage is quite high. I found this using the profiler of my IDE, Netbeans. My guess is the code running on the CPU is a poling loop, checking for completion. Add a (EDIT: flush() then a) small Thread.sleep(), or whatever your host language has, in between the last enqueue & the block, and see what happens. I have this coded up, but have moved back to OSX until I can replace a 8800 GTX with something that can do atomics. On OSX, I have the wait set to 0. Fighting too many fires at the moment to turn it on.