15 inline namespace _V1 {
16 namespace ext::codeplay::experimental {
22 "Cannot wrap a queue for fusion which doesn't support fusion");
24 MImpl = std::make_shared<detail::fusion_wrapper_impl>(
29 return sycl::detail::createSyclObjFromImpl<sycl::queue>(MImpl->get_queue());
33 return MImpl->is_in_fusion_mode();
41 return MImpl->complete_fusion(PropList);
bool is_in_fusion_mode() const
Check whether the wrapped queue is in fusion mode or not.
event complete_fusion(const property_list &propList={})
Complete the fusion: JIT-compile a fused kernel from all kernels submitted to the wrapped queue since...
fusion_wrapper(queue &q)
Wrap a queue to get access to the kernel fusion API.
void start_fusion()
Set the wrapped queue into "fusion mode".
void cancel_fusion()
Cancel the fusion and submit all kernels submitted since the last start_fusion() for immediate execut...
queue get_queue() const
Access the queue wrapped by this fusion wrapper.
Objects of the property_list class are containers for the SYCL properties.
Encapsulates a single SYCL queue which schedules kernels on a SYCL device.
bool ext_codeplay_supports_fusion() const
Returns true if the queue was created with the ext::codeplay::experimental::property::queue::enable_f...
decltype(Obj::impl) getSyclObjImpl(const Obj &SyclObject)