Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCL][CUDA] Implement sycl_ext_oneapi_peer_access extension #8303

Merged
merged 89 commits into from
Jul 10, 2023
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
5d788c6
[SYCL][CUDA] Decouple CUDA contexts from PI contexts
npmiller Feb 1, 2023
8685475
[SYCL][CUDA] Move deprecation warning to class
npmiller Feb 3, 2023
de16f88
Initial P2P impl.
Feb 6, 2023
b5f9481
added ext_oneapi_disable_peer_access and ext_oneapi_can_access_peer.
JackAKirk Feb 8, 2023
64ecf25
Introduced pi_peer_attr.
Feb 10, 2023
15d4bf6
Format.
Feb 10, 2023
a35294f
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Feb 10, 2023
df55a69
Format.
JackAKirk Mar 3, 2023
ddca3c3
Format.
JackAKirk Mar 3, 2023
c3a2009
Format.
JackAKirk Mar 3, 2023
f0f448d
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Mar 3, 2023
1855367
Corrected hip pi die function.
JackAKirk Mar 3, 2023
644c880
Added esimd p2p pi functions.
JackAKirk Mar 6, 2023
e5b421e
fix mistake in last commit.
JackAKirk Mar 6, 2023
6f45d53
corrected pi function names.
JackAKirk Mar 6, 2023
1849619
format.
JackAKirk Mar 6, 2023
aa7a7eb
Update sycl/plugins/cuda/pi_cuda.cpp
JackAKirk Mar 7, 2023
3380230
Update sycl/plugins/level_zero/pi_level_zero.cpp
JackAKirk Mar 7, 2023
5f6360c
Early exit in ext_oneapi_can_access_peer
JackAKirk Mar 7, 2023
e33a578
Switched piextCanAccessPeer to more general piextPeerAccessGetInfo.
JackAKirk Mar 10, 2023
32d714a
format.
JackAKirk Mar 10, 2023
7d12cd7
Added unittest, fixed hip pi names.
JackAKirk Mar 17, 2023
4cf5999
Format.
JackAKirk Mar 17, 2023
63f23e5
Add missing abi symbols to test.
JackAKirk Mar 17, 2023
aaec286
Update l0 abi test.
JackAKirk Mar 17, 2023
76245f2
Corrected die error messages.
JackAKirk Mar 20, 2023
55a9b6a
cleanup test.
JackAKirk Mar 20, 2023
80dfb3a
Add global var check that pi is reached.
JackAKirk Mar 20, 2023
76f6772
Format.
JackAKirk Mar 20, 2023
85949f7
Fix copy/paste error.
JackAKirk Mar 21, 2023
65aa452
trying to scope up meaningful error mech.
JackAKirk May 9, 2023
ea7e855
added some comments.
JackAKirk May 9, 2023
eae9b12
working impl throwing exceptions in all backends.
JackAKirk May 16, 2023
c825b9c
remove comments.
JackAKirk May 16, 2023
ae358bb
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk May 16, 2023
ce81826
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk May 16, 2023
72aca2e
format.
JackAKirk May 16, 2023
c2579aa
fixes for recent sycl branch changes.
JackAKirk May 16, 2023
0c87405
Format.
JackAKirk May 16, 2023
dfcb01c
Added P2P USM tests.
JackAKirk May 16, 2023
b84da4d
Update sycl/source/device.cpp
JackAKirk May 16, 2023
9e5408b
Address review comments.
JackAKirk May 16, 2023
57c5747
Just use Plugin::call.
JackAKirk May 16, 2023
029c1fe
Remove trace checks CI doesn't support.
JackAKirk May 17, 2023
8d41240
Added comments, updating namings.
JackAKirk May 17, 2023
b86954d
Added windows symbols.
JackAKirk May 17, 2023
a6f7602
Refactor common code.
JackAKirk May 17, 2023
cc5eb63
Format.
JackAKirk May 17, 2023
716bf30
Some final corrections.
JackAKirk May 18, 2023
484cf25
Format.
JackAKirk May 18, 2023
333b7d6
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk May 22, 2023
308f45a
Correct version comment order.
JackAKirk May 22, 2023
8b8cbc8
Merge branch 'sycl' into P2P-primary-ctxt
May 31, 2023
b2b6fcb
Removed broken error message.
May 31, 2023
2bea80b
Addressed review comments.
May 31, 2023
04b8610
Format.
May 31, 2023
d0b138c
Try UR invalid value error.
Jun 1, 2023
3e488c4
Stated return type of queries in comment.
Jun 6, 2023
c1905c6
Merge branch 'sycl' into P2P-primary-ctxt
Jun 22, 2023
19d2a7d
Integrate UR usm-p2p interfaces.
Jun 23, 2023
f2a2026
Attempt to fix getLastError.
Jun 23, 2023
37aecb1
Switch to UR_CHECK_ERROR usage.
JackAKirk Jun 26, 2023
e80ff9b
Format.
JackAKirk Jun 26, 2023
8956f50
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Jun 26, 2023
b987dba
RT:: -> sycl::detail::pi::
JackAKirk Jun 26, 2023
6724a40
u_int32_t -> uint32_t
JackAKirk Jun 26, 2023
69a6506
Removed unnecessary includes.
JackAKirk Jun 26, 2023
11ca2a6
Merge branch 'sycl' into P2P-primary-ctxt
Jul 3, 2023
8b9c2ab
PI_ERROR_UNKNOWN -> return PI_ERROR_INVALID_VALUE
Jul 3, 2023
0a09023
Merge branch 'sycl' into P2P-primary-ctxt
Jul 4, 2023
f1eb0f0
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Jul 4, 2023
40e93d0
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Jul 4, 2023
e5e967f
Conflict fix.
JackAKirk Jul 4, 2023
92e1420
Merge branch 'sycl' into P2P-primary-ctxt
JackAKirk Jul 4, 2023
f0993b9
Reverted pi2ur.hpp due to problem diff.
JackAKirk Jul 5, 2023
28028ac
same as last commit.
JackAKirk Jul 5, 2023
6ed3213
Added back peer functions to pi2ur.
JackAKirk Jul 5, 2023
512d2a8
Removed unnecessary usm_p2p.hpp headers.
JackAKirk Jul 5, 2023
1e088a1
Removed level_zero pi::die impl.
JackAKirk Jul 5, 2023
80dd26a
Format.
JackAKirk Jul 5, 2023
9dc099c
Added missing inline and urPrint.
JackAKirk Jul 6, 2023
b191914
Format.
JackAKirk Jul 6, 2023
5d83aeb
Format.
JackAKirk Jul 6, 2023
c389980
Moved p2p ext doc to supported.
JackAKirk Jul 7, 2023
8bd6b60
Added Backend support status, updated status.
Jul 7, 2023
5e7d821
Updated sycl 2020 revision version.
Jul 7, 2023
ab3ac25
Switch to Greg's suggested wording.
Jul 7, 2023
47acd23
Use code font for function name.
Jul 7, 2023
4ab6215
Merge branch 'sycl' into P2P-primary-ctxt
Jul 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion sycl/include/sycl/detail/pi.def
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ _PI_API(piPluginGetLastError)

