Skip to content

Commit

Permalink
[SYCL][DOCS] Remove references to host device in top-level docs (inte…
Browse files Browse the repository at this point in the history
…l#6836)

This commit removes references to the host device from the Getting
Started Guide and the FAQ documents.

Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
  • Loading branch information
steffenlarsen authored Sep 21, 2022
1 parent ef0f65e commit c1181f0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 22 deletions.
23 changes: 6 additions & 17 deletions sycl/doc/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,7 @@ compiler provides you with both host and device side compilation. Another
requirement for code offloading to specialized devices is a compatible OpenCL
runtime. Our [Get Started Guide](GetStartedGuide.md) will help you
set up a proper environment. To learn more about using the DPC++ compiler,
please refer to [Users Manual](UsersManual.md). If using a special compiler
is not an option for you and/or you would like to experiment without offloading
code to non-host devices, you can exploit SYCL's host device feature. This
gives you the ability to use any C++17 compiler. You will need to link your
application with the DPC++ Runtime library and provide a path to the SYCL
headers directory. Please, refer to your compiler manual to learn about
specific build options.
please refer to [Users Manual](UsersManual.md).

### Q: How are DPC++ compilation phases different from those of a usual C++ compiler? Can I customize this flow for my applications?
**A:** Due to the fact that both host and device code need to be compiled and
Expand Down Expand Up @@ -63,10 +57,11 @@ design/CompilerAndRuntimeDesign.md) document.

## Using applications built with DPC++

### Q: What happens if I run my application on a machine without OpenCL?
**A:** If you use the default SYCL device selector (or any other selector that
allows host device), then a fallback to the host device will take place.
Otherwise, an exception will be thrown.
### Q: What happens if I run my SYCL application on a machine without a supported backend?
**A:** If a SYCL application is unable to find a suitable device, the SYCL
objects (`sycl::context`, `sycl::queue`, etc.) or the SYCL device selector (See
[SYCL 2020 specificaion 4.6.1.1](https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#sec:device-selection))
will throw a `sycl::exception` with `errc::runtime` error code.


## Common issues
Expand Down Expand Up @@ -142,12 +137,6 @@ SPIR-V, a portable intermediate representation format. It is a core feature of
OpenCL 2.1, so any device, capable of OpenCL 2.1, should be supported.
Otherwise, your OpenCL device must support `cl_khr_il_program` extension.

Apart from that, there's also the so-called host device, which can be used when
no suitable OpenCL device is found. The host device will use your host CPU as
the offload target for kernel execution. Since the device code is also compiled
for the host CPU and no JIT is required, you can easily use any classic C++
debugging tools of your choice for the host device code.

Furthermore, developers can extend capabilities of the DPC++ Runtime to
non-OpenCL devices by writing correspondent plugins. To learn more, please
check out our [Plugin Interface Guide](design/PluginInterface.md).
Expand Down
6 changes: 1 addition & 5 deletions sycl/doc/GetStartedGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ more. To find available options, execute:
The `simple-sycl-app.exe` application doesn't specify SYCL device for
execution, so SYCL runtime will use `default_selector` logic to select one
of accelerators available in the system or SYCL host device.
of accelerators available in the system.
In this case, the behavior of the `default_selector` can be altered
using the `SYCL_BE` environment variable, setting `PI_CUDA` forces
the usage of the CUDA backend (if available), `PI_HIP` forces
Expand All @@ -682,9 +682,6 @@ SYCL_BE=PI_CUDA ./simple-sycl-app-cuda.exe
```
The default is the OpenCL backend if available.
If there are no OpenCL or CUDA devices available, the SYCL host device is used.
The SYCL host device executes the SYCL application directly in the host,
without using any low-level API.
**NOTE**: `nvptx64-nvidia-cuda` is usable with `-fsycl-targets`
if clang was built with the cmake option `SYCL_ENABLE_PLUGINS=cuda`.
Expand Down Expand Up @@ -825,7 +822,6 @@ which contains all the symbols required.
* DPC++ device compiler fails if the same kernel was used in different
translation units.
* SYCL host device is not fully supported.
* SYCL 2020 support work is in progress.
* 32-bit host/target is not supported.
* DPC++ works only with OpenCL low level runtimes which support out-of-order
Expand Down

0 comments on commit c1181f0

Please sign in to comment.