To get all CPU/GPU OpenCL devices, I do this
const std::vector<boost::compute::device> openCLdevices = boost::compute::system::devices();
if(openCLdevices.empty()){
BOOST_THROW_EXCEPTION(boost::compute::no_device_found());
}
for(size_t i = 0; i < openCLdevices.size(); i++) {
if (openCLdevices[i].type() & boost::compute::device::gpu) { std::cout << "GPU: " << openCLdevices[i].name() << std::endl; }
if (openCLdevices[i].type() & boost::compute::device::cpu) { std::cout << "CPU: " << openCLdevices[i].name() << std::endl; }
}
In result I got
GPU: Caicos => OK AMD GPU
CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
I do not understand why there are three times "CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz"
I should only have "CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz" once
Thank you for your support.