Skip to content

Commit ebb3b4a

Browse files
aarongreigcallumfareomarahmed1111kbenziemartygrant
authored
[SYCL] Remove plugin interface (#14145)
Co-authored-by: Callum Fare <[email protected]> Co-authored-by: omarahmed1111 <[email protected]> Co-authored-by: Kenneth Benzie (Benie) <[email protected]> Co-authored-by: Martin Morrison-Grant <[email protected]> Co-authored-by: omarahmed1111 <[email protected]>
1 parent 14aabdd commit ebb3b4a

File tree

498 files changed

+11187
-34720
lines changed

Some content is hidden

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

498 files changed

+11187
-34720
lines changed

.github/workflows/sycl-linux-run-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ jobs:
261261
echo LD_LIBRARY_PATH=$PWD/toolchain/lib/:$LD_LIBRARY_PATH >> $GITHUB_ENV
262262
- run: which clang++ sycl-ls
263263
- run: sycl-ls --verbose
264-
- run: SYCL_PI_TRACE=-1 sycl-ls
264+
- run: SYCL_UR_TRACE=1 sycl-ls
265265
- run: |
266266
if [ -f /usr/local/lib/igc/IGCTAG.txt ]; then
267267
cat /usr/local/lib/igc/IGCTAG.txt

sycl/CMakeLists.txt

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,27 @@ if (NOT DEFINED SYCL_ENABLE_PLUGINS)
2222
set(SYCL_ENABLE_PLUGINS "opencl;level_zero")
2323
endif()
2424

25+
# Option to enable online kernel fusion via a JIT compiler
26+
option(SYCL_ENABLE_KERNEL_FUSION "Enable kernel fusion via JIT compiler" ON)
27+
if(SYCL_ENABLE_KERNEL_FUSION AND WIN32)
28+
message(WARNING "Kernel fusion not yet supported on Windows")
29+
set(SYCL_ENABLE_KERNEL_FUSION OFF CACHE
30+
BOOL "Kernel fusion not yet supported on Windows" FORCE)
31+
endif()
32+
33+
if (NOT XPTI_INCLUDES)
34+
set(XPTI_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/../xpti/include)
35+
endif()
36+
37+
if (NOT XPTI_PROXY_SRC)
38+
set(XPTI_PROXY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../xpti/src/xpti_proxy.cpp)
39+
endif()
40+
2541
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
2642
include(AddSYCLExecutable)
2743
include(AddSYCL)
2844
include(SYCLUtils)
45+
include(FetchUnifiedRuntime)
2946

3047
# The change in SYCL_MAJOR_VERSION must be accompanied with the same update in
3148
# llvm/clang/lib/Driver/CMakeLists.txt.
@@ -144,14 +161,6 @@ install(DIRECTORY ${OpenCL_INCLUDE_DIR}/CL
144161
DESTINATION ${SYCL_INCLUDE_DIR}/sycl
145162
COMPONENT OpenCL-Headers)
146163

147-
# Option to enable online kernel fusion via a JIT compiler
148-
option(SYCL_ENABLE_KERNEL_FUSION "Enable kernel fusion via JIT compiler" ON)
149-
if(SYCL_ENABLE_KERNEL_FUSION AND WIN32)
150-
message(WARNING "Kernel fusion not yet supported on Windows")
151-
set(SYCL_ENABLE_KERNEL_FUSION OFF CACHE
152-
BOOL "Kernel fusion not yet supported on Windows" FORCE)
153-
endif()
154-
155164
# Option for enabling building the SYCL major release preview library.
156165
option(SYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB "Enable build of the SYCL major release preview library" ON)
157166

@@ -231,6 +240,8 @@ add_custom_command(
231240
COMMAND ${CMAKE_COMMAND} -E copy_directory ${sycl_inc_dir}/std ${SYCL_INCLUDE_BUILD_DIR}/std
232241
COMMAND ${CMAKE_COMMAND} -E copy_directory ${sycl_inc_dir}/syclcompat ${SYCL_INCLUDE_BUILD_DIR}/syclcompat
233242
COMMAND ${CMAKE_COMMAND} -E copy ${sycl_inc_dir}/syclcompat.hpp ${SYCL_INCLUDE_BUILD_DIR}/syclcompat.hpp
243+
COMMAND ${CMAKE_COMMAND} -E copy ${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_api.h ${SYCL_INCLUDE_BUILD_DIR}/sycl
244+
COMMAND ${CMAKE_COMMAND} -E copy ${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_print.hpp ${SYCL_INCLUDE_BUILD_DIR}/sycl
234245
COMMENT "Copying SYCL headers ...")
235246

236247
# Copy SYCL headers from source to install directory
@@ -240,6 +251,10 @@ install(DIRECTORY "${sycl_inc_dir}/std" DESTINATION ${SYCL_INCLUDE_DIR} COMPONEN
240251
install(DIRECTORY ${BOOST_MP11_DESTINATION_DIR} DESTINATION ${SYCL_INCLUDE_DIR}/sycl/detail COMPONENT boost_mp11-headers)
241252
install(DIRECTORY "${sycl_inc_dir}/syclcompat" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
242253
install(FILES "${sycl_inc_dir}/syclcompat.hpp" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
254+
install(FILES "${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_api.h" DESTINATION ${SYCL_INCLUDE_DIR}/sycl
255+
COMPONENT sycl-headers)
256+
install(FILES "${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_print.hpp" DESTINATION ${SYCL_INCLUDE_DIR}/sycl
257+
COMPONENT sycl-headers)
243258

244259
if (WIN32)
245260
set(SYCL_RT_LIBS sycl${SYCL_MAJOR_VERSION})
@@ -354,7 +369,7 @@ add_custom_target( sycl-toolchain ALL
354369
)
355370

356371
if (WIN32)
357-
add_dependencies(sycl-toolchain pi_win_proxy_loader)
372+
add_dependencies(sycl-toolchain ur_win_proxy_loader)
358373
endif()
359374

360375
# Enable new IN_LIST operator.
@@ -384,13 +399,10 @@ if(NOT "${SYCL_BUILD_PI_HIP_PLATFORM}" STREQUAL "")
384399
string(TOUPPER ${SYCL_BUILD_PI_HIP_PLATFORM} SYCL_BUILD_PI_HIP_PLATFORM)
385400
endif()
386401

387-
# Plugin Library
388-
add_subdirectory( plugins )
389-
390402
add_subdirectory(tools)
391403

392404
if (WIN32)
393-
add_subdirectory(pi_win_proxy_loader)
405+
add_subdirectory(ur_win_proxy_loader)
394406
endif()
395407

396408
if(SYCL_INCLUDE_TESTS)
@@ -441,7 +453,7 @@ set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS
441453
)
442454

443455
if (WIN32)
444-
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS pi_win_proxy_loader)
456+
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ur_win_proxy_loader)
445457
endif()
446458

447459
if (TARGET sycl-prof)
@@ -477,8 +489,8 @@ if("cuda" IN_LIST SYCL_ENABLE_PLUGINS)
477489
"CUDA support requires adding \"libclc\" to the CMake argument \"LLVM_ENABLE_PROJECTS\"")
478490
endif()
479491

480-
add_dependencies(sycl-toolchain pi_cuda)
481-
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS pi_cuda)
492+
add_dependencies(sycl-toolchain ur_adapter_cuda)
493+
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ur_adapter_cuda)
482494
endif()
483495

