Improve `sycl-ls` output when no devices are available
- Dominant language
- LLVM
- Stars
- 1.5k
- Forks
- 854
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 137
Description
### 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:
1. Run `sycl-ls` with the `--verbose` flag. This provides some additional information but is rarely useful for understanding why SYCL devices are not listed.
2. 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_
Contributor guide
Assessment
This issue has not been assessed yet.