_PI_API(piTearDown)


_PI_API(piextUSMEnqueueFill2D)
_PI_API(piextUSMEnqueueMemset2D)
_PI_API(piextUSMEnqueueMemcpy2D)
Expand All @@ -152,4 +151,8 @@ _PI_API(piGetDeviceAndHostTimer)
_PI_API(piextEnqueueDeviceGlobalVariableWrite)
_PI_API(piextEnqueueDeviceGlobalVariableRead)

_PI_API(piextEnablePeerAccess)
_PI_API(piextDisablePeerAccess)
_PI_API(piextPeerAccessGetInfo)

#undef _PI_API
16 changes: 15 additions & 1 deletion sycl/include/sycl/detail/pi.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
// piextEnqueueDeviceGlobalVariableRead functions.

#define _PI_H_VERSION_MAJOR 12
#define _PI_H_VERSION_MINOR 23
#define _PI_H_VERSION_MINOR 24

#define _PI_STRING_HELPER(a) #a
#define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b)
Expand Down Expand Up @@ -975,7 +975,13 @@ using pi_image_desc = _pi_image_desc;

typedef enum { PI_MEM_CONTEXT = 0x1106, PI_MEM_SIZE = 0x1102 } _pi_mem_info;

typedef enum {
PI_PEER_ACCESS_SUPPORTED,
PI_PEER_ATOMICS_SUPPORTED
steffenlarsen marked this conversation as resolved.
Show resolved Hide resolved
} _pi_peer_attr;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need to define the returned value (and type) for these queries, is it pi_bool aka uint32_t?

