Skip to content

Commit edbfc99

Browse files
authored
[SYCL][Doc] Move internal design docs (#5556)
Move all the internal design documents to a separate directory. This declutters the "sycl/doc" directory, making it easier to find the end-user documentation. It also moves several documents out of "sycl/doc/extensions" which were not actually extension specifications. We decided that the "sycl/doc/dev" directory should hold BKMs (best known methods) for developers, so rename it accordingly.
1 parent 8e30ff3 commit edbfc99

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+94
-74
lines changed

sycl/ReleaseNotes.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ Release notes for commit range 4fc5ebe..bd68232
1515
- Added support for SYCL 2020 exceptions [5c0f748][eef07606][5af8c43d]
1616
- Added support for [SYCL_EXT_INTEL_BF16_CONVERSION extension](doc/extensions/experimental/SYCL_EXT_INTEL_BF16_CONVERSION.asciidoc)
1717
[8075463]
18-
- Added support for fallback implementation of [assert feature](doc/Assert.md)
18+
- Added support for fallback implementation of [assert feature](doc/design/Assert.md)
1919
[56c9ec4]
2020
- Added support SYCL 2020 `sycl::logical_and` and `sycl::logical_or` operators
2121
[6c077a0]
2222
### Documentation
23-
- Added design document for [optional kernel features](doc/OptionalDeviceFeatures.md)
23+
- Added design document for [optional kernel features](doc/design/OptionalDeviceFeatures.md)
2424
[88cfe16]
2525
- Added [SYCL_INTEL_bf16_conversion extension document](doc/extensions/experimental/SYCL_EXT_INTEL_BF16_CONVERSION.asciidoc)
2626
[9f8cc3af]
2727
- Align [SYCL_EXT_ONEAPI_GROUP_MASK extension](doc/extensions/supported/SYCL_EXT_ONEAPI_SUB_GROUP_MASK.asciidoc)
2828
with SYCL 2020 specification [a06bd1fb]
29-
- Added [documentation](doc/SYCLInstrumentationUsingXPTI.md) of XPTI related
29+
- Added [documentation](doc/design/SYCLInstrumentationUsingXPTI.md) of XPTI related
3030
tracing in SYCL [1308fe7b]
3131
- Align `SYCL_EXT_ONEAPI_LOCAL_MEMORY` extension
3232
[document](doc/extensions/supported/SYCL_EXT_ONEAPI_LOCAL_MEMORY.asciidoc) with SYCL 2020
@@ -1104,7 +1104,7 @@ Release notes for commit range c9d50752..5d7e0925
11041104
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
11051105
with older version of the SYCL library may not work with new one.
11061106
The workaround is to rebuild the application.
1107-
[ABI policy guide](doc/ABIPolicyGuide.md)
1107+
[ABI policy guide](doc/developer/ABIPolicyGuide.md)
11081108
- Using `cl::sycl::program` API to refer to a kernel defined in another
11091109
translation unit leads to undefined behavior
11101110
- Linkage errors with the following message:
@@ -1243,7 +1243,7 @@ Release notes for commit range 5976ff0..1fc0e4f
12431243
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
12441244
with older version of the SYCL library may not work with new one.
12451245
The workaround is to rebuild the application.
1246-
[ABI policy guide](doc/ABIPolicyGuide.md)
1246+
[ABI policy guide](doc/developer/ABIPolicyGuide.md)
12471247
- Using `cl::sycl::program` API to refer to a kernel defined in another
12481248
translation unit leads to undefined behavior
12491249
- Linkage errors with the following message:
@@ -1431,7 +1431,7 @@ Release notes for the commit range 75b3dc2..5976ff0
14311431
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
14321432
with older version of the SYCL library may not work with new one.
14331433
The workaround is to rebuild the application.
1434-
[ABI policy guide](doc/ABIPolicyGuide.md)
1434+
[ABI policy guide](doc/developer/ABIPolicyGuide.md)
14351435
- Using `cl::sycl::program` API to refer to a kernel defined in another
14361436
translation unit leads to undefined behavior
14371437
- Linkage errors with the following message:
@@ -1585,7 +1585,7 @@ Release notes for the commit range ba404be..24726df
15851585
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
15861586
with older version of the SYCL library may not work with new one.
15871587
The workaround is to rebuild the application.
1588-
[ABI policy guide](doc/ABIPolicyGuide.md)
1588+
[ABI policy guide](doc/developer/ABIPolicyGuide.md)
15891589
- Using `cl::sycl::program` API to refer to a kernel defined in another
15901590
translation unit leads to undefined behavior
15911591
- Linkage errors with the following message:
@@ -1661,7 +1661,7 @@ Release notes for the commit range ba404be..67d3d9e
16611661
- Updated prerequisites in GetStartedGuide(doc/GetStartedGuide.md) [5d0d034]
16621662
- Published a [proposal](doc/extensions/KernelRHSAttributes/SYCL_INTEL_attribute_style.asciidoc)
16631663
for function-type attributes (right-sided) for kernel attributes [5d5351b]
1664-
- The [compiler and runtime design doc](doc/CompilerAndRuntimeDesign.md) has
1664+
- The [compiler and runtime design doc](doc/design/CompilerAndRuntimeDesign.md) has
16651665
been updated to describe the CUDA target and reflect changed action graphs
16661666
[91b597b] [212a26c]
16671667
- [ExtendedAtomics documentation](doc/extensions/ExtendedAtomics/README.md)
@@ -1673,7 +1673,7 @@ Release notes for the commit range ba404be..67d3d9e
16731673
- Published [device_specific_kernel_queries](doc/extensions/DeviceSpecificKernelQueries/SYCL_INTEL_device_specific_kernel_queries.asciidoc)
16741674
extension which rephrases work group queries as device-specific kernel
16751675
queries [4c07ff8]
1676-
- Added more information about the [plugin interface (PI)](doc/PluginInterface.md)
1676+
- Added more information about the [plugin interface (PI)](doc/design/PluginInterface.md)
16771677
[0614e9a]
16781678
- [Contribution guidelines](../CONTRIBUTING.md) were simplified, now sign-off
16791679
line is not required [7886fd8]
@@ -1736,7 +1736,7 @@ Release notes for the commit range ba404be..67d3d9e
17361736
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
17371737
with older version of the SYCL library may not work with new one.
17381738
The workaround is to rebuild the application.
1739-
[ABI policy guide](doc/ABIPolicyGuide.md)
1739+
[ABI policy guide](doc/developer/ABIPolicyGuide.md)
17401740
- Using `cl::sycl::program` API to refer to a kernel defined in another
17411741
translation unit leads to undefined behavior
17421742
- Linkage errors with the following message:

sycl/doc/FAQ.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ compiler command-line interface in general, please refer to the
5858
To learn more about the concepts behind this flow, and the DPC++
5959
Compiler internals as such, we welcome you to study our
6060
[DPC++ Compiler and Runtime architecture design](
61-
CompilerAndRuntimeDesign.md) document.
61+
design/CompilerAndRuntimeDesign.md) document.
6262

