Skip to content

[SYCL] Move kernel_compiler related information #17380

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 26 commits into from
Apr 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6fcfe52
[SYCL] Move kernel_compiler related information
steffenlarsen Mar 6, 2025
cb59151
Remove unused binary ctor arg
steffenlarsen Mar 11, 2025
0cc263e
Fix interop case
steffenlarsen Mar 11, 2025
319631e
Fix USM indirect access enablement
steffenlarsen Mar 11, 2025
343ba53
Add join test
steffenlarsen Mar 11, 2025
d15b511
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Mar 11, 2025
8ec71fc
Increment no_sycl_hpp test count
steffenlarsen Mar 11, 2025
bd33289
Fix formatting
steffenlarsen Mar 11, 2025
c7ba34e
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Mar 13, 2025
99800a6
Remove unintended arg
steffenlarsen Mar 13, 2025
6bb6ac9
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Mar 14, 2025
ca9d555
Fix formatting
steffenlarsen Mar 14, 2025
0ed9001
Fix issue of adoptive binaries and deallocation
steffenlarsen Mar 17, 2025
8b5e133
Split ctors
steffenlarsen Mar 17, 2025
66f82b1
Remove old sycl_jit ref
steffenlarsen Mar 17, 2025
31d0782
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Mar 24, 2025
b6e4c8d
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Mar 25, 2025
e35a2c0
Fix formatting
steffenlarsen Mar 25, 2025
3f4137b
Make MSVC happy about try-catch dtor
steffenlarsen Mar 25, 2025
17ca3a9
Another attempt at appeasing MSVC
steffenlarsen Mar 25, 2025
e91f643
Disallow conflicting include headers
steffenlarsen Mar 25, 2025
1e7f5e6
Remove unintentional include pair adding
steffenlarsen Mar 25, 2025
5499ff2
Merge remote-tracking branch 'intel/sycl' into steffen/refactor_kc
steffenlarsen Apr 3, 2025
ffbe777
Fix dependency resolution
steffenlarsen Apr 3, 2025
a6acfa2
Remove unnecessary move
steffenlarsen Apr 3, 2025
33eb934
Merge branch 'sycl' into steffen/refactor_kc
steffenlarsen Apr 4, 2025
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
3 changes: 2 additions & 1 deletion sycl/source/backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,8 @@ make_kernel_bundle(ur_native_handle_t NativeHandle,
// symbols (e.g. when kernel_bundle is supposed to be joined with another).
auto KernelIDs = std::make_shared<std::vector<kernel_id>>();
auto DevImgImpl = std::make_shared<device_image_impl>(
nullptr, TargetContext, Devices, State, KernelIDs, UrProgram);
nullptr, TargetContext, Devices, State, KernelIDs, UrProgram,
ImageOriginInterop);
device_image_plain DevImg{DevImgImpl};

return std::make_shared<kernel_bundle_impl>(TargetContext, Devices, DevImg);
Expand Down
786 changes: 770 additions & 16 deletions sycl/source/detail/device_image_impl.hpp

Large diffs are not rendered by default.

16 changes: 4 additions & 12 deletions sycl/source/detail/graph_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1534,18 +1534,10 @@ void exec_graph_impl::populateURKernelUpdateStructs(
std::shared_ptr<sycl::detail::kernel_impl> SyclKernelImpl = nullptr;
const sycl::detail::KernelArgMask *EliminatedArgMask = nullptr;

// Use kernel_bundle if available unless it is interop.
// Interop bundles can't be used in the first branch, because the kernels
// in interop kernel bundles (if any) do not have kernel_id
// and can therefore not be looked up, but since they are self-contained
// they can simply be launched directly.
if (KernelBundleImplPtr && !KernelBundleImplPtr->isInterop()) {
const auto &KernelName = ExecCG.MKernelName;
kernel_id KernelID =
sycl::detail::ProgramManager::getInstance().getSYCLKernelID(KernelName);
kernel SyclKernel =
KernelBundleImplPtr->get_kernel(KernelID, KernelBundleImplPtr);
SyclKernelImpl = sycl::detail::getSyclObjImpl(SyclKernel);
if (auto SyclKernelImpl = KernelBundleImplPtr
? KernelBundleImplPtr->tryGetKernel(
ExecCG.MKernelName, KernelBundleImplPtr)
: std::shared_ptr<kernel_impl>{nullptr}) {
UrKernel = SyclKernelImpl->getHandleRef();
EliminatedArgMask = SyclKernelImpl->getKernelArgMask();
} else if (Kernel != nullptr) {
Expand Down
17 changes: 7 additions & 10 deletions sycl/source/detail/helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,14 @@ retrieveKernelBinary(const QueueImplPtr &Queue, const char *KernelName,

const RTDeviceBinaryImage *DeviceImage = nullptr;
ur_program_handle_t Program = nullptr;
if (KernelCG->getKernelBundle() != nullptr) {
auto KernelBundleImpl = KernelCG->getKernelBundle();
if (auto SyclKernelImpl =
KernelBundleImpl
? KernelBundleImpl->tryGetKernel(KernelName, KernelBundleImpl)
: std::shared_ptr<kernel_impl>{nullptr}) {
// Retrieve the device image from the kernel bundle.
auto KernelBundle = KernelCG->getKernelBundle();
kernel_id KernelID =
detail::ProgramManager::getInstance().getSYCLKernelID(KernelName);

auto SyclKernel = detail::getSyclObjImpl(
KernelBundle->get_kernel(KernelID, KernelBundle));

DeviceImage = SyclKernel->getDeviceImage()->get_bin_image_ref();
Program = SyclKernel->getDeviceImage()->get_ur_program_ref();
DeviceImage = SyclKernelImpl->getDeviceImage()->get_bin_image_ref();
Program = SyclKernelImpl->getDeviceImage()->get_ur_program_ref();
} else if (KernelCG->MSyclKernel != nullptr) {
DeviceImage = KernelCG->MSyclKernel->getDeviceImage()->get_bin_image_ref();
Program = KernelCG->MSyclKernel->getDeviceImage()->get_ur_program_ref();
Expand Down
Loading