Skip to content

[SYCL] Re-add removed symbols breaking ABI #19274

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

Merged
merged 2 commits into from
Jul 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 13 additions & 0 deletions sycl/include/sycl/handler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3716,6 +3716,9 @@ class __SYCL_EXPORT handler {
void setKernelIsCooperative(bool);

// Set using cuda thread block cluster launch flag and set the launch bounds.
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
void setKernelClusterLaunch(sycl::range<3> ClusterSize, int Dims);
#endif
void setKernelClusterLaunch(sycl::range<3> ClusterSize);
void setKernelClusterLaunch(sycl::range<2> ClusterSize);
void setKernelClusterLaunch(sycl::range<1> ClusterSize);
Expand Down Expand Up @@ -3819,6 +3822,16 @@ class __SYCL_EXPORT handler {
bool HasAssociatedAccessor(detail::AccessorImplHost *Req,
access::target AccessTarget) const;

#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
void setNDRangeDescriptorPadded(sycl::range<3> N, bool SetNumWorkGroups,
int Dims);
void setNDRangeDescriptorPadded(sycl::range<3> NumWorkItems,
sycl::id<3> Offset, int Dims);
void setNDRangeDescriptorPadded(sycl::range<3> NumWorkItems,
sycl::range<3> LocalSize, sycl::id<3> Offset,
int Dims);
#endif

template <int Dims>
void setNDRangeDescriptor(sycl::range<Dims> N,
bool SetNumWorkGroups = false) {
Expand Down
69 changes: 69 additions & 0 deletions sycl/source/handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2243,6 +2243,25 @@ void handler::setKernelIsCooperative(bool KernelIsCooperative) {
impl->MKernelIsCooperative = KernelIsCooperative;
}

#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
void handler::setKernelClusterLaunch(sycl::range<3> ClusterSize, int Dims) {
throwIfGraphAssociated<
syclex::detail::UnsupportedGraphFeatures::
sycl_ext_oneapi_experimental_cuda_cluster_launch>();
impl->MKernelUsesClusterLaunch = true;

if (Dims == 1) {
sycl::range<1> ClusterSizeTrimmed = {ClusterSize[0]};
impl->MNDRDesc.setClusterDimensions(ClusterSizeTrimmed);
} else if (Dims == 2) {
sycl::range<2> ClusterSizeTrimmed = {ClusterSize[0], ClusterSize[1]};
impl->MNDRDesc.setClusterDimensions(ClusterSizeTrimmed);
} else if (Dims == 3) {
impl->MNDRDesc.setClusterDimensions(ClusterSize);
}
}
#endif

void handler::setKernelClusterLaunch(sycl::range<3> ClusterSize) {
throwIfGraphAssociated<
syclex::detail::UnsupportedGraphFeatures::
Expand Down Expand Up @@ -2419,6 +2438,56 @@ bool handler::HasAssociatedAccessor(detail::AccessorImplHost *Req,
void handler::setType(sycl::detail::CGType Type) { impl->MCGType = Type; }
sycl::detail::CGType handler::getType() const { return impl->MCGType; }

#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
void handler::setNDRangeDescriptorPadded(sycl::range<3> N,
bool SetNumWorkGroups, int Dims) {
if (Dims == 1) {
sycl::range<1> Range = {N[0]};
impl->MNDRDesc = NDRDescT{Range, SetNumWorkGroups};
} else if (Dims == 2) {
sycl::range<2> Range = {N[0], N[1]};
impl->MNDRDesc = NDRDescT{Range, SetNumWorkGroups};
} else if (Dims == 3) {
impl->MNDRDesc = NDRDescT{N, SetNumWorkGroups};
}
}

void handler::setNDRangeDescriptorPadded(sycl::range<3> NumWorkItems,
sycl::id<3> Offset, int Dims) {
if (Dims == 1) {
sycl::range<1> NumWorkItemsTrimmed = {NumWorkItems[0]};
sycl::id<1> OffsetTrimmed = {Offset[0]};
impl->MNDRDesc = NDRDescT{NumWorkItemsTrimmed, OffsetTrimmed};
} else if (Dims == 2) {
sycl::range<2> NumWorkItemsTrimmed = {NumWorkItems[0], NumWorkItems[1]};
sycl::id<2> OffsetTrimmed = {Offset[0], Offset[1]};
impl->MNDRDesc = NDRDescT{NumWorkItemsTrimmed, OffsetTrimmed};
} else if (Dims == 3) {
impl->MNDRDesc = NDRDescT{NumWorkItems, Offset};
}
}

void handler::setNDRangeDescriptorPadded(sycl::range<3> NumWorkItems,
sycl::range<3> LocalSize,
sycl::id<3> Offset, int Dims) {
if (Dims == 1) {
sycl::range<1> NumWorkItemsTrimmed = {NumWorkItems[0]};
sycl::range<1> LocalSizeTrimmed = {LocalSize[0]};
sycl::id<1> OffsetTrimmed = {Offset[0]};
impl->MNDRDesc =
NDRDescT{NumWorkItemsTrimmed, LocalSizeTrimmed, OffsetTrimmed};
} else if (Dims == 2) {
sycl::range<2> NumWorkItemsTrimmed = {NumWorkItems[0], NumWorkItems[1]};
sycl::range<2> LocalSizeTrimmed = {LocalSize[0], LocalSize[1]};
sycl::id<2> OffsetTrimmed = {Offset[0], Offset[1]};
impl->MNDRDesc =
NDRDescT{NumWorkItemsTrimmed, LocalSizeTrimmed, OffsetTrimmed};
} else if (Dims == 3) {
impl->MNDRDesc = NDRDescT{NumWorkItems, LocalSize, Offset};
}
}
#endif

void handler::setNDRangeDescriptor(sycl::range<3> N, bool SetNumWorkGroups) {
impl->MNDRDesc = NDRDescT{N, SetNumWorkGroups};
}
Expand Down
4 changes: 4 additions & 0 deletions sycl/test/abi/sycl_symbols_linux.dump
Original file line number Diff line number Diff line change
Expand Up @@ -3590,6 +3590,7 @@ _ZN4sycl3_V17handler22setHandlerKernelBundleERKSt10shared_ptrINS0_6detail18kerne
_ZN4sycl3_V17handler22setKernelClusterLaunchENS0_5rangeILi1EEE
_ZN4sycl3_V17handler22setKernelClusterLaunchENS0_5rangeILi2EEE
_ZN4sycl3_V17handler22setKernelClusterLaunchENS0_5rangeILi3EEE
_ZN4sycl3_V17handler22setKernelClusterLaunchENS0_5rangeILi3EEEi
_ZN4sycl3_V17handler22setKernelIsCooperativeEb
_ZN4sycl3_V17handler23instantiateKernelOnHostEPv
_ZN4sycl3_V17handler24GetRangeRoundingSettingsERmS2_S2_
Expand All @@ -3601,6 +3602,9 @@ _ZN4sycl3_V17handler24registerDynamicParameterERNS0_3ext6oneapi12experimental6de
_ZN4sycl3_V17handler25ext_intel_write_host_pipeENS0_6detail11string_viewEPvmb
_ZN4sycl3_V17handler26associateWithHandlerCommonESt10shared_ptrINS0_6detail16AccessorImplHostEEi
_ZN4sycl3_V17handler26setKernelNameBasedCachePtrEPNS0_6detail21KernelNameBasedCacheTE
_ZN4sycl3_V17handler26setNDRangeDescriptorPaddedENS0_5rangeILi3EEENS0_2idILi3EEEi
_ZN4sycl3_V17handler26setNDRangeDescriptorPaddedENS0_5rangeILi3EEES3_NS0_2idILi3EEEi
_ZN4sycl3_V17handler26setNDRangeDescriptorPaddedENS0_5rangeILi3EEEbi
_ZN4sycl3_V17handler27addLifetimeSharedPtrStorageESt10shared_ptrIKvE
_ZN4sycl3_V17handler27computeFallbackKernelBoundsEmm
_ZN4sycl3_V17handler28extractArgsAndReqsFromLambdaEPcPFNS0_6detail19kernel_param_desc_tEiEmb
Expand Down
4 changes: 4 additions & 0 deletions sycl/test/abi/sycl_symbols_windows.dump
Original file line number Diff line number Diff line change
Expand Up @@ -4405,6 +4405,7 @@
?setKernelClusterLaunch@handler@_V1@sycl@@AEAAXV?$range@$00@23@@Z
?setKernelClusterLaunch@handler@_V1@sycl@@AEAAXV?$range@$01@23@@Z
?setKernelClusterLaunch@handler@_V1@sycl@@AEAAXV?$range@$02@23@@Z
?setKernelClusterLaunch@handler@_V1@sycl@@AEAAXV?$range@$02@23@H@Z
?setKernelInfo@handler@_V1@sycl@@AEAAXPEAXHP6A?AUkernel_param_desc_t@detail@23@H@Z_N2@Z
?setKernelIsCooperative@handler@_V1@sycl@@AEAAX_N@Z
?setKernelNameBasedCachePtr@handler@_V1@sycl@@AEAAXPEAUKernelNameBasedCacheT@detail@23@@Z
Expand All @@ -4419,6 +4420,9 @@
?setNDRangeDescriptor@handler@_V1@sycl@@AEAAXV?$range@$02@23@0V?$id@$02@23@@Z
?setNDRangeDescriptor@handler@_V1@sycl@@AEAAXV?$range@$02@23@V?$id@$02@23@@Z
?setNDRangeDescriptor@handler@_V1@sycl@@AEAAXV?$range@$02@23@_N@Z
?setNDRangeDescriptorPadded@handler@_V1@sycl@@AEAAXV?$range@$02@23@V?$id@$02@23@H@Z
?setNDRangeDescriptorPadded@handler@_V1@sycl@@AEAAXV?$range@$02@23@0V?$id@$02@23@H@Z
?setNDRangeDescriptorPadded@handler@_V1@sycl@@AEAAXV?$range@$02@23@_NH@Z
?setNDRangeUsed@handler@_V1@sycl@@AEAAX_N@Z
?setStateExplicitKernelBundle@handler@_V1@sycl@@AEAAXXZ
?setStateSpecConstSet@handler@_V1@sycl@@AEAAXXZ
Expand Down