https://bugs.freedesktop.org/show_bug.cgi?id=93686
--- Comment #5 from [email protected] --- (In reply to Roland Scheidegger from comment #4) > (In reply to ytrezq from comment #3) > I'm not sure what you exactly mean here: They do "load balancing" with > multiple gpus as part of SLI You don’t need an ꜱʟɪ gpu for that, you just need to be Nvidia designed and supported by a recent Nvidia driver (something above >250). Then, this is only the matter of doing a right click on any apllication for pulling the context menu in windows® (you have the choice to run it on a particular gpu or use all gpus) > With OpenCL (as well as d3d12, Vulkan) multiple gpus are presented at the > api level. Thus, the application can chose which adapter to use for what, > which is pretty much the only way how this can work in a sane manner. There > were some demos for d3d12 which did (IIRC) all the rendering on the discrete > gpu and then ran some post-processing shader on the integrated graphics > using exactly that. So, yes, theoretically if we'd support Vulkan, something > like that would be doable, but only if the app decided to make use of it. I disagree, you can’t control invidual gpu in OpenCl. Either your program run on all gpu or all dedicated devices or all cpu. Or the 3 of the above. Yes this is true that the application can to only use a set of devices, but this is only a transparent choice which is completely handled by the api backend/driver. In all case .cl (and their kernel) files don’t change. So their is no code re‑factoring of any kind. This is much like requiring an OpenGl program to use llvmpipe instead of the hardware graphic library render with LIBGL_ALWAYS_SOFTWARE=1 Choosing the device in OpenCl is only matter of setting an integer between the values of CL_DEVICE_TYPE_CPU or CL_DEVICE_TYPE_GPU or CL_DEVICE_TYPE_ACCELERATOR or CL_DEVICE_TYPE_ALL (or choosing with a default). This might even be possible to change the device set by replacing that integer in the binary file. Some language libraries bindings for OpenCl even allow to override the choice outside of the program with environment variables So with OpenCl, I simply can tell “Compute that addition on all devices” and writing the addition in an high level manner with simply “(int)((long)variable_1+variable_2)”. I don’t think Vulkan or Direct3D can do this without a huge need for code re‑factoring. That’s why I wrote that if some parts of llvmpipe could be implemented using OpenCl, then there would be no need to worry about were it is being run (forgetting performance considerations). -- You are receiving this mail because: You are the QA Contact for the bug. You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