Copy link
Contributor Author

@JackAKirk JackAKirk May 31, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the definition of cuDeviceGetP2PAttribute here : https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__PEER__ACCESS.html#group__CUDA__PEER__ACCESS_1g4c55c60508f8eba4546b51f2ee545393
This function is used to get the query result. Although currently we only support queries which can be represented as booleans there is e.g. CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK which returns a relative integer value. This is why the return type is integer and not bool for future proofing.

L0 backend should decide whether it also will require such attributes at some point, and then whether SYCL (and in turn UR) will want to support them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am fine with it being integer, but ask this to be documented (comments in pi.h)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK I forgot the to document the return type. I will do this now. Note that this is a comment so won't affect the test status of this PR that is all green (everything passing.)


using pi_mem_info = _pi_mem_info;
using pi_peer_attr = _pi_peer_attr;

//
// Following section contains SYCL RT Plugin Interface (PI) functions.
Expand Down Expand Up @@ -1033,6 +1039,14 @@ __SYCL_EXPORT pi_result piDevicesGet(pi_platform platform,
pi_uint32 num_entries, pi_device *devices,
pi_uint32 *num_devices);

__SYCL_EXPORT pi_result piextEnablePeerAccess(pi_device command_device,
pi_device peer_device);
__SYCL_EXPORT pi_result piextDisablePeerAccess(pi_device command_device,
pi_device peer_device);
__SYCL_EXPORT pi_result piextPeerAccessGetInfo(
pi_device command_device, pi_device peer_device, pi_peer_attr attr,
size_t param_value_size, void *param_value, size_t *param_value_size_ret);

steffenlarsen marked this conversation as resolved.
Show resolved Hide resolved
/// Returns requested info for provided native device
/// Return PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT for
/// PI_DEVICE_INFO_EXTENSIONS query when the device supports native asserts
Expand Down
1 change: 1 addition & 0 deletions sycl/include/sycl/detail/pi.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ using PiMemImageInfo = ::pi_image_info;
using PiMemObjectType = ::pi_mem_type;
using PiMemImageChannelOrder = ::pi_image_channel_order;
using PiMemImageChannelType = ::pi_image_channel_type;
using PiPeerAttr = ::pi_peer_attr;

