Is your feature request related to a problem? Please describe
Presently, when no SYCL devices are available, running sycl-ls produces no output. Many users have provided feedback saying they get stuck at this point during the initial system setup. A system with zero available SYCL devices nearly always implies some configuration issue. For non-experts, it can be challenging to figure out the problem without any feedback from the sycl-ls tool.
Describe the solution you would like
We should provide some guidance to users when the runtime detects no SYCL devices. At a minimum, the sycl-ls tool could reference some setup documentation. A better solution would be to present a checklist of runtime tests that are used to query the available devices. As an example, the tool could inform the user if any packages need to be installed, a dynamic library failed to load, or the devices are being filtered by an environment variable. The user is running sycl-ls on a CPU so we should at least be able to guide them towards configuring the OpenCL CPU backend correctly.
Describe alternatives you have considered
Current alternatives are the following:
- Run
sycl-ls with the --verbose flag. This provides some additional information but is rarely useful for understanding why SYCL devices are not listed.
- Run
sycl-ls with the strace tool. This will produce an output of all of the system calls made by the tool and can point towards missing dependencies.
Additional context
No response
Is your feature request related to a problem? Please describe
Presently, when no SYCL devices are available, running
sycl-lsproduces no output. Many users have provided feedback saying they get stuck at this point during the initial system setup. A system with zero available SYCL devices nearly always implies some configuration issue. For non-experts, it can be challenging to figure out the problem without any feedback from thesycl-lstool.Describe the solution you would like
We should provide some guidance to users when the runtime detects no SYCL devices. At a minimum, the
sycl-lstool could reference some setup documentation. A better solution would be to present a checklist of runtime tests that are used to query the available devices. As an example, the tool could inform the user if any packages need to be installed, a dynamic library failed to load, or the devices are being filtered by an environment variable. The user is runningsycl-lson a CPU so we should at least be able to guide them towards configuring the OpenCL CPU backend correctly.Describe alternatives you have considered
Current alternatives are the following:
sycl-lswith the--verboseflag. This provides some additional information but is rarely useful for understanding why SYCL devices are not listed.sycl-lswith thestracetool. This will produce an output of all of the system calls made by the tool and can point towards missing dependencies.Additional context
No response