First try to understand hosts & devices: streamcomputing.eu/blog/2011-07-14/basic... Basically you can just do exactly what you described: check if a certain driver is available and if not, try the next one. What you choose first depends completely on your own preference. I would pick the device I have tested my kernel best on.In JavaCL you can pick the fastest device with JavaCL.
CreateBestContext and CLPlatform. GetBestDevice, check the host-code here: ochafik.com/blog/?p=501 Know NVidia does not support CPUs via their driver; only AMD and Intel do. Also is targeting multiple devices (say 2 GPUs and a CPU) a bit more difficult.
First try to understand hosts & devices: streamcomputing.eu/blog/2011-07-14/basic... Basically you can just do exactly what you described: check if a certain driver is available and if not, try the next one. What you choose first depends completely on your own preference. I would pick the device I have tested my kernel best on.In JavaCL you can pick the fastest device with JavaCL.
CreateBestContext and CLPlatform. GetBestDevice, check the host-code here: ochafik.com/blog/?p=501 Know NVidia does not support CPUs via their driver; only AMD and Intel do. Also is targeting multiple devices (say 2 GPUs and a CPU) a bit more difficult.
There is no API providing what you want. However, you can do the following: I suggest you iterate over clGetPlatformIDs and query for the number of devices (clGetDeviceIDs), and device type for each device; and pick the platform which has both types. Then build a map in u'r code, that maps for each type the list of platforms supporting it, ordered in some manner.
Finally, just get the first item in the list corresponding for CL_DEVICE_TYPE_CPU and the first item corresponding for CL_DEVICE_TYPE_GPU. If both returned results are equal (platform_cpu == platform_gpu) then pick one of them and use it for both. If there is a platform supporting both, you will get match as before since you got order lists.
Then you can also do load balancing if you like on a single platform, like what Intel has.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.