LoRdCoStE
LoRdCoStE

Reputation: 131

Limit the number of compute units used by OpenCL

I need to limit the number of compute units used by my opencl application. I'm running it on a CPU that has 8 compute units, I've seen that with CL_DEVICE_MAX_COMPUTE_UNITS.

The execution time I get with OpenCL is much less than 8 times the normal algorithm without OpenCL (is like 600 time faster). I want to use just 1 compute units because I need to see the real improvement with the same code optimized by OpenCL.

It's just for testing, the real application will continue to use all the compute units.

Upvotes: 1

Views: 1602

Answers (1)

perhaad
perhaad

Reputation: 61

If you are using CPUs, Why dont you try using the OpenCL device fission extension ?

Device Fission allows you to split up a computer unit into sub-devices. You can then create a command queue to the subdevice and enqueue kernels only to that subset of your CPU cores,

You can divide your 8 core device into 8 subdevices of 1 core each for example.

Take a look at the Device Fission example in the AMD APP SDK.

Upvotes: 5

Related Questions