You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Another thing that I have concerns this – API device_context('opencl:gpu:0')
As user I don’t want to select backend or gpu device unless I would like to do so. And currently this are mandatory params. Even with DPC++ runtime i’m not providing such level of details – so I assume I shouldn’t do this in python as well.
Another point about specifying backend:
For now, we have to specify “OpenCL” backend if we run on CPU. But in oneDAL, we have no OpenCL dependency for CPU computations – we run native code. I think it’s incorrect to specify “OpenCL” backend in such cases where you don’t know what the actual backend will be used – why we need to specify it?
The same case for MKL – they run native GEN9-12 assembly on GPUs – I’m not sure we can specify “opencl” or “level0” backend here.
And what should the library do if the requested backend does not match the way how device support is implemented inside? Check backend type and throw an exception?
Should it be the default based on behavior of SYCL's device selector for the specified group of devices? For example for gpu devices we will rank all GPU devices based on the score provided by cl:sycl::gpu_selector, and use the back-end associated with the the selected device?
changed the title [-]Allow users to speficy a default backend when selecting a device_context.[/-][+]Allow users to specify a default backend when selecting a device_context.[/+]on Oct 7, 2020
Comment on default behavior - the assumption is that in case just gpu device selected we are are not mapping to particular device underneath or doing some sort of round robin dispatching - compiler runtime is capable of doing dispatching assuming internal load balancing across devices - so i would say this should be done in similar way.
Activity
oleksandr-pavlyk commentedon Oct 5, 2020
Should it be the default based on behavior of SYCL's device selector for the specified group of devices? For example for
gpudevices we will rank all GPU devices based on the score provided bycl:sycl::gpu_selector, and use the back-end associated with the the selected device?[-]Allow users to speficy a default backend when selecting a device_context.[/-][+]Allow users to specify a default backend when selecting a device_context.[/+]napetrov commentedon Oct 13, 2020
Comment on default behavior - the assumption is that in case just gpu device selected we are are not mapping to particular device underneath or doing some sort of round robin dispatching - compiler runtime is capable of doing dispatching assuming internal load balancing across devices - so i would say this should be done in similar way.
oleksandr-pavlyk commentedon Oct 16, 2020
Please see SYCL extension proposal for filter selectors: https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/FilterSelector/FilterSelector.adoc
napetrov commentedon Oct 16, 2020
I think most important part - "Every element of the triple is optional, but a filter must contain at least one component."
oleksandr-pavlyk commentedon Nov 16, 2020
filter_selectoris implemented in dpcpp b10, e.g.diptorupd commentedon Apr 16, 2021
Closing as we now support filter selectors in
device_context.