484496
if("hip" IN_LIST SYCL_ENABLE_PLUGINS)
@@ -494,8 +506,8 @@ if("hip" IN_LIST SYCL_ENABLE_PLUGINS)
494506
"HIP support requires adding \"lld\" to the CMake argument \"LLVM_ENABLE_PROJECTS\"")
495507
endif()
496508

497-
add_dependencies(sycl-toolchain pi_hip)
498-
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS pi_hip)
509+
add_dependencies(sycl-toolchain ur_adapter_hip)
510+
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ur_adapter_hip)
499511
endif()
500512

501513
# Use it as fake dependency in order to force another command(s) to execute.

sycl/cmake/modules/AddSYCL.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ function(add_sycl_library LIB_NAME TYPE)
3434
add_common_options(${LIB_NAME})
3535
endfunction()
3636

37+
# current ur adapter dependency managing is a bit hacky, we should try to copy
38+
# this as closely as possible instead
3739
function(add_sycl_plugin PLUGIN_NAME)
3840
cmake_parse_arguments("ARG"
3941
""

sycl/cmake/modules/AddSYCLUnitTest.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,12 @@ macro(add_sycl_unittest test_dirname link_variant)
7272
PRIVATE
7373
LLVMTestingSupport
7474
OpenCL-Headers
75+
unified-runtime::mock
7576
${SYCL_LINK_LIBS}
7677
)
7778

