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