__SYCL_EXPORT void contextSetExtendedDeleter(const sycl::context &constext,
pi_context_extended_deleter func,
Expand Down
13 changes: 13 additions & 0 deletions sycl/include/sycl/device.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ enum class aspect;
namespace ext::oneapi {
// Forward declaration
class filter_selector;

enum class peer_access {
access_supported,
atomics_supported,
steffenlarsen marked this conversation as resolved.
Show resolved Hide resolved
};

} // namespace ext::oneapi

/// The SYCL device class encapsulates a single SYCL device on which kernels
Expand Down Expand Up @@ -89,6 +95,13 @@ class __SYCL_EXPORT device : public detail::OwnerLessBase<device> {

device &operator=(device &&rhs) = default;

void ext_oneapi_enable_peer_access(const device &peer);
void ext_oneapi_disable_peer_access(const device &peer);
bool
ext_oneapi_can_access_peer(const device &peer,
ext::oneapi::peer_access value =
ext::oneapi::peer_access::access_supported);

/// Get instance of device
///
/// \return a valid cl_device_id instance in accordance with the requirements
Expand Down
63 changes: 63 additions & 0 deletions sycl/plugins/cuda/pi_cuda.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5589,6 +5589,65 @@ pi_result cuda_piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime,
return PI_SUCCESS;
}

pi_result cuda_piextEnablePeerAccess(pi_device command_device,
pi_device peer_device) {

pi_result result = PI_SUCCESS;
try {
ScopedContext active(command_device->get_context());
result =
PI_CHECK_ERROR(cuCtxEnablePeerAccess(peer_device->get_context(), 0));

} catch (pi_result err) {
result = err;
}
return result;
}

pi_result cuda_piextDisablePeerAccess(pi_device command_device,
pi_device peer_device) {

pi_result result = PI_SUCCESS;
try {
ScopedContext active(command_device->get_context());
result = PI_CHECK_ERROR(cuCtxDisablePeerAccess(peer_device->get_context()));

} catch (pi_result err) {
result = err;
}
return result;
}

pi_result cuda_piextPeerAccessGetInfo(pi_device command_device,
pi_device peer_device, pi_peer_attr attr,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) {
int value;
CUdevice_P2PAttribute CUattr;
try {
ScopedContext active(command_device->get_context());
switch (attr) {
case PI_PEER_ACCESS_SUPPORTED: {
CUattr = CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED;
break;
}
case PI_PEER_ATOMICS_SUPPORTED: {
CUattr = CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED;
break;
}
default: {
__SYCL_PI_HANDLE_UNKNOWN_PARAM_NAME(attr);
}
}
PI_CHECK_ERROR(cuDeviceGetP2PAttribute(
&value, CUattr, command_device->get(), peer_device->get()));
} catch (pi_result err) {
return err;
}
return getInfo(param_value_size, param_value, param_value_size_ret, value);
}

const char SupportedVersion[] = _PI_CUDA_PLUGIN_VERSION_STRING;

pi_result piPluginInit(pi_plugin *PluginInit) {
Expand Down Expand Up @@ -5743,6 +5802,10 @@ pi_result piPluginInit(pi_plugin *PluginInit) {
_PI_CL(piPluginGetLastError, cuda_piPluginGetLastError)
_PI_CL(piTearDown, cuda_piTearDown)
_PI_CL(piGetDeviceAndHostTimer, cuda_piGetDeviceAndHostTimer)
// Peer to Peer
_PI_CL(piextEnablePeerAccess, cuda_piextEnablePeerAccess)
_PI_CL(piextDisablePeerAccess, cuda_piextDisablePeerAccess)
_PI_CL(piextPeerAccessGetInfo, cuda_piextPeerAccessGetInfo)

#undef _PI_CL

Expand Down
33 changes: 33 additions & 0 deletions sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2107,6 +2107,39 @@ pi_result piPluginInit(pi_plugin *PluginInit) {
return PI_SUCCESS;
}

pi_result piextEnablePeerAccess(pi_device command_device,
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

DIE_NO_IMPLEMENTATION;
}

pi_result piextDisablePeerAccess(pi_device command_device,
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

DIE_NO_IMPLEMENTATION;
}

pi_result piextPeerAccessGetInfo(pi_device command_device,
pi_device peer_device, pi_peer_attr attr,
size_t param_value_size, void *param_value,
size_t *param_value_size_ret) {

std::ignore = command_device;
std::ignore = peer_device;
std::ignore = attr;
std::ignore = param_value_size;
std::ignore = param_value;
std::ignore = param_value_size_ret;

DIE_NO_IMPLEMENTATION;
}

#ifdef _WIN32
#define __SYCL_PLUGIN_DLL_NAME "pi_esimd_emulator.dll"
#include "../common_win_pi_trace/common_win_pi_trace.hpp"
Expand Down
43 changes: 43 additions & 0 deletions sycl/plugins/hip/pi_hip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5363,6 +5363,45 @@ pi_result hip_piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime,
return PI_SUCCESS;
}

pi_result hip_piextEnablePeerAccess(pi_device command_device,
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

sycl::detail::pi::die("hip_piextEnablePeerAccess not "
"implemented");
return {};
}

pi_result hip_piextDisablePeerAccess(pi_device command_device,
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

sycl::detail::pi::die("hip_piextDisablePeerAccess not "
"implemented");
return {};
}

pi_result hip_piextPeerAccessGetInfo(pi_device command_device,
pi_device peer_device, pi_peer_attr attr,
size_t param_value_size, void *param_value,
size_t *param_value_size_ret) {

std::ignore = command_device;
std::ignore = peer_device;
std::ignore = attr;
std::ignore = param_value_size;
std::ignore = param_value;
std::ignore = param_value_size_ret;

sycl::detail::pi::die("hip_piextPeerAccessGetInfo not "
"implemented");
return {};
}

const char SupportedVersion[] = _PI_HIP_PLUGIN_VERSION_STRING;

pi_result piPluginInit(pi_plugin *PluginInit) {
Expand Down Expand Up @@ -5511,6 +5550,10 @@ pi_result piPluginInit(pi_plugin *PluginInit) {
_PI_CL(piPluginGetLastError, hip_piPluginGetLastError)
_PI_CL(piTearDown, hip_piTearDown)
_PI_CL(piGetDeviceAndHostTimer, hip_piGetDeviceAndHostTimer)
// Peer to Peer
_PI_CL(piextEnablePeerAccess, hip_piextEnablePeerAccess)
_PI_CL(piextDisablePeerAccess, hip_piextDisablePeerAccess)
_PI_CL(piextPeerAccessGetInfo, hip_piextPeerAccessGetInfo)

#undef _PI_CL

Expand Down
38 changes: 38 additions & 0 deletions sycl/plugins/level_zero/pi_level_zero.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8374,6 +8374,44 @@ pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime,
return PI_SUCCESS;
}

pi_result piextEnablePeerAccess(pi_device command_device,
jandres742 marked this conversation as resolved.
Show resolved Hide resolved
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

die("piextEnablePeerAccess not implemented in L0");
return {};
}

pi_result piextDisablePeerAccess(pi_device command_device,
pi_device peer_device) {

std::ignore = command_device;
std::ignore = peer_device;

die("piextDisablePeerAccess not "
"implemented in L0");
return {};
}

pi_result piextPeerAccessGetInfo(pi_device command_device,
jandres742 marked this conversation as resolved.
Show resolved Hide resolved
pi_device peer_device, pi_peer_attr attr,
size_t param_value_size, void *param_value,
size_t *param_value_size_ret) {

std::ignore = command_device;
std::ignore = peer_device;
std::ignore = attr;
std::ignore = param_value_size;
std::ignore = param_value;
std::ignore = param_value_size_ret;

die("piextPeerAccessGetInfo not "
"implemented in L0");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than die, shouldn't we return some sort of "false" status, indicating that P2P isn't available (yet)? That way we can document this extension as "supported", and we can enable end-to-end tests on all backends.

Same for the other backends.

return {};
}

#ifdef _WIN32
#define __SYCL_PLUGIN_DLL_NAME "pi_level_zero.dll"
#include "../common_win_pi_trace/common_win_pi_trace.hpp"
Expand Down
46 changes: 46 additions & 0 deletions sycl/source/device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,5 +200,51 @@ pi_native_handle device::getNative() const { return impl->getNative(); }

bool device::has(aspect Aspect) const { return impl->has(Aspect); }

void device::ext_oneapi_enable_peer_access(const device &peer) {
const RT::PiDevice Device = impl->getHandleRef();
const RT::PiDevice Peer = peer.impl->getHandleRef();
if (Device != Peer) {
const detail::plugin &Plugin = impl->getPlugin();
Plugin.call<detail::PiApiKind::piextEnablePeerAccess>(Device, Peer);
}
}

void device::ext_oneapi_disable_peer_access(const device &peer) {
const RT::PiDevice Device = impl->getHandleRef();
const RT::PiDevice Peer = peer.impl->getHandleRef();
if (Device != Peer) {
const detail::plugin Plugin = impl->getPlugin();
Plugin.call<detail::PiApiKind::piextDisablePeerAccess>(Device, Peer);
}
}

bool device::ext_oneapi_can_access_peer(const device &peer,
ext::oneapi::peer_access attr) {
const RT::PiDevice Device = impl->getHandleRef();
const RT::PiDevice Peer = peer.impl->getHandleRef();

if (Device == Peer)
return true;

RT::PiPeerAttr PiAttr;
size_t return_size;
int value;

switch (attr) {
case ext::oneapi::peer_access::access_supported: {
PiAttr = PI_PEER_ACCESS_SUPPORTED;
break;
}
case ext::oneapi::peer_access::atomics_supported: {
PiAttr = PI_PEER_ATOMICS_SUPPORTED;
break;
}
}
JackAKirk marked this conversation as resolved.
Show resolved Hide resolved
const detail::plugin Plugin = impl->getPlugin();
Plugin.call_nocheck<detail::PiApiKind::piextPeerAccessGetInfo>(
Device, Peer, PiAttr, sizeof(int), &value, &return_size);
return value == 1;
}
steffenlarsen marked this conversation as resolved.
Show resolved Hide resolved

} // __SYCL_INLINE_VER_NAMESPACE(_V1)
} // namespace sycl
3 changes: 3 additions & 0 deletions sycl/test/abi/pi_level_zero_symbol_check.dump
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,6 @@ piextUSMFree
piextUSMGetMemAllocInfo
piextUSMHostAlloc
piextUSMSharedAlloc
piextEnablePeerAccess
piextDisablePeerAccess
piextPeerAccessGetInfo
3 changes: 3 additions & 0 deletions sycl/test/abi/sycl_symbols_linux.dump
Original file line number Diff line number Diff line change
Expand Up @@ -4350,6 +4350,9 @@ _ZNK4sycl3_V16device8get_infoINS0_4info6device8atomic64EEENS0_6detail19is_device
_ZNK4sycl3_V16device8get_infoINS0_4info6device8platformEEENS0_6detail19is_device_info_descIT_E11return_typeEv
_ZNK4sycl3_V16device8get_infoINS0_4info6device9vendor_idEEENS0_6detail19is_device_info_descIT_E11return_typeEv
_ZNK4sycl3_V16device9getNativeEv
_ZN4sycl3_V16device29ext_oneapi_enable_peer_accessERKS1_
_ZN4sycl3_V16device30ext_oneapi_disable_peer_accessERKS1_
_ZN4sycl3_V16device26ext_oneapi_can_access_peerERKS1_NS0_3ext6oneapi11peer_accessE
_ZNK4sycl3_V16kernel11get_backendEv
_ZNK4sycl3_V16kernel11get_contextEv
_ZNK4sycl3_V16kernel13getNativeImplEv
Expand Down
1 change: 1 addition & 0 deletions sycl/unittests/Extensions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ add_sycl_unittest(ExtensionsTests OBJECT
USMMemcpy2D.cpp
DeviceGlobal.cpp
OneAPISubGroupMask.cpp
USMP2P.cpp
)

Loading