6363

6464
## Using applications built with DPC++
@@ -150,7 +150,7 @@ debugging tools of your choice for the host device code.
150150

151151
Furthermore, developers can extend capabilities of the DPC++ Runtime to
152152
non-OpenCL devices by writing correspondent plugins. To learn more, please
153-
check out our [Plugin Interface Guide](PluginInterface.md).
153+
check out our [Plugin Interface Guide](design/PluginInterface.md).
154154

155155
### Q: DPC++ applications hang on Intel GPUs while working well on other devices
156156
**A:** One of the common reasons is Intel GPUs feature called "hang check".

sycl/doc/GetStartedGuide.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ docker run --name sycl_build -it -v /local/workspace/dir/:/src ghcr.io/intel/llv
5454
```
5555

5656
This command will start a terminal session, from which you can proceed with the
57-
instructions below. See [Docker BKMs](dev/DockerBKMs.md) for more info on Docker
57+
instructions below. See [Docker BKMs](developer/DockerBKMs.md) for more info on Docker
5858
commands.
5959

6060
### Create DPC++ workspace
@@ -434,7 +434,7 @@ command:
434434
435435
### Obtain prerequisites for ahead of time (AOT) compilation
436436
437-
[Ahead of time compilation](CompilerAndRuntimeDesign.md#ahead-of-time-aot-compilation)
437+
[Ahead of time compilation](design/CompilerAndRuntimeDesign.md#ahead-of-time-aot-compilation)
438438
requires ahead of time compiler available in `PATH`. There is
439439
AOT compiler for each device type:
440440
@@ -660,7 +660,7 @@ clang++ -fsycl -fsycl-targets=spir64_gen,spir64_x86_64 simple-sycl-app.cpp -o si
660660
661661
Additionally, user can pass specific options of AOT compiler to
662662
the DPC++ compiler using ```-Xsycl-target-backend``` option, see
663-
[Device code formats](CompilerAndRuntimeDesign.md#device-code-formats) for
663+
[Device code formats](design/CompilerAndRuntimeDesign.md#device-code-formats) for
664664
more. To find available options, execute:
665665
666666
```ocloc compile --help``` for GPU,

sycl/doc/conf.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,33 @@
4646
# The suffix of source filenames.
4747
source_suffix = ['.rst', '.md']
4848

49-
# Extensions are mostly in asciidoc which has poor support in Sphinx
50-
exclude_patterns = ['extensions/*']
49+
exclude_patterns = [
50+
# Extensions are mostly in asciidoc which has poor support in Sphinx.
51+
'extensions/*',
52+
53+
# Sphinx complains about syntax errors in these files.
54+
'design/DeviceLibExtensions.rst',
55+
'design/SYCLPipesLoweringToSPIRV.rst',
56+
'design/fpga_io_pipes_design.rst',
57+
'design/Reduction_status.md'
58+
]
5159

5260
suppress_warnings = [ 'misc.highlighting_failure' ]
5361

5462
def on_missing_reference(app, env, node, contnode):
55-
new_target = "https://github.com/intel/llvm/tree/sycl/sycl/doc/" + node['reftarget']
63+
# Get the directory that contains the *source* file of the link. These
64+
# files are always relative to the directory containing "conf.py"
65+
# (<top>/sycl/doc). For example, the file "sycl/doc/design/foo.md" will
66+
# have a directory "design".
67+
refdoc_components = node['refdoc'].split('/')
68+
dirs = '/'.join(refdoc_components[:-1])
69+
if dirs: dirs += '/'
70+
71+
# A missing reference usually occurs when the target file of the link is
72+
# not processed by Sphinx. Compensate by creating a link that goes to the
73+
# file's location in the GitHub repo.
74+
new_target = "https://github.com/intel/llvm/tree/sycl/sycl/doc/" + dirs + \
75+
node['reftarget']
5676

5777
newnode = nodes.reference('', '', internal=False, refuri=new_target)
5878
newnode.append(contnode)

sycl/doc/Assert.md renamed to sycl/doc/design/Assert.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ int main() {
4141
In this use-case every work-item with even index along 0 dimension will trigger
4242
assertion failure. Assertion failure should trigger a call to `std::abort()` at
4343
host as described in
44-
[extension](extensions/Assert/SYCL_INTEL_ASSERT.asciidoc).
44+
[extension](../extensions/supported/SYCL_EXT_ONEAPI_ASSERT.asciidoc).
4545
Even though multiple failures of the same or different assertions can happen in
4646
multiple work-items, implementation is required to deliver at least one
4747
assertion. The assertion failure message is printed to `stderr` by DPCPP
@@ -81,7 +81,7 @@ practical cases.
8181
## How it works?
8282
8383
`assert(expr)` macro ends up in call to `__devicelib_assert_fail`. This function
84-
is part of [Device library extension](extensions/C-CXX-StandardLibrary/DeviceLibExtensions.rst#cl_intel_devicelib_cassert).
84+
is part of [Device library extension](DeviceLibExtensions.rst#cl_intel_devicelib_cassert).
8585
8686
The format of the assert message is unspecified, but it will always include the
8787
text of the failing expression, the values of the standard macros `__FILE__` and

sycl/doc/CompileTimeProperties.md renamed to sycl/doc/design/CompileTimeProperties.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ specifying properties which are known at compile time. This extension is not
66
itself a feature, but rather a building block that can be incorporated into
77
other features.
88

9-
[1]: <extensions/proposed/SYCL_EXT_ONEAPI_PROPERTIES.asciidoc>
9+
[1]: <../extensions/proposed/SYCL_EXT_ONEAPI_PROPERTIES.asciidoc>
1010

1111
There are a number of situations where we plan to use compile-time constant
1212
properties, but this design document does not attempt to address them all.
@@ -40,7 +40,7 @@ One use for compile-time properties is with types that are used exclusively
4040
for declaring global variables. One such example is the
4141
[SYCL\_EXT\_ONEAPI\_DEVICE\_GLOBAL][2] extension:
4242

43-
[2]: <extensions/proposed/SYCL_EXT_ONEAPI_DEVICE_GLOBAL.asciidoc>
43+
[2]: <../extensions/proposed/SYCL_EXT_ONEAPI_DEVICE_GLOBAL.asciidoc>
4444

4545
```
4646
namespace sycl::ext::oneapi {
@@ -148,7 +148,7 @@ kernel arguments. For example, the [SYCL\_ONEAPI\_accessor\_properties][6]
148148
extension could be redesigned to use compile-time properties. Such a redesign
149149
might look like:
150150

151-
[6]: <extensions/supported/SYCL_EXT_ONEAPI_ACCESSOR_PROPERTIES.asciidoc>
151+
[6]: <../extensions/supported/SYCL_EXT_ONEAPI_ACCESSOR_PROPERTIES.asciidoc>
152152

153153
```
154154
namespace sycl {
@@ -274,7 +274,7 @@ the [SYCL\_EXT\_ONEAPI\_PROPERTIES][8] extension. There are two ways the
274274
application can specify these properties. The first is by passing a
275275
`property_list` parameter to the function that submits the kernel:
276276

277-
[8]: <extensions/proposed/SYCL_EXT_ONEAPI_PROPERTIES.asciidoc>
277+
[8]: <../extensions/proposed/SYCL_EXT_ONEAPI_PROPERTIES.asciidoc>
278278

279279
```
280280
namespace sycl {

sycl/doc/CompilerAndRuntimeDesign.md renamed to sycl/doc/design/CompilerAndRuntimeDesign.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -951,4 +951,4 @@ with any other address space (including default).
951951
952952
## DPC++ Language extensions to SYCL
953953
954-
List of language extensions can be found at [extensions](extensions)
954+
List of language extensions can be found at [extensions](../extensions)

sycl/doc/DeviceGlobal.md renamed to sycl/doc/design/DeviceGlobal.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This document describes the implementation design for the DPC++ extension
44
[SYCL\_EXT\_ONEAPI\_DEVICE\_GLOBAL][1], which allows applications to declare
55
global variables in device code.
66

7-
[1]: <extensions/proposed/SYCL_EXT_ONEAPI_DEVICE_GLOBAL.asciidoc>
7+
[1]: <../extensions/proposed/SYCL_EXT_ONEAPI_DEVICE_GLOBAL.asciidoc>
88

99

1010
## Requirements
@@ -403,7 +403,7 @@ has the `implement_in_csr` property). See the
403403
[SPV\_INTEL\_global\_variable\_decorations][6] SPIR-V extension for details
404404
about all of these decorations.
405405

406-
[6]: <extensions/DeviceGlobal/SPV_INTEL_global_variable_decorations.asciidoc>
406+
[6]: <../extensions/DeviceGlobal/SPV_INTEL_global_variable_decorations.asciidoc>
407407

408408
The `sycl-post-link` tool also create a "SYCL/device globals" property set for
409409
each device code module that contains at least one device global variable.
@@ -614,7 +614,7 @@ The OpenCL backend has a proposed extension
614614
which can be easily used to implement these PI interfaces. This DPC++ design
615615
depends upon implementation of that OpenCL extension.
616616

617-
[10]: <extensions/DeviceGlobal/cl_intel_global_variable_access.asciidoc>
617+
[10]: <../extensions/DeviceGlobal/cl_intel_global_variable_access.asciidoc>
618618

619619
The CUDA backend has existing APIs `cudaMemcpyToSymbol()` and
620620
`cudaMemcpyFromSymbol()` which can be used to implement these PI interfaces.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Invoking `__devicelib_assert_read` after a kernel doesn't imply the kernel has
4848
assertion failed.
4949

5050
See also: assert_extension_.
51-
.. _assert_extension: ../supported/SYCL_EXT_ONEAPI_ASSERT.asciidoc)
51+
.. _assert_extension: ../extensions/supported/SYCL_EXT_ONEAPI_ASSERT.asciidoc)
5252

5353
cl_intel_devicelib_math
5454
==========================
File renamed without changes.

0 commit comments

Comments
 (0)