Hi Oliver, At 01:01:17 PDT 2011 4/12/11, Oliver Bock wrote: >Ok, so when the core client enumerates the devices, it requests >CL_DEVICE_TYPE_GPU devices only, right?
Yes. At 10:17 AM +0200 4/12/11, Oliver Bock wrote: >On 4/11/11 23:00 , Charlie Fenton wrote: >> As Rom writes, we are still working on sorting out the OpenCL detection >> and implementation. One major issue will be when a client has multiple >> GPUs and a mix of CUDA and OpenCL tasks or a mix of CAL and OpenCL tasks >> (or even all three.) From what we have seen so far, each framework has >> its own way of enumerating GPUs, and there is no "official" way of >> correlating the enumerations. > >True. However, I'd think that the device enumeration is at least >deterministic within one platform, such that it should be possible to >enumerate all OpenCL device IDs in the core client and in the science >app with constant order. Given the same device type filter is used both >should agree on a given device's index, right? We hope so, but we don't know for sure that this is true. That is what we need to determine. At this point, this assumption is only speculation. >Have you tested this already? As I wrote before, only for multiple NVIDIA GPUs on Windows 7 on one computer. >This might get even more complicated if there are multiple OpenCL >platforms available/installed on one host. In that case we'd need the >platform index (deterministic order again?) as well as device index... Correct. Again, our experience is very limited. But it appears that each OpenCL "platform" corresponds to one GPU manufacturer. >Thinking about the multiple framework issue: shouldn't it be sufficient >to enumerate all devices by all installed frameworks separately? We >could than probably use plan classes to distinguish between the >frameworks (we already do for app selection) and define device selection >and ID propagation schemes for each of them. I'm not sure I understand what you are saying here. Here is an example of a situation we are concerned with: A computer running BOINC has 3 identical NVIDIA GPUs. project A sends it a CUDA task, and project B sends it an OpenCL task. We need to make sure we have a way of associating the enumeration provided by CUDA with that provided by OpenCL, to make sure BOINC does not assign the two tasks too the same GPU. If indeed we can be sure that CUDA and OpenCL always return the GPUs in the same order, then we can use that information to accomplish this. But at this point we don't know that for sure. Likewise, we do not have any proof that CAL and OpenCL return ATI / AMD GPUs in the same order. > > This is of course important to make sure that we don't assigning the >> same GPU to both an OpenCL task and a different CUDA or CAL task. One >> preliminary test indicates that at least on Windows 7, CUDA does return >> the NVIDIA GPUs in the same order as OpenCL, but we have only the one >> sample and we have no test results for CAL or for Macintosh or Linux. > >Linux is my current OpenCL development system anyway but I'll also look >into OSX as soon as I got a first Linux port done. > >> Rom has filed a spec bug with the Khronos Group over the need for an >> explicit way to map OpenCL devices to their native platform IDs. >> >> You can find it here: >> <http://www.khronos.org/bugzilla/show_bug.cgi?id=458> Please note: I will be traveling for the next week and so will have very limited access to email. Cheers, --Charlie -- Charlie Fenton [email protected] BOINC / SETI@home Macintosh & Windows Programmer Space Sciences Laboratory UC Berkeley _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
