@@ -36,9 +36,9 @@ markBufferAsInternal(const std::shared_ptr<buffer_impl> &BufImpl) {
36
36
BufImpl->markAsInternal ();
37
37
}
38
38
39
- std::tuple< const RTDeviceBinaryImage *, ur_program_handle_t >
40
- retrieveKernelBinary (queue_impl &Queue, KernelNameStrRefT KernelName,
41
- CGExecKernel *KernelCG) {
39
+ const RTDeviceBinaryImage *retrieveKernelBinary (queue_impl &Queue,
40
+ KernelNameStrRefT KernelName,
41
+ CGExecKernel *KernelCG) {
42
42
device_impl &Dev = Queue.getDeviceImpl ();
43
43
bool isNvidia = Dev.getBackend () == backend::ext_oneapi_cuda;
44
44
bool isHIP = Dev.getBackend () == backend::ext_oneapi_hip;
@@ -55,36 +55,22 @@ retrieveKernelBinary(queue_impl &Queue, KernelNameStrRefT KernelName,
55
55
return DI->getFormat () == SYCL_DEVICE_BINARY_TYPE_LLVMIR_BITCODE &&
56
56
DI->getRawData ().DeviceTargetSpec == TargetSpec;
57
57
});
58
- if (DeviceImage == DeviceImages.end ()) {
59
- return {nullptr , nullptr };
60
- }
61
- context_impl &ContextImpl = Queue.getContextImpl ();
62
- ur_program_handle_t Program =
63
- detail::ProgramManager::getInstance ().createURProgram (
64
- **DeviceImage, ContextImpl, {createSyclObjFromImpl<device>(Dev)});
65
- return {*DeviceImage, Program};
58
+ assert (DeviceImage != DeviceImages.end () &&
59
+ " Failed to obtain a binary image." );
60
+ return *DeviceImage;
66
61
}
67
62
68
- const RTDeviceBinaryImage *DeviceImage = nullptr ;
69
- ur_program_handle_t Program = nullptr ;
70
- auto KernelBundleImpl = KernelCG->getKernelBundle ();
71
- if (KernelCG->MSyclKernel != nullptr ) {
72
- DeviceImage = KernelCG->MSyclKernel ->getDeviceImage ()->get_bin_image_ref ();
73
- Program = KernelCG->MSyclKernel ->getDeviceImage ()->get_ur_program_ref ();
74
- } else if (auto SyclKernelImpl =
75
- KernelBundleImpl ? KernelBundleImpl->tryGetKernel (KernelName)
76
- : std::shared_ptr<kernel_impl>{nullptr }) {
77
- // Retrieve the device image from the kernel bundle.
78
- DeviceImage = SyclKernelImpl->getDeviceImage ()->get_bin_image_ref ();
79
- Program = SyclKernelImpl->getDeviceImage ()->get_ur_program_ref ();
80
- } else {
81
- context_impl &ContextImpl = Queue.getContextImpl ();
82
- DeviceImage = &detail::ProgramManager::getInstance ().getDeviceImage (
83
- KernelName, ContextImpl, Dev);
84
- Program = detail::ProgramManager::getInstance ().createURProgram (
85
- *DeviceImage, ContextImpl, {createSyclObjFromImpl<device>(Dev)});
86
- }
87
- return {DeviceImage, Program};
63
+ if (KernelCG->MSyclKernel != nullptr )
64
+ return KernelCG->MSyclKernel ->getDeviceImage ()->get_bin_image_ref ();
65
+
66
+ if (auto KernelBundleImpl = KernelCG->getKernelBundle ())
67
+ if (KernelBundleImpl->tryGetKernel (KernelName))
68
+ // Retrieve the device image from the kernel bundle.
69
+ return SyclKernelImpl->getDeviceImage ()->get_bin_image_ref ();
70
+
71
+ context_impl &ContextImpl = Queue.getContextImpl ();
72
+ return &detail::ProgramManager::getInstance ().getDeviceImage (
73
+ KernelName, ContextImpl, Dev);
88
74
}
89
75
90
76
} // namespace detail
0 commit comments