79+
add_dependencies(${test_dirname} ur_adapter_mock)
80+
7881
if(SYCL_ENABLE_KERNEL_FUSION)
7982
target_link_libraries(${test_dirname} PRIVATE sycl-fusion)
8083
endif(SYCL_ENABLE_KERNEL_FUSION)

sycl/plugins/unified_runtime/CMakeLists.txt renamed to sycl/cmake/modules/FetchUnifiedRuntime.cmake

Lines changed: 62 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1-
# PI Unified Runtime plugin library.
2-
#
1+
# Either fetches UR from the appropriate repo or sets up variables based on user
2+
# preference.
3+
4+
# TODO: taken from sycl/plugins/CMakeLists.txt - maybe we should handle this
5+
# within UR (although it is an obscure warning that the build system here
6+
# seems to specifically enable)
7+
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|IntelLLVM" )
8+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-covered-switch-default")
9+
endif()
10+
311

412
# Options to override the default behaviour of the FetchContent to include UR
513
# source code.
@@ -15,8 +23,11 @@ option(SYCL_PI_UR_USE_FETCH_CONTENT
1523
set(SYCL_PI_UR_SOURCE_DIR
1624
"" CACHE PATH "Path to root of Unified Runtime repository")
1725

18-
# Override default to enable building tests from unified-runtime
19-
set(UR_BUILD_TESTS OFF CACHE BOOL "Build unit tests.")
26+
# Here we override the defaults to disable building tests from unified-runtime
27+
set(UR_BUILD_EXAMPLES OFF CACHE BOOL "Build example applications." FORCE)
28+
set(UR_BUILD_TESTS OFF CACHE BOOL "Build unit tests." FORCE)
29+
set(UR_BUILD_XPTI_LIBS OFF)
30+
set(UR_ENABLE_TRACING ON)
2031

2132
if("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
2233
set(UR_BUILD_ADAPTER_L0 ON)
@@ -26,6 +37,9 @@ if("cuda" IN_LIST SYCL_ENABLE_PLUGINS)
2637
endif()
2738
if("hip" IN_LIST SYCL_ENABLE_PLUGINS)
2839
set(UR_BUILD_ADAPTER_HIP ON)
40+
if (SYCL_ENABLE_KERNEL_FUSION)
41+
set(UR_ENABLE_COMGR ON)
42+
endif()
2943
endif()
3044
if("opencl" IN_LIST SYCL_ENABLE_PLUGINS)
3145
set(UR_BUILD_ADAPTER_OPENCL ON)
@@ -99,13 +113,13 @@ if(SYCL_PI_UR_USE_FETCH_CONTENT)
99113
endfunction()
100114

101115
set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git")
102-
# commit 2baf095188b235bb2b0a0140f0187d2041aef4b0
103-
# Merge: 3d8fe8d2 58f85278
116+
# commit b7b0c8b3d17aa7d511c67ec219d58091d07cfa60
117+
# Merge: 2baf0951 5b8936da
104118
# Author: Piotr Balcer <[email protected]>
105-
# Date: Fri Jul 26 12:06:22 2024 +0200
106-
# Merge pull request #1900 from kswiecicki/umf-version-bump
107-
# Bump UMF version
108-
set(UNIFIED_RUNTIME_TAG 58f85278a4ebf37742dd10afb3350580b0b1d9d7)
119+
# Date: Fri Jul 26 15:48:04 2024 +0200
120+
# Merge pull request #1903 from kswiecicki/umf-version-bump
121+
# Bump UMF version again
122+
set(UNIFIED_RUNTIME_TAG b7b0c8b3d17aa7d511c67ec219d58091d07cfa60)
109123

110124
set(UMF_BUILD_EXAMPLES OFF CACHE INTERNAL "EXAMPLES")
111125
# Due to the use of dependentloadflag and no installer for UMF and hwloc we need
@@ -210,86 +224,69 @@ target_include_directories(UnifiedRuntime-Headers
210224

211225
find_package(Threads REQUIRED)
212226

213-
set(UNIFIED_RUNTIME_PLUGIN_ARGS
214-
SOURCES
215-
# These are short-term shared with Unified Runtime
216-
# The two plugins define a few things differently so must
217-
# be built separately. This difference is spelled in
218-
# their "ur_bindings.hpp" files.
219-
"ur_bindings.hpp"
220-
"pi2ur.hpp"
221-
# These below belong to Unified Runtime PI Plugin only
222-
"pi_unified_runtime.hpp"
223-
"pi_unified_runtime.cpp"
224-
LIBRARIES
225-
Threads::Threads
226-
UnifiedRuntimeLoader
227-
UnifiedRuntime-Headers
228-
UnifiedRuntimeCommon
229-
INCLUDE_DIRS
230-
"${UNIFIED_RUNTIME_SRC_INCLUDE_DIR}"
231-
"${UNIFIED_RUNTIME_COMMON_INCLUDE_DIR}"
232-
"${SYCL_SOURCE_DIR}/source" # for compiler.hpp
233-
)
234-
235-
# We need for #include <ze_api.h> in common.h
236-
if("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
237-
list(APPEND UNIFIED_RUNTIME_PLUGIN_ARGS LevelZeroLoader-Headers)
238-
endif()
239-
240-
if("opencl" IN_LIST SYCL_ENABLE_PLUGINS)
241-
list(APPEND UNIFIED_RUNTIME_PLUGIN_ARGS OpenCL-ICD)
242-
endif()
243-
244-
add_sycl_plugin(unified_runtime ${UNIFIED_RUNTIME_PLUGIN_ARGS})
245-
246227
if(TARGET UnifiedRuntimeLoader)
247-
set_target_properties(hello_world PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)
248228
# Install the UR loader.
249229
# TODO: this is piggy-backing on the existing target component level-zero-sycl-dev
250230
# When UR is moved to its separate repo perhaps we should introduce new component,
251231
# e.g. unified-runtime-sycl-dev.
232+
# See github issue #14598
252233
install(TARGETS ur_loader
253234
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
254235
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
255236
RUNTIME DESTINATION "bin" COMPONENT level-zero-sycl-dev
256237
)
257238
endif()
258239

259-
# Install the UR adapters too
260-
if("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
261-
add_dependencies(sycl-runtime-libraries ur_adapter_level_zero)
240+
add_custom_target(UnifiedRuntimeAdapters)
262241

263-
# Install the UR adapters too
264-
install(TARGETS ur_adapter_level_zero
265-
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
266-
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
267-
RUNTIME DESTINATION "bin" COMPONENT level-zero-sycl-dev
242+
function(add_sycl_ur_adapter NAME)
243+
add_dependencies(UnifiedRuntimeAdapters ur_adapter_${NAME})
244+
245+
install(TARGETS ur_adapter_${NAME}
246+
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT ur_adapter_${NAME}
247+
RUNTIME DESTINATION "bin" COMPONENT ur_adapter_${NAME})
248+
249+
set(manifest_file
250+
${CMAKE_CURRENT_BINARY_DIR}/install_manifest_ur_adapter_${NAME}.txt)
251+
add_custom_command(OUTPUT ${manifest_file}
252+
COMMAND "${CMAKE_COMMAND}"
253+
"-DCMAKE_INSTALL_COMPONENT=ur_adapter_${NAME}"
254+
-P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
255+
COMMENT "Deploying component ur_adapter_${NAME}"
256+
USES_TERMINAL
268257
)
258+
add_custom_target(install-sycl-ur-adapter-${NAME}
259+
DEPENDS ${manifest_file} ur_adapter_${NAME}
260+
)
261+
262+
set_property(GLOBAL APPEND PROPERTY
263+
SYCL_TOOLCHAIN_INSTALL_COMPONENTS ur_adapter_${NAME})
264+
endfunction()
265+
266+
if("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
267+
add_sycl_ur_adapter(level_zero)
268+
269+
# TODO: L0 adapter does other... things in its cmake - make sure they get
270+
# added to the new build system
269271
endif()
270272

271273
if("cuda" IN_LIST SYCL_ENABLE_PLUGINS)
272-
add_dependencies(sycl-runtime-libraries ur_adapter_cuda)
274+
add_sycl_ur_adapter(cuda)
273275
endif()
274276

275277
if("hip" IN_LIST SYCL_ENABLE_PLUGINS)
276-
add_dependencies(sycl-runtime-libraries ur_adapter_hip)
278+
add_sycl_ur_adapter(hip)
277279
endif()
278280

279-
if ("opencl" IN_LIST SYCL_ENABLE_PLUGINS)
280-
add_dependencies(sycl-runtime-libraries ur_adapter_opencl)
281-
282-
# Install the UR adapters too
283-
install(TARGETS ur_adapter_opencl
284-
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
285-
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev
286-
RUNTIME DESTINATION "bin" COMPONENT level-zero-sycl-dev
287-
)
281+
if("opencl" IN_LIST SYCL_ENABLE_PLUGINS)
282+
add_sycl_ur_adapter(opencl)
288283
endif()
289284

290-
if ("native_cpu" IN_LIST SYCL_ENABLE_PLUGINS)
291-
add_dependencies(sycl-runtime-libraries ur_adapter_native_cpu)
285+
if("native_cpu" IN_LIST SYCL_ENABLE_PLUGINS)
286+
add_sycl_ur_adapter(native_cpu)
292287

288+
# Deal with OCK option
289+
option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON)
293290

294291
if(NATIVECPU_USE_OCK)
295292
message(STATUS "Compiling Native CPU adapter with OCK support.")
@@ -300,8 +297,6 @@ if ("native_cpu" IN_LIST SYCL_ENABLE_PLUGINS)
300297
endif()
301298
endif()
302299

303-
add_dependencies(sycl-runtime-libraries ur_umf)
304-
305300
# TODO: this is piggy-backing on the existing target component level-zero-sycl-dev
306301
install(TARGETS umf
307302
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT level-zero-sycl-dev

sycl/doc/EnvironmentVariables.md

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ variables in production code.</span>
196196
| Environment variable | Values | Description |
197197
| -------------------- | ------ | ----------- |
198198
| `SYCL_PREFER_UR` | Integer | If non-0 then run through Unified Runtime if desired backend is supported there. Default is 0. |
199-
| `SYCL_PI_TRACE` | Described [below](#sycl_pi_trace-options) | Enable specified level of tracing for PI. |
199+
| `SYCL_UR_TRACE` | Integer | If non-0 then enable Unified Runtime tracing. Default is 0. |
200200
| `SYCL_QUEUE_THREAD_POOL_SIZE` | Positive integer | Number of threads in thread pool of queue. |
201201
| `SYCL_DEVICELIB_NO_FALLBACK` | Any(\*) | Disable loading and linking of device library images |
202202
| `SYCL_PRINT_EXECUTION_GRAPH` | Described [below](#sycl_print_execution_graph-options) | Print execution graph to DOT text file. |
@@ -231,16 +231,6 @@ variables in production code.</span>
231231
| after_addHostAcc | print graph after addHostAccessor method |
232232
| always | print graph before and after each of the above methods |
233233

234-
### `SYCL_PI_TRACE` Options
235-
236-
`SYCL_PI_TRACE` accepts a bit-mask. Supported tracing levels are in the table below
237-
238-
| Option | Description |
239-
| ------ | ----------- |
240-
| 1 | Enable basic tracing, which is tracing of PI plugins/devices discovery |
241-
| 2 | Enable tracing of the PI calls |
242-
| -1 | Enable all levels of tracing |
243-
244234
## Debugging variables for Level Zero Plugin
245235

246236
:warning: **Warning:** <span style="color:red">the environment variables

sycl/doc/design/PluginInterface.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,12 @@ with arguments and returned values.
7171
SYCL_PI_TRACE=-1 lists all PI Traces above and more debug messages.
7272

7373
#### Plugin binary interface
74-
Plugins should implement all the Interface APIs required for the PI Version
75-
it supports. There is [pi.def](../../include/sycl/detail/pi.def)/
76-
[pi.h](../../include/sycl/detail/pi.h) file listing all PI API names that
77-
can be called by the specific version of Plugin Interface.
78-
It exports a function - "piPluginInit" that returns the plugin details and
79-
function pointer table containing the list of pointers to implemented Interface
80-
Functions defined in pi.h.
81-
In the future, this document will list the minimum set of Interface APIs
74+
Plugins should implement all the Interface APIs required for the PI Version it
75+
supports. There is pi.def/ pi.h file listing all PI API names that can be
76+
called by the specific version of Plugin Interface. It exports a function -
77+
"piPluginInit" that returns the plugin details and function pointer table
78+
containing the list of pointers to implemented Interface Functions defined in
79+
pi.h. In the future, this document will list the minimum set of Interface APIs
8280
to be supported by Plugins. This will also require adding functionality to SYCL
8381
Runtime to work with such limited functionality plugins.
8482

@@ -149,8 +147,7 @@ into
149147
- **Interoperability API** which allows interoperability with underlying
150148
runtimes such as OpenCL.
151149

152-
See [pi.h](../../include/sycl/detail/pi.h) header for the full list and
153-
descriptions of PI APIs.
150+
See pi.h header for the full list and descriptions of PI APIs.
154151

155152
### The Core OpenCL-based PI APIs
156153

0 commit comments

Comments
 (0)