OpenCL for crosss-platform and multiple devices ?

Hi everyone,

I am successful to run Opencl on one device. But I don’t know how to run it on multiple devices and cross-platform. My PC has: 1 Intel CPU core i5, one Intel HD Graphics 4000, one Nvidia GT630M and I would like to use all resources ( CPU and all GPUs ) in my computer for computing in OpenCL. I have tried to find some tutorials for this but looks like no one similar what I expect. Could anyone know some useful links / demos/ tutorials about this issue ? I appreciate so much.

Thanks,
Duy.

Hi Duy,

with an up2date driver, openCL should be available on your oher platforms as well. And they will include the compiler for the code. So you can deliver your code as a textfile or as a string in your sw and you should be able to run it on other platforms

Hi clint,

May be you misunderstood what I meant, I mean that now I have the example using OpenCL ( multiple 2 matrix ), I ran it on each devices in my PC, and it worked properly, but just one device a the time. Now I would like to combine all ( CPU, 2 GPUs ) of them in multiple 2 matrix instead of running on each device. because I saw many topics to discuss how to leverage multiple devices but I don’t see anything clear. So I hope I can find something to start resolving my problem.

Thanks.
Duy

Hi duy, it is possible to spread out you Problem across all devices on One platform automatically. So i think you might be able to spread it across the whole Intel platform by creating both devices in there. Automativally there is no way to spread it to all three i think. You have to create all devices an Split your Problem manually. And i have noticed that on my amd apu, the GPU device wont be usable when the dedicated amd GPU is also activated. But i dont have an Intel apu so i dont Know if its the Same there.
please keep me up 2 date with your Problem. Its quite interesting to know.

Thanks, clint

[QUOTE=clint3112;29503]Hi duy, it is possible to spread out you Problem across all devices on One platform automatically. So i think you might be able to spread it across the whole Intel platform by creating both devices in there. Automativally there is no way to spread it to all three i think. You have to create all devices an Split your Problem manually. And i have noticed that on my amd apu, the GPU device wont be usable when the dedicated amd GPU is also activated. But i dont have an Intel apu so i dont Know if its the Same there.
please keep me up 2 date with your Problem. Its quite interesting to know.

Thanks, clint[/QUOTE]

Hi clint,

Actually, I did similar thing what you said. I tried to combine 2 devices same Intel platform automatically but the performance is not better than run on one device. So I am not sure about the result of combination many Nvidia GPUs, but I believe that the best scenario is that we have to handle everything manually. By this way, we can avoid the free time of CPU and GPU and use most of their power in computing parallelly. I will update you if I find anything.

Thanks,
Duy.

Hi Duy,

i think multiple NVidia Devices could get a speedup by crossfire and can share memory faster than. I dont know how APU Memory is shared on Intel so that might be a bottleneck. OferRosenberg had a presentation about intel memory architecure somehwere if you wnat to know more.