DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::handler Class Reference

Command group handler class. More...

#include <sycl/handler.hpp>

Classes

struct  ShouldEnableSetArg
 

Public Types

template<typename T >
using remove_cv_ref_t = typename std::remove_cv_t< std::remove_reference_t< T > >
 
template<typename U , typename T >
using is_same_type = std::is_same< remove_cv_ref_t< U >, remove_cv_ref_t< T > >
 

Public Member Functions

 handler (const handler &)=delete
 
 handler (handler &&)=delete
 
handleroperator= (const handler &)=delete
 
handleroperator= (handler &&)=delete
 
template<auto & SpecName>
void set_specialization_constant (typename std::remove_reference_t< decltype(SpecName)>::value_type Value)
 
template<auto & SpecName>
std::remove_reference_t< decltype(SpecName)>::value_type get_specialization_constant () const
 
void use_kernel_bundle (const kernel_bundle< bundle_state::executable > &ExecBundle)
 
template<typename DataT , int Dims, access::mode AccMode, access::target AccTarget, access::placeholder isPlaceholder>
void require (accessor< DataT, Dims, AccMode, AccTarget, isPlaceholder > Acc)
 Requires access to the memory object associated with the placeholder accessor. More...
 
void depends_on (event Event)
 Registers event dependencies on this command group. More...
 
void depends_on (const std::vector< event > &Events)
 Registers event dependencies on this command group. More...
 
template<typename T >
std::enable_if_t< ShouldEnableSetArg< T >::value, void > set_arg (int ArgIndex, T &&Arg)
 Sets argument for OpenCL interoperability kernels. More...
 
template<typename DataT , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder>
void set_arg (int ArgIndex, accessor< DataT, Dims, AccessMode, AccessTarget, IsPlaceholder > Arg)
 
template<typename DataT , int Dims>
void set_arg (int ArgIndex, local_accessor< DataT, Dims > Arg)
 
template<typename... Ts>
void set_args (Ts &&...Args)
 Sets arguments for OpenCL interoperability kernels. More...
 
template<typename KernelName = detail::auto_name, typename KernelType >
void single_task (_KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function as a function object type. More...
 
template<typename KernelName = detail::auto_name, typename KernelType >
void parallel_for (range< 1 > NumWorkItems, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType >
void parallel_for (range< 2 > NumWorkItems, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType >
void parallel_for (range< 3 > NumWorkItems, _KERNELFUNCPARAM(KernelFunc))
 
template<typename FuncT >
std::enable_if_t< detail::check_fn_signature< std::remove_reference_t< FuncT >, void()>::value||detail::check_fn_signature< std::remove_reference_t< FuncT >, void(interop_handle)>::value > host_task (FuncT &&Func)
 Enqueues a command to the SYCL runtime to invoke Func once. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for (range< Dims > NumWorkItems, id< Dims > WorkItemOffset, _KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function for the specified range and offset. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for_work_group (range< Dims > NumWorkGroups, _KERNELFUNCPARAM(KernelFunc))
 Hierarchical kernel invocation method of a kernel defined as a lambda encoding the body of each work-group to launch. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for_work_group (range< Dims > NumWorkGroups, range< Dims > WorkGroupSize, _KERNELFUNCPARAM(KernelFunc))
 Hierarchical kernel invocation method of a kernel defined as a lambda encoding the body of each work-group to launch. More...
 
void single_task (kernel Kernel)
 Invokes a SYCL kernel. More...
 
void parallel_for (range< 1 > NumWorkItems, kernel Kernel)
 
void parallel_for (range< 2 > NumWorkItems, kernel Kernel)
 
void parallel_for (range< 3 > NumWorkItems, kernel Kernel)
 
template<int Dims>
void parallel_for (range< Dims > NumWorkItems, id< Dims > WorkItemOffset, kernel Kernel)
 Defines and invokes a SYCL kernel function for the specified range and offsets. More...
 
template<int Dims>
void parallel_for (nd_range< Dims > NDRange, kernel Kernel)
 Defines and invokes a SYCL kernel function for the specified range and offsets. More...
 
template<typename KernelName = detail::auto_name, typename KernelType >
void single_task (kernel Kernel, _KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for (kernel Kernel, range< Dims > NumWorkItems, _KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function for the specified range. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for (kernel Kernel, range< Dims > NumWorkItems, id< Dims > WorkItemOffset, _KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function for the specified range and offsets. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for (kernel Kernel, nd_range< Dims > NDRange, _KERNELFUNCPARAM(KernelFunc))
 Defines and invokes a SYCL kernel function for the specified range and offsets. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for_work_group (kernel Kernel, range< Dims > NumWorkGroups, _KERNELFUNCPARAM(KernelFunc))
 Hierarchical kernel invocation method of a kernel. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void parallel_for_work_group (kernel Kernel, range< Dims > NumWorkGroups, range< Dims > WorkGroupSize, _KERNELFUNCPARAM(KernelFunc))
 Hierarchical kernel invocation method of a kernel. More...
 
template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list< PropertiesT >::value > single_task (PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 1 > NumWorkItems, PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 2 > NumWorkItems, PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 3 > NumWorkItems, PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 
template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT , int Dims>
std::enable_if_t< ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (nd_range< Dims > Range, PropertiesT Properties, _KERNELFUNCPARAM(KernelFunc))
 
class detail::queue_impl
 
template<typename DataT , int Dims, access::mode AccMode, access::target AccTarget, access::placeholder isPlaceholder, typename PropertyListT >
class accessor
 
template<typename DataT , int Dimensions, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder>
class detail::image_accessor
 
class stream
 
class detail::stream_impl
 
template<typename T , class BinaryOperation , int Dims, size_t Extent, bool ExplicitIdentity, typename RedOutVar >
class detail::reduction_impl_algo
 
class ::MockHandler
 
template<class _name , class _dataT , int32_t _min_capacity, class _propertiesT , class >
class ext::intel::experimental::pipe
 
class ext::oneapi::experimental::detail::graph_impl
 
device detail::getDeviceFromHandler (handler &)
 
void detail::reduction::finalizeHandler (handler &CGH)
 
template<class FunctorTy >
void detail::reduction::withAuxHandler (handler &CGH, FunctorTy Func)
 
template<typename KernelName , detail::reduction::strategy Strategy, int Dims, typename PropertiesT , typename... RestT>
void detail::reduction_parallel_for (handler &CGH, range< Dims > NDRange, PropertiesT Properties, RestT... Rest)
 
template<typename KernelName , detail::reduction::strategy Strategy, int Dims, typename PropertiesT , typename... RestT>
void detail::reduction_parallel_for (handler &CGH, nd_range< Dims > NDRange, PropertiesT Properties, RestT... Rest)
 
void detail::associateWithHandler (handler &, detail::AccessorBaseHost *, access::target)
 
void detail::associateWithHandler (handler &, detail::UnsampledImageAccessorBaseHost *, image_target)
 
void detail::associateWithHandler (handler &, detail::SampledImageAccessorBaseHost *, image_target)
 
template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t<(sizeof...(RestT) > 1) &&detail::AreAllButLastReductions< RestT... >::value &&ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 1 > Range, PropertiesT Properties, RestT &&...Rest)
 Reductions. More...
 
template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t<(sizeof...(RestT) > 1) &&detail::AreAllButLastReductions< RestT... >::value &&ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 2 > Range, PropertiesT Properties, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t<(sizeof...(RestT) > 1) &&detail::AreAllButLastReductions< RestT... >::value &&ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (range< 3 > Range, PropertiesT Properties, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t< detail::AreAllButLastReductions< RestT... >::value > parallel_for (range< 1 > Range, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t< detail::AreAllButLastReductions< RestT... >::value > parallel_for (range< 2 > Range, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t< detail::AreAllButLastReductions< RestT... >::value > parallel_for (range< 3 > Range, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, int Dims, typename PropertiesT , typename... RestT>
std::enable_if_t<(sizeof...(RestT) > 1) &&detail::AreAllButLastReductions< RestT... >::value &&ext::oneapi::experimental::is_property_list< PropertiesT >::value > parallel_for (nd_range< Dims > Range, PropertiesT Properties, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, int Dims, typename... RestT>
std::enable_if_t< detail::AreAllButLastReductions< RestT... >::value > parallel_for (nd_range< Dims > Range, RestT &&...Rest)
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims, typename PropertiesT >
void parallel_for_work_group (range< Dims > NumWorkGroups, PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 }@ More...
 
template<typename KernelName = detail::auto_name, typename KernelType , int Dims, typename PropertiesT >
void parallel_for_work_group (range< Dims > NumWorkGroups, range< Dims > WorkGroupSize, PropertiesT Props, _KERNELFUNCPARAM(KernelFunc))
 
template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void copy (accessor< T_Src, Dims, AccessMode, AccessTarget, IsPlaceholder > Src, std::shared_ptr< T_Dst > Dst)
 Copies the content of memory object accessed by Src into the memory pointed by Dst. More...
 
template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void copy (std::shared_ptr< T_Src > Src, accessor< T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder > Dst)
 Copies the content of memory pointed by Src into the memory object accessed by Dst. More...
 
template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void copy (accessor< T_Src, Dims, AccessMode, AccessTarget, IsPlaceholder > Src, T_Dst *Dst)
 Copies the content of memory object accessed by Src into the memory pointed by Dst. More...
 
template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void copy (const T_Src *Src, accessor< T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder > Dst)
 Copies the content of memory pointed by Src into the memory object accessed by Dst. More...
 
template<typename T_Src , int Dims_Src, access::mode AccessMode_Src, access::target AccessTarget_Src, typename T_Dst , int Dims_Dst, access::mode AccessMode_Dst, access::target AccessTarget_Dst, access::placeholder IsPlaceholder_Src = access::placeholder::false_t, access::placeholder IsPlaceholder_Dst = access::placeholder::false_t>
void copy (accessor< T_Src, Dims_Src, AccessMode_Src, AccessTarget_Src, IsPlaceholder_Src > Src, accessor< T_Dst, Dims_Dst, AccessMode_Dst, AccessTarget_Dst, IsPlaceholder_Dst > Dst)
 Copies the content of memory object accessed by Src to the memory object accessed by Dst. More...
 
template<typename T , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void update_host (accessor< T, Dims, AccessMode, AccessTarget, IsPlaceholder > Acc)
 Provides guarantees that the memory object accessed via Acc is updated on the host after command group object execution is complete. More...
 
template<typename T , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t, typename PropertyListT = property_list>
void fill (accessor< T, Dims, AccessMode, AccessTarget, IsPlaceholder, PropertyListT > Dst, const T &Pattern)
 Fills memory pointed by accessor with the pattern given. More...
 
template<typename T >
void fill (void *Ptr, const T &Pattern, size_t Count)
 Fills the specified memory with the specified pattern. More...
 
void ext_oneapi_barrier ()
 Prevents any commands submitted afterward to this queue from executing until all commands previously submitted to this queue have entered the complete state. More...
 
void ext_oneapi_barrier (const std::vector< event > &WaitList)
 Prevents any commands submitted afterward to this queue from executing until all events in WaitList have entered the complete state. More...
 
void memcpy (void *Dest, const void *Src, size_t Count)
 Copies data from one memory region to another, each is either a host pointer or a pointer within USM allocation accessible on this handler's device. More...
 
template<typename T >
void copy (const T *Src, T *Dest, size_t Count)
 Copies data from one memory region to another, each is either a host pointer or a pointer within USM allocation accessible on this handler's device. More...
 
void memset (void *Dest, int Value, size_t Count)
 Fills the memory pointed by a USM pointer with the value specified. More...
 
void prefetch (const void *Ptr, size_t Count)
 Provides hints to the runtime library that data should be made available on a device earlier than Unified Shared Memory would normally require it to be available. More...
 
void mem_advise (const void *Ptr, size_t Length, int Advice)
 Provides additional information to the underlying runtime about how different allocations are used. More...
 
template<typename T = unsigned char, typename = std::enable_if_t<std::is_same_v<T, unsigned char>>>
void ext_oneapi_memcpy2d (void *Dest, size_t DestPitch, const void *Src, size_t SrcPitch, size_t Width, size_t Height)
 Copies data from one 2D memory region to another, both pointed by USM pointers. More...
 
template<typename T >
void ext_oneapi_copy2d (const T *Src, size_t SrcPitch, T *Dest, size_t DestPitch, size_t Width, size_t Height)
 Copies data from one 2D memory region to another, both pointed by USM pointers. More...
 
template<typename T = unsigned char, typename = std::enable_if_t<std::is_same_v<T, unsigned char>>>
void ext_oneapi_memset2d (void *Dest, size_t DestPitch, int Value, size_t Width, size_t Height)
 Fills the memory pointed by a USM pointer with the value specified. More...
 
template<typename T >
void ext_oneapi_fill2d (void *Dest, size_t DestPitch, const T &Pattern, size_t Width, size_t Height)
 Fills the memory pointed by a USM pointer with the value specified. More...
 
template<typename T , typename PropertyListT >
void memcpy (ext::oneapi::experimental::device_global< T, PropertyListT > &Dest, const void *Src, size_t NumBytes=sizeof(T), size_t DestOffset=0)
 Copies data from a USM memory region to a device_global. More...
 
template<typename T , typename PropertyListT >
void memcpy (void *Dest, const ext::oneapi::experimental::device_global< T, PropertyListT > &Src, size_t NumBytes=sizeof(T), size_t SrcOffset=0)
 Copies data from a device_global to USM memory. More...
 
template<typename T , typename PropertyListT >
void copy (const std::remove_all_extents_t< T > *Src, ext::oneapi::experimental::device_global< T, PropertyListT > &Dest, size_t Count=sizeof(T)/sizeof(std::remove_all_extents_t< T >), size_t StartIndex=0)
 Copies elements of type std::remove_all_extents_t<T> from a USM memory region to a device_global. More...
 
template<typename T , typename PropertyListT >
void copy (const ext::oneapi::experimental::device_global< T, PropertyListT > &Src, std::remove_all_extents_t< T > *Dest, size_t Count=sizeof(T)/sizeof(std::remove_all_extents_t< T >), size_t StartIndex=0)
 Copies elements of type std::remove_all_extents_t<T> from a device_global to a USM memory region. More...
 
void ext_oneapi_graph (ext::oneapi::experimental::command_graph< ext::oneapi::experimental::graph_state::executable > Graph)
 Executes a command_graph. More...
 
void ext_oneapi_copy (void *Src, ext::oneapi::experimental::image_mem_handle Dest, const ext::oneapi::experimental::image_descriptor &DestImgDesc)
 Copies data from one memory region to another, where Src is a USM pointer and Dest is an opaque image memory handle. More...
 
void ext_oneapi_copy (void *Src, sycl::range< 3 > SrcOffset, sycl::range< 3 > SrcExtent, ext::oneapi::experimental::image_mem_handle Dest, sycl::range< 3 > DestOffset, const ext::oneapi::experimental::image_descriptor &DestImgDesc, sycl::range< 3 > CopyExtent)
 Copies data from one memory region to another, where Src is a USM pointer and Dest is an opaque image memory handle. More...
 
void ext_oneapi_copy (ext::oneapi::experimental::image_mem_handle Src, void *Dest, const ext::oneapi::experimental::image_descriptor &SrcImgDesc)
 Copies data from one memory region to another, where Src is an opaque image memory handle and Dest is a USM pointer. More...
 
void ext_oneapi_copy (ext::oneapi::experimental::image_mem_handle Src, sycl::range< 3 > SrcOffset, const ext::oneapi::experimental::image_descriptor &SrcImgDesc, void *Dest, sycl::range< 3 > DestOffset, sycl::range< 3 > DestExtent, sycl::range< 3 > CopyExtent)
 Copies data from one memory region to another, where Src is an opaque image memory handle and Dest is a USM pointer. More...
 
void ext_oneapi_copy (void *Src, void *Dest, const ext::oneapi::experimental::image_descriptor &DeviceImgDesc, size_t DeviceRowPitch)
 Copies data from one memory region to another, where Src and Dest are USM pointers. More...
 
void ext_oneapi_copy (void *Src, sycl::range< 3 > SrcOffset, void *Dest, sycl::range< 3 > DestOffset, const ext::oneapi::experimental::image_descriptor &DeviceImgDesc, size_t DeviceRowPitch, sycl::range< 3 > HostExtent, sycl::range< 3 > CopyExtent)
 Copies data from one memory region to another, where Src and Dest are USM pointers. More...
 
void ext_oneapi_wait_external_semaphore (sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle)
 Instruct the queue with a non-blocking wait on an external semaphore. More...
 
void ext_oneapi_signal_external_semaphore (sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle)
 Instruct the queue to signal the external semaphore once all previous commands have completed execution. More...
 

Detailed Description

Command group handler class.

Objects of the handler class collect information about command group, such as kernel, requirements to the memory, arguments for the kernel.

sycl::queue::submit([](handler &CGH){
CGH.require(Accessor1); // Adds a requirement to the memory object.
CGH.setArg(0, Accessor2); // Registers accessor given as an argument to
// the kernel + adds a requirement to the memory
// object.
CGH.setArg(1, N); // Registers value given as an argument to the
// kernel.
// The following registers KernelFunctor to be a kernel that will be
// executed in case of queue is bound to the host device, Kernel - for
// an OpenCL device. This function clearly indicates that command group
// represents kernel execution.
CGH.parallel_for(KernelFunctor, Kernel);
});
std::enable_if_t< std::is_invocable_r_v< void, T, handler & >, event > submit(T CGF, const detail::code_location &CodeLoc=detail::code_location::current())
Submits a command group function object to the queue, in order to be scheduled for execution on the d...
Definition: queue.hpp:347

The command group can represent absolutely different operations. Depending on the operation we need to store different data. But, in most cases, it's impossible to say what kind of operation we need to perform until the very end. So, handler class contains all fields simultaneously, then during "finalization" it constructs CG object, that represents specific operation, passing fields that are required only.

See also
queue
program
kernel

Definition at line 454 of file handler.hpp.

Member Typedef Documentation

◆ is_same_type

template<typename U , typename T >
using sycl::_V1::handler::is_same_type = std::is_same<remove_cv_ref_t<U>, remove_cv_ref_t<T> >

Definition at line 1862 of file handler.hpp.

◆ remove_cv_ref_t

template<typename T >
using sycl::_V1::handler::remove_cv_ref_t = typename std::remove_cv_t<std::remove_reference_t<T> >

Definition at line 1859 of file handler.hpp.

Constructor & Destructor Documentation

◆ handler() [1/2]

sycl::_V1::handler::handler ( const handler )
delete

◆ handler() [2/2]

sycl::_V1::handler::handler ( handler &&  )
delete

Member Function Documentation

◆ copy() [1/8]

template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void sycl::_V1::handler::copy ( accessor< T_Src, Dims, AccessMode, AccessTarget, IsPlaceholder Src,
std::shared_ptr< T_Dst >  Dst 
)
inline

Copies the content of memory object accessed by Src into the memory pointed by Dst.

Source must have at least as many bytes as the range accessed by Dst.

Parameters
Srcis a source SYCL accessor.
Dstis a smart pointer to destination memory.

Definition at line 2498 of file handler.hpp.

References sycl::_V1::AccessMode.

Referenced by sycl::_V1::queue::copy(), and sycl::_V1::detail::reduction_impl_algo< T, BinaryOperation, Dims, Extent, ExplicitIdentity, RedOutVar >::withInitializedMem().

◆ copy() [2/8]

template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void sycl::_V1::handler::copy ( accessor< T_Src, Dims, AccessMode, AccessTarget, IsPlaceholder Src,
T_Dst *  Dst 
)
inline

Copies the content of memory object accessed by Src into the memory pointed by Dst.

Source must have at least as many bytes as the range accessed by Dst.

Parameters
Srcis a source SYCL accessor.
Dstis a pointer to destination memory.

Definition at line 2555 of file handler.hpp.

References sycl::_V1::AccessMode, sycl::_V1::detail::CG::CopyAccToPtr, and sycl::_V1::detail::getSyclObjImpl().

◆ copy() [3/8]

template<typename T_Src , int Dims_Src, access::mode AccessMode_Src, access::target AccessTarget_Src, typename T_Dst , int Dims_Dst, access::mode AccessMode_Dst, access::target AccessTarget_Dst, access::placeholder IsPlaceholder_Src = access::placeholder::false_t, access::placeholder IsPlaceholder_Dst = access::placeholder::false_t>
void sycl::_V1::handler::copy ( accessor< T_Src, Dims_Src, AccessMode_Src, AccessTarget_Src, IsPlaceholder_Src >  Src,
accessor< T_Dst, Dims_Dst, AccessMode_Dst, AccessTarget_Dst, IsPlaceholder_Dst >  Dst 
)
inline

Copies the content of memory object accessed by Src to the memory object accessed by Dst.

Dst must have at least as many bytes as the range accessed by Src.

Parameters
Srcis a source SYCL accessor.
Dstis a destination SYCL accessor.

Definition at line 2643 of file handler.hpp.

References sycl::_V1::detail::CG::CopyAccToAcc, and sycl::_V1::detail::getSyclObjImpl().

◆ copy() [4/8]

template<typename T , typename PropertyListT >
void sycl::_V1::handler::copy ( const ext::oneapi::experimental::device_global< T, PropertyListT > &  Src,
std::remove_all_extents_t< T > *  Dest,
size_t  Count = sizeof(T) / sizeof(std::remove_all_extents_t<T>),
size_t  StartIndex = 0 
)
inline

Copies elements of type std::remove_all_extents_t<T> from a device_global to a USM memory region.

Throws an exception if the copy operation intends to write outside the memory range Src, as specified through Count and StartIndex.

Parameters
Srcis the source device_global.
Destis a USM pointer to copy to.
Countis a number of elements to copy.
StartIndexis the index of the first element in Src to copy from.

Definition at line 3136 of file handler.hpp.

◆ copy() [5/8]

template<typename T , typename PropertyListT >
void sycl::_V1::handler::copy ( const std::remove_all_extents_t< T > *  Src,
ext::oneapi::experimental::device_global< T, PropertyListT > &  Dest,
size_t  Count = sizeof(T) / sizeof(std::remove_all_extents_t<T>),
size_t  StartIndex = 0 
)
inline

Copies elements of type std::remove_all_extents_t<T> from a USM memory region to a device_global.

Throws an exception if the copy operation intends to write outside the memory range Dest, as specified through Count and StartIndex.

Parameters
Srcis a USM pointer to the source memory.
Destis the destination device_glboal.
Countis a number of elements to copy.
StartIndexis the index of the first element in Dest to copy to.

Definition at line 3116 of file handler.hpp.

◆ copy() [6/8]

template<typename T >
void sycl::_V1::handler::copy ( const T *  Src,
T *  Dest,
size_t  Count 
)
inline

Copies data from one memory region to another, each is either a host pointer or a pointer within USM allocation accessible on this handler's device.

No operations is done if Count is zero. An exception is thrown if either Dest or Src is nullptr. The behavior is undefined if any of the pointer parameters is invalid.

Parameters
Srcis a USM pointer to the source memory.
Destis a USM pointer to the destination memory.
Countis a number of elements of type T to copy.

Definition at line 2822 of file handler.hpp.

◆ copy() [7/8]

template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void sycl::_V1::handler::copy ( const T_Src *  Src,
accessor< T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder Dst 
)
inline

Copies the content of memory pointed by Src into the memory object accessed by Dst.

Source must have at least as many bytes as the range accessed by Dst.

Parameters
Srcis a pointer to source memory.
Dstis a destination SYCL accessor.

Definition at line 2597 of file handler.hpp.

References sycl::_V1::AccessMode, sycl::_V1::detail::CG::CopyPtrToAcc, and sycl::_V1::detail::getSyclObjImpl().

◆ copy() [8/8]

template<typename T_Src , typename T_Dst , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void sycl::_V1::handler::copy ( std::shared_ptr< T_Src >  Src,
accessor< T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder Dst 
)
inline

Copies the content of memory pointed by Src into the memory object accessed by Dst.

Source must have at least as many bytes as the range accessed by Dst.

Parameters
Srcis a smart pointer to source memory.
Dstis a destination SYCL accessor.

Definition at line 2526 of file handler.hpp.

References sycl::_V1::AccessMode.

◆ depends_on() [1/2]

void sycl::_V1::handler::depends_on ( const std::vector< event > &  Events)

Registers event dependencies on this command group.

Parameters
Eventsis a vector of valid SYCL events to wait on.

Definition at line 1268 of file handler.cpp.

References depends_on().

◆ depends_on() [2/2]

◆ ext_oneapi_barrier() [1/2]

void sycl::_V1::handler::ext_oneapi_barrier ( )
inline

Prevents any commands submitted afterward to this queue from executing until all commands previously submitted to this queue have entered the complete state.

Definition at line 2787 of file handler.hpp.

References sycl::_V1::detail::CG::Barrier.

Referenced by sycl::_V1::queue::ext_oneapi_submit_barrier().

◆ ext_oneapi_barrier() [2/2]

void sycl::_V1::handler::ext_oneapi_barrier ( const std::vector< event > &  WaitList)

Prevents any commands submitted afterward to this queue from executing until all events in WaitList have entered the complete state.

If WaitList is empty, then the barrier has no effect.

Parameters
WaitListis a vector of valid SYCL events that need to complete before barrier command can be executed.

Definition at line 892 of file handler.cpp.

References sycl::_V1::detail::CG::BarrierWaitlist.

◆ ext_oneapi_copy() [1/6]

void sycl::_V1::handler::ext_oneapi_copy ( ext::oneapi::experimental::image_mem_handle  Src,
sycl::range< 3 >  SrcOffset,
const ext::oneapi::experimental::image_descriptor SrcImgDesc,
void *  Dest,
sycl::range< 3 >  DestOffset,
sycl::range< 3 >  DestExtent,
sycl::range< 3 >  CopyExtent 
)

Copies data from one memory region to another, where Src is an opaque image memory handle and Dest is a USM pointer.

Allows for a sub-region copy, where SrcOffset , DestOffset , and Extent are used to determine the sub-region. Pixel size is determined by SrcImgDesc An exception is thrown if either Src is nullptr or Dest is incomplete.

Parameters
Srcis an opaque image memory handle to the source memory.
SrcOffsetis an offset from the origin of source measured in pixels (pixel size determined by SrcImgDesc )
SrcImgDescis the source image descriptor
Destis a USM pointer to the destination memory.
DestOffsetis an offset from the destination origin where the x, y, and z components are measured in bytes, rows, and slices respectively
DestExtentis the extent of the dest memory to copy, measured in pixels (pixel size determined by DestImgDesc )
CopyExtentis the width, height, and depth of the region to copy measured in pixels (pixel size determined by SrcImgDesc )

Definition at line 1090 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_order, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CG::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::image_descriptor::height, _pi_image_format::image_channel_data_type, _pi_image_format::image_channel_order, _pi_image_desc::image_depth, _pi_image_desc::image_height, _pi_image_desc::image_type, _pi_image_desc::image_width, PI_IMAGE_COPY_DEVICE_TO_HOST, PI_MEM_TYPE_IMAGE1D, PI_MEM_TYPE_IMAGE2D, PI_MEM_TYPE_IMAGE3D, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.

◆ ext_oneapi_copy() [2/6]

void sycl::_V1::handler::ext_oneapi_copy ( ext::oneapi::experimental::image_mem_handle  Src,
void *  Dest,
const ext::oneapi::experimental::image_descriptor SrcImgDesc 
)

◆ ext_oneapi_copy() [3/6]

void sycl::_V1::handler::ext_oneapi_copy ( void *  Src,
ext::oneapi::experimental::image_mem_handle  Dest,
const ext::oneapi::experimental::image_descriptor DestImgDesc 
)

◆ ext_oneapi_copy() [4/6]

void sycl::_V1::handler::ext_oneapi_copy ( void *  Src,
sycl::range< 3 >  SrcOffset,
sycl::range< 3 >  SrcExtent,
ext::oneapi::experimental::image_mem_handle  Dest,
sycl::range< 3 >  DestOffset,
const ext::oneapi::experimental::image_descriptor DestImgDesc,
sycl::range< 3 >  CopyExtent 
)

Copies data from one memory region to another, where Src is a USM pointer and Dest is an opaque image memory handle.

Allows for a sub-region copy, where SrcOffset , DestOffset , and CopyExtent are used to determine the sub-region. Pixel size is determined by DestImgDesc An exception is thrown if either Src is nullptr or Dest is incomplete.

Parameters
Srcis a USM pointer to the source memory.
SrcOffsetis an offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively
SrcExtentis the extent of the source memory to copy, measured in pixels (pixel size determined by DestImgDesc )
Destis an opaque image memory handle to the destination memory.
DestOffsetis an offset from the destination origin measured in pixels (pixel size determined by DestImgDesc )
DestImgDescis the destination image descriptor
CopyExtentis the width, height, and depth of the region to copy measured in pixels as determined by DestImgDesc

Definition at line 1019 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_order, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CG::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::image_descriptor::height, _pi_image_format::image_channel_data_type, _pi_image_format::image_channel_order, _pi_image_desc::image_depth, _pi_image_desc::image_height, _pi_image_desc::image_type, _pi_image_desc::image_width, PI_IMAGE_COPY_HOST_TO_DEVICE, PI_MEM_TYPE_IMAGE1D, PI_MEM_TYPE_IMAGE2D, PI_MEM_TYPE_IMAGE3D, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.

◆ ext_oneapi_copy() [5/6]

void sycl::_V1::handler::ext_oneapi_copy ( void *  Src,
sycl::range< 3 >  SrcOffset,
void *  Dest,
sycl::range< 3 >  DestOffset,
const ext::oneapi::experimental::image_descriptor DeviceImgDesc,
size_t  DeviceRowPitch,
sycl::range< 3 >  HostExtent,
sycl::range< 3 >  CopyExtent 
)

Copies data from one memory region to another, where Src and Dest are USM pointers.

Allows for a sub-region copy, where SrcOffset , DestOffset , and Extent are used to determine the sub-region. Pixel size is determined by DestImgDesc An exception is thrown if either Src is nullptr or Dest is incomplete.

Parameters
Srcis a USM pointer to the source memory.
SrcOffsetis an destination offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively
Destis a USM pointer to the destination memory.
DestOffsetis an destination offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively
DeviceImgDescis the device image descriptor
DeviceRowPitchis the row pitch on the device
HostExtentis the extent of the dest memory to copy, measured in pixels (pixel size determined by DeviceImgDesc )
CopyExtentis the width, height, and depth of the region to copy measured in pixels (pixel size determined by DeviceImgDesc )

Definition at line 1163 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_order, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CG::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::get_pointer_type(), sycl::_V1::detail::getPiImageCopyFlags(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, _pi_image_format::image_channel_data_type, _pi_image_format::image_channel_order, _pi_image_desc::image_depth, _pi_image_desc::image_height, _pi_image_desc::image_row_pitch, _pi_image_desc::image_type, _pi_image_desc::image_width, PI_MEM_TYPE_IMAGE1D, PI_MEM_TYPE_IMAGE2D, PI_MEM_TYPE_IMAGE3D, and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.

◆ ext_oneapi_copy() [6/6]

void sycl::_V1::handler::ext_oneapi_copy ( void *  Src,
void *  Dest,
const ext::oneapi::experimental::image_descriptor DeviceImgDesc,
size_t  DeviceRowPitch 
)

Copies data from one memory region to another, where Src and Dest are USM pointers.

An exception is thrown if either Src is nullptr, Dest is nullptr, or Pitch is inconsistent with hardware requirements. The behavior is undefined if Desc is inconsistent with the allocated memory region.

Parameters
Srcis a USM pointer to the source memory.
Destis a USM pointer to the destination memory.
DeviceImgDescis the image descriptor (format, order, dimensions).
DeviceRowPitchis the pitch of the rows on the device.

Definition at line 1127 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_order, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CG::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::get_pointer_type(), sycl::_V1::detail::getPiImageCopyFlags(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, _pi_image_format::image_channel_data_type, _pi_image_format::image_channel_order, _pi_image_desc::image_depth, _pi_image_desc::image_height, _pi_image_desc::image_row_pitch, _pi_image_desc::image_type, _pi_image_desc::image_width, PI_MEM_TYPE_IMAGE1D, PI_MEM_TYPE_IMAGE2D, PI_MEM_TYPE_IMAGE3D, and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.

◆ ext_oneapi_copy2d()

template<typename T >
void sycl::_V1::handler::ext_oneapi_copy2d ( const T *  Src,
size_t  SrcPitch,
T *  Dest,
size_t  DestPitch,
size_t  Width,
size_t  Height 
)
inline

Copies data from one 2D memory region to another, both pointed by USM pointers.

No operations is done if Width or Height is zero. An exception is thrown if either Dest or Src is nullptr or if Width is strictly greater than either DestPitch or SrcPitch. The behavior is undefined if any of the pointer parameters is invalid.

Parameters
Srcis a USM pointer to the source memory.
SrcPitchis the pitch of the rows in Src.
Destis a USM pointer to the destination memory.
DestPitchis the pitch of the rows in Dest.
Widthis the width in number of elements of the 2D region to copy.
Heightis the height in number of rows of the 2D region to copy.

Definition at line 2923 of file handler.hpp.

References sycl::_V1::get_pointer_type(), sycl::_V1::usm::host, sycl::_V1::invalid, and sycl::_V1::usm::unknown.

Referenced by sycl::_V1::queue::ext_oneapi_copy2d().

◆ ext_oneapi_fill2d()

template<typename T >
void sycl::_V1::handler::ext_oneapi_fill2d ( void *  Dest,
size_t  DestPitch,
const T &  Pattern,
size_t  Width,
size_t  Height 
)
inline

Fills the memory pointed by a USM pointer with the value specified.

No operations is done if Width or Height is zero. An exception is thrown if either Dest or Src is nullptr or if Width is strictly greater than DestPitch. The behavior is undefined if any of the pointer parameters is invalid.

Parameters
Destis a USM pointer to the destination memory.
DestPitchis the pitch of the rows in Dest.
Patternis the pattern to fill into the memory. T should be device copyable.
Widthis the width in number of elements of the 2D region to fill.
Heightis the height in number of rows of the 2D region to fill.

Definition at line 3013 of file handler.hpp.

References sycl::_V1::get_pointer_type(), sycl::_V1::usm::host, sycl::_V1::invalid, and sycl::_V1::usm::unknown.

Referenced by sycl::_V1::queue::ext_oneapi_fill2d().

◆ ext_oneapi_graph()

Executes a command_graph.

Parameters
GraphExecutable command_graph to run

Definition at line 1423 of file handler.cpp.

References sycl::_V1::detail::CG::ExecCommandBuffer, and sycl::_V1::detail::getSyclObjImpl().

Referenced by sycl::_V1::queue::ext_oneapi_graph().

◆ ext_oneapi_memcpy2d()

template<typename T = unsigned char, typename = std::enable_if_t<std::is_same_v<T, unsigned char>>>
void sycl::_V1::handler::ext_oneapi_memcpy2d ( void *  Dest,
size_t  DestPitch,
const void *  Src,
size_t  SrcPitch,
size_t  Width,
size_t  Height 
)
inline

Copies data from one 2D memory region to another, both pointed by USM pointers.

No operations is done if Width or Height is zero. An exception is thrown if either Dest or Src is nullptr or if Width is strictly greater than either DestPitch or SrcPitch. The behavior is undefined if any of the pointer parameters is invalid.

NOTE: Function is dependent to prevent the fallback kernels from materializing without the use of the function.

Parameters
Destis a USM pointer to the destination memory.
DestPitchis the pitch of the rows in Dest.
Srcis a USM pointer to the source memory.
SrcPitchis the pitch of the rows in Src.
Widthis the width in bytes of the 2D region to copy.
Heightis the height in number of row of the 2D region to copy.

Definition at line 2869 of file handler.hpp.

References sycl::_V1::get_pointer_type(), sycl::_V1::usm::host, sycl::_V1::invalid, and sycl::_V1::usm::unknown.

Referenced by sycl::_V1::queue::ext_oneapi_memcpy2d().

◆ ext_oneapi_memset2d()

template<typename T = unsigned char, typename = std::enable_if_t<std::is_same_v<T, unsigned char>>>
void sycl::_V1::handler::ext_oneapi_memset2d ( void *  Dest,
size_t  DestPitch,
int  Value,
size_t  Width,
size_t  Height 
)
inline

Fills the memory pointed by a USM pointer with the value specified.

No operations is done if Width or Height is zero. An exception is thrown if either Dest or Src is nullptr or if Width is strictly greater than DestPitch. The behavior is undefined if any of the pointer parameters is invalid.

NOTE: Function is dependent to prevent the fallback kernels from materializing without the use of the function.

Parameters
Destis a USM pointer to the destination memory.
DestPitchis the pitch of the rows in Dest.
Valueis the value to fill into the region in Dest. Value is cast as an unsigned char.
Widthis the width in number of elements of the 2D region to fill.
Heightis the height in number of rows of the 2D region to fill.

Definition at line 2977 of file handler.hpp.

References sycl::_V1::get_pointer_type(), sycl::_V1::usm::host, sycl::_V1::invalid, and sycl::_V1::usm::unknown.

Referenced by sycl::_V1::queue::ext_oneapi_memset2d().

◆ ext_oneapi_signal_external_semaphore()

void sycl::_V1::handler::ext_oneapi_signal_external_semaphore ( sycl::ext::oneapi::experimental::interop_semaphore_handle  SemaphoreHandle)

Instruct the queue to signal the external semaphore once all previous commands have completed execution.

An exception is thrown if SemaphoreHandle is incomplete.

Parameters
SemaphoreHandleis an opaque external interop semaphore handle

Definition at line 1212 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle, and sycl::_V1::detail::CG::SemaphoreSignal.

Referenced by sycl::_V1::queue::ext_oneapi_signal_external_semaphore().

◆ ext_oneapi_wait_external_semaphore()

void sycl::_V1::handler::ext_oneapi_wait_external_semaphore ( sycl::ext::oneapi::experimental::interop_semaphore_handle  SemaphoreHandle)

Instruct the queue with a non-blocking wait on an external semaphore.

An exception is thrown if SemaphoreHandle is incomplete.

Parameters
SemaphoreHandleis an opaque external interop semaphore handle

Definition at line 1202 of file handler.cpp.

References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle, and sycl::_V1::detail::CG::SemaphoreWait.

Referenced by sycl::_V1::queue::ext_oneapi_wait_external_semaphore().

◆ fill() [1/2]

template<typename T , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t, typename PropertyListT = property_list>
void sycl::_V1::handler::fill ( accessor< T, Dims, AccessMode, AccessTarget, IsPlaceholder, PropertyListT >  Dst,
const T &  Pattern 
)
inline

Fills memory pointed by accessor with the pattern given.

If the operation is submitted to queue associated with OpenCL device and accessor points to one dimensional memory object then use special type for filling. Otherwise fill using regular kernel.

Parameters
Dstis a destination SYCL accessor.
Patternis a value to be used to fill the memory.

Definition at line 2727 of file handler.hpp.

References sycl::_V1::detail::AccessorBaseHost::getAccessRange(), sycl::_V1::detail::AccessorBaseHost::getMemoryRange(), and sycl::_V1::ext::oneapi::experimental::memfill.

Referenced by sycl::_V1::queue::fill().

◆ fill() [2/2]

template<typename T >
void sycl::_V1::handler::fill ( void *  Ptr,
const T &  Pattern,
size_t  Count 
)
inline

Fills the specified memory with the specified pattern.

Parameters
Ptris the pointer to the memory to fill
Patternis the pattern to fill into the memory. T should be device copyable.
Countis the number of times to fill Pattern into Ptr.

Definition at line 2773 of file handler.hpp.

References sycl::_V1::ext::oneapi::experimental::memfill.

◆ get_specialization_constant()

template<auto & SpecName>
std::remove_reference_t<decltype(SpecName)>::value_type sycl::_V1::handler::get_specialization_constant ( ) const
inline

Definition at line 1815 of file handler.hpp.

References sycl::_V1::invalid, and sycl::_V1::make_error_code().

◆ host_task()

template<typename FuncT >
std::enable_if_t<detail::check_fn_signature<std::remove_reference_t<FuncT>, void()>::value || detail::check_fn_signature<std::remove_reference_t<FuncT>, void(interop_handle)>::value> sycl::_V1::handler::host_task ( FuncT &&  Func)
inline

Enqueues a command to the SYCL runtime to invoke Func once.

Definition at line 1950 of file handler.hpp.

Referenced by syclcompat::detail::combine_events().

◆ mem_advise()

void sycl::_V1::handler::mem_advise ( const void *  Ptr,
size_t  Length,
int  Advice 
)

Provides additional information to the underlying runtime about how different allocations are used.

Parameters
Ptris a USM pointer to the allocation.
Lengthis a number of bytes in the allocation.
Adviceis a device-defined advice for the specified allocation.

Definition at line 940 of file handler.cpp.

References sycl::_V1::detail::CG::AdviseUSM.

Referenced by sycl::_V1::detail::queue_impl::mem_advise().

◆ memcpy() [1/3]

template<typename T , typename PropertyListT >
void sycl::_V1::handler::memcpy ( ext::oneapi::experimental::device_global< T, PropertyListT > &  Dest,
const void *  Src,
size_t  NumBytes = sizeof(T),
size_t  DestOffset = 0 
)
inline

Copies data from a USM memory region to a device_global.

Throws an exception if the copy operation intends to write outside the memory range Dest, as specified through NumBytes and DestOffset.

Parameters
Destis the destination device_glboal.
Srcis a USM pointer to the source memory.
NumBytesis a number of bytes to copy.
DestOffsetis the offset into Dest to copy to.

Definition at line 3047 of file handler.hpp.

References sycl::_V1::ext::oneapi::experimental::has_property(), sycl::_V1::invalid, sycl::_V1::detail::isDeviceGlobalUsedInKernel(), and sycl::_V1::make_error_code().

◆ memcpy() [2/3]

template<typename T , typename PropertyListT >
void sycl::_V1::handler::memcpy ( void *  Dest,
const ext::oneapi::experimental::device_global< T, PropertyListT > &  Src,
size_t  NumBytes = sizeof(T),
size_t  SrcOffset = 0 
)
inline

Copies data from a device_global to USM memory.

Throws an exception if the copy operation intends to read outside the memory range Src, as specified through NumBytes and SrcOffset.

Parameters
Destis a USM pointer to copy to.
Srcis the source device_global.
NumBytesis a number of bytes to copy.
SrcOffsetis the offset into Src to copy from.

Definition at line 3081 of file handler.hpp.

References sycl::_V1::ext::oneapi::experimental::has_property(), sycl::_V1::invalid, sycl::_V1::detail::isDeviceGlobalUsedInKernel(), and sycl::_V1::make_error_code().

◆ memcpy() [3/3]

void sycl::_V1::handler::memcpy ( void *  Dest,
const void *  Src,
size_t  Count 
)

Copies data from one memory region to another, each is either a host pointer or a pointer within USM allocation accessible on this handler's device.

No operations is done if Count is zero. An exception is thrown if either Dest or Src is nullptr. The behavior is undefined if any of the pointer parameters is invalid.

Parameters
Destis a USM pointer to the destination memory.
Srcis a USM pointer to the source memory.
Countis a number of bytes to copy.

Definition at line 916 of file handler.cpp.

References sycl::_V1::detail::CG::CopyUSM.

Referenced by sycl::_V1::detail::queue_impl::memcpy(), and sycl::_V1::queue::memcpy().

◆ memset()

void sycl::_V1::handler::memset ( void *  Dest,
int  Value,
size_t  Count 
)

Fills the memory pointed by a USM pointer with the value specified.

No operations is done if Count is zero. An exception is thrown if Dest is nullptr. The behavior is undefined if Dest is invalid.

Parameters
Destis a USM pointer to the memory to fill.
Valueis a value to be set. Value is cast as an unsigned char.
Countis a number of bytes to fill.

Definition at line 924 of file handler.cpp.

References sycl::_V1::detail::CG::FillUSM, and sycl::_V1::ext::oneapi::experimental::memset.

Referenced by sycl::_V1::detail::queue_impl::memset().

◆ operator=() [1/2]

handler& sycl::_V1::handler::operator= ( const handler )
delete

◆ operator=() [2/2]

handler& sycl::_V1::handler::operator= ( handler &&  )
delete

◆ parallel_for() [1/24]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for ( kernel  Kernel,
nd_range< Dims >  NDRange,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Defines and invokes a SYCL kernel function for the specified range and offsets.

Parameters
Kernelis a SYCL kernel that is executed on a SYCL device (except for the host device).
NDRangeis a ND-range defining global and local sizes as well as offset.
KernelFuncis a lambda that is used if device, queue is bound to, is a host device.

Definition at line 2220 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for() [2/24]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for ( kernel  Kernel,
range< Dims >  NumWorkItems,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Defines and invokes a SYCL kernel function for the specified range.

Parameters
Kernelis a SYCL kernel that is executed on a SYCL device (except for the host device).
NumWorkItemsis a range defining indexing space.
KernelFuncis a lambda that is used if device, queue is bound to, is a host device.

Definition at line 2144 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for() [3/24]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for ( kernel  Kernel,
range< Dims >  NumWorkItems,
id< Dims >  WorkItemOffset,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Defines and invokes a SYCL kernel function for the specified range and offsets.

Parameters
Kernelis a SYCL kernel that is executed on a SYCL device (except for the host device).
NumWorkItemsis a range defining indexing space.
WorkItemOffsetis an offset to be applied to each work item index.
KernelFuncis a lambda that is used if device, queue is bound to, is a host device.

Definition at line 2182 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for() [4/24]

template<int Dims>
void sycl::_V1::handler::parallel_for ( nd_range< Dims >  NDRange,
kernel  Kernel 
)
inline

Defines and invokes a SYCL kernel function for the specified range and offsets.

The SYCL kernel function is defined as SYCL kernel object.

Parameters
NDRangeis a ND-range defining global and local sizes as well as offset.
Kernelis a SYCL kernel function.

Definition at line 2093 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for() [5/24]

template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT , int Dims>
std::enable_if_t< ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( nd_range< Dims >  Range,
PropertiesT  Properties,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 2370 of file handler.hpp.

◆ parallel_for() [6/24]

template<typename KernelName = detail::auto_name, int Dims, typename PropertiesT , typename... RestT>
std::enable_if_t< (sizeof...(RestT) > 1) && detail::AreAllButLastReductions<RestT...>::value && ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( nd_range< Dims >  Range,
PropertiesT  Properties,
RestT &&...  Rest 
)
inline

Definition at line 2446 of file handler.hpp.

◆ parallel_for() [7/24]

template<typename KernelName = detail::auto_name, int Dims, typename... RestT>
std::enable_if_t<detail::AreAllButLastReductions<RestT...>::value> sycl::_V1::handler::parallel_for ( nd_range< Dims >  Range,
RestT &&...  Rest 
)
inline

Definition at line 2456 of file handler.hpp.

◆ parallel_for() [8/24]

◆ parallel_for() [9/24]

void sycl::_V1::handler::parallel_for ( range< 1 >  NumWorkItems,
kernel  Kernel 
)
inline

Definition at line 2052 of file handler.hpp.

◆ parallel_for() [10/24]

template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 1 >  NumWorkItems,
PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 2340 of file handler.hpp.

◆ parallel_for() [11/24]

template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t< (sizeof...(RestT) > 1) && detail::AreAllButLastReductions<RestT...>::value && ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 1 >  Range,
PropertiesT  Properties,
RestT &&...  Rest 
)
inline

Reductions.

Definition at line 2383 of file handler.hpp.

◆ parallel_for() [12/24]

template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t<detail::AreAllButLastReductions<RestT...>::value> sycl::_V1::handler::parallel_for ( range< 1 >  Range,
RestT &&...  Rest 
)
inline

Definition at line 2418 of file handler.hpp.

◆ parallel_for() [13/24]

template<typename KernelName = detail::auto_name, typename KernelType >
void sycl::_V1::handler::parallel_for ( range< 2 >  NumWorkItems,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 1931 of file handler.hpp.

◆ parallel_for() [14/24]

void sycl::_V1::handler::parallel_for ( range< 2 >  NumWorkItems,
kernel  Kernel 
)
inline

Definition at line 2056 of file handler.hpp.

◆ parallel_for() [15/24]

template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 2 >  NumWorkItems,
PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 2350 of file handler.hpp.

◆ parallel_for() [16/24]

template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t< (sizeof...(RestT) > 1) && detail::AreAllButLastReductions<RestT...>::value && ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 2 >  Range,
PropertiesT  Properties,
RestT &&...  Rest 
)
inline

Definition at line 2396 of file handler.hpp.

◆ parallel_for() [17/24]

template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t<detail::AreAllButLastReductions<RestT...>::value> sycl::_V1::handler::parallel_for ( range< 2 >  Range,
RestT &&...  Rest 
)
inline

Definition at line 2426 of file handler.hpp.

◆ parallel_for() [18/24]

template<typename KernelName = detail::auto_name, typename KernelType >
void sycl::_V1::handler::parallel_for ( range< 3 >  NumWorkItems,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 1938 of file handler.hpp.

◆ parallel_for() [19/24]

void sycl::_V1::handler::parallel_for ( range< 3 >  NumWorkItems,
kernel  Kernel 
)
inline

Definition at line 2060 of file handler.hpp.

◆ parallel_for() [20/24]

template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 3 >  NumWorkItems,
PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 2360 of file handler.hpp.

◆ parallel_for() [21/24]

template<typename KernelName = detail::auto_name, typename PropertiesT , typename... RestT>
std::enable_if_t< (sizeof...(RestT) > 1) && detail::AreAllButLastReductions<RestT...>::value && ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::parallel_for ( range< 3 >  Range,
PropertiesT  Properties,
RestT &&...  Rest 
)
inline

Definition at line 2409 of file handler.hpp.

◆ parallel_for() [22/24]

template<typename KernelName = detail::auto_name, typename... RestT>
std::enable_if_t<detail::AreAllButLastReductions<RestT...>::value> sycl::_V1::handler::parallel_for ( range< 3 >  Range,
RestT &&...  Rest 
)
inline

Definition at line 2434 of file handler.hpp.

◆ parallel_for() [23/24]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for ( range< Dims >  NumWorkItems,
id< Dims >  WorkItemOffset,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Defines and invokes a SYCL kernel function for the specified range and offset.

The SYCL kernel function is defined as a lambda function or a named function object type and given an id or item for indexing in the indexing space defined by range. If it is a named function object and the function object type is globally visible, there is no need for the developer to provide a kernel name for it.

Parameters
NumWorkItemsis a range defining indexing space.
WorkItemOffsetis an offset to be applied to each work item index.
KernelFuncis a SYCL kernel function.

Definition at line 1970 of file handler.hpp.

References sycl::_V1::detail::CG::Kernel.

◆ parallel_for() [24/24]

template<int Dims>
void sycl::_V1::handler::parallel_for ( range< Dims >  NumWorkItems,
id< Dims >  WorkItemOffset,
kernel  Kernel 
)
inline

Defines and invokes a SYCL kernel function for the specified range and offsets.

The SYCL kernel function is defined as SYCL kernel object.

Parameters
NumWorkItemsis a range defining indexing space.
WorkItemOffsetis an offset to be applied to each work item index.
Kernelis a SYCL kernel function.

Definition at line 2074 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for_work_group() [1/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for_work_group ( kernel  Kernel,
range< Dims >  NumWorkGroups,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Hierarchical kernel invocation method of a kernel.

This version of parallel_for_work_group takes two parameters representing the same kernel. The first one - Kernel - is a compiled form of the second one - kernelFunc, which is the source form of the kernel. The same source kernel can be compiled multiple times yielding multiple kernel class objects accessible via the program class interface.

Parameters
Kernelis a compiled SYCL kernel.
NumWorkGroupsis a range describing the number of work-groups in each dimension.
KernelFuncis a lambda representing kernel.

Definition at line 2262 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ parallel_for_work_group() [2/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for_work_group ( kernel  Kernel,
range< Dims >  NumWorkGroups,
range< Dims >  WorkGroupSize,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Hierarchical kernel invocation method of a kernel.

This version of parallel_for_work_group takes two parameters representing the same kernel. The first one - Kernel - is a compiled form of the second one - kernelFunc, which is the source form of the kernel. The same source kernel can be compiled multiple times yielding multiple kernel class objects accessible via the program class interface.

Parameters
Kernelis a compiled SYCL kernel.
NumWorkGroupsis a range describing the number of work-groups in each dimension.
WorkGroupSizeis a range describing the size of work-groups in each dimension.
KernelFuncis a lambda representing kernel.

Definition at line 2301 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::detail::CG::Kernel, and sycl::_V1::ext::oneapi::experimental::detail::WorkGroupSize.

◆ parallel_for_work_group() [3/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for_work_group ( range< Dims >  NumWorkGroups,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Hierarchical kernel invocation method of a kernel defined as a lambda encoding the body of each work-group to launch.

Lambda may contain multiple calls to parallel_for_work_item(...) methods representing the execution on each work-item. Launches NumWorkGroups work-groups of runtime-defined size.

Parameters
NumWorkGroupsis a range describing the number of work-groups in each dimension.
KernelFuncis a lambda representing kernel.

Definition at line 2004 of file handler.hpp.

◆ parallel_for_work_group() [4/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims, typename PropertiesT >
void sycl::_V1::handler::parallel_for_work_group ( range< Dims >  NumWorkGroups,
PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

}@

Definition at line 2466 of file handler.hpp.

◆ parallel_for_work_group() [5/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims>
void sycl::_V1::handler::parallel_for_work_group ( range< Dims >  NumWorkGroups,
range< Dims >  WorkGroupSize,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Hierarchical kernel invocation method of a kernel defined as a lambda encoding the body of each work-group to launch.

Lambda may contain multiple calls to parallel_for_work_item(...) methods representing the execution on each work-item. Launches NumWorkGroups work-groups of WorkGroupSize size.

Parameters
NumWorkGroupsis a range describing the number of work-groups in each dimension.
WorkGroupSizeis a range describing the size of work-groups in each dimension.
KernelFuncis a lambda representing kernel.

Definition at line 2025 of file handler.hpp.

References sycl::_V1::ext::oneapi::experimental::detail::WorkGroupSize.

◆ parallel_for_work_group() [6/6]

template<typename KernelName = detail::auto_name, typename KernelType , int Dims, typename PropertiesT >
void sycl::_V1::handler::parallel_for_work_group ( range< Dims >  NumWorkGroups,
range< Dims >  WorkGroupSize,
PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

◆ prefetch()

void sycl::_V1::handler::prefetch ( const void *  Ptr,
size_t  Count 
)

Provides hints to the runtime library that data should be made available on a device earlier than Unified Shared Memory would normally require it to be available.

Parameters
Ptris a USM pointer to the memory to be prefetched to the device.
Countis a number of bytes to be prefetched.

Definition at line 933 of file handler.cpp.

References sycl::_V1::detail::CG::PrefetchUSM.

Referenced by sycl::_V1::queue::prefetch().

◆ require()

template<typename DataT , int Dims, access::mode AccMode, access::target AccTarget, access::placeholder isPlaceholder>
void sycl::_V1::handler::require ( accessor< DataT, Dims, AccMode, AccTarget, isPlaceholder >  Acc)
inline

Requires access to the memory object associated with the placeholder accessor.

Calling this function with a non-placeholder accessor has no effect.

The command group has a requirement to gain access to the given memory object before executing.

Parameters
Accis a SYCL accessor describing required memory region.

Definition at line 1843 of file handler.hpp.

References sycl::_V1::detail::associateWithHandler().

Referenced by sycl::_V1::queue::copy(), sycl::_V1::queue::fill(), and sycl::_V1::queue::update_host().

◆ set_arg() [1/3]

template<typename DataT , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder>
void sycl::_V1::handler::set_arg ( int  ArgIndex,
accessor< DataT, Dims, AccessMode, AccessTarget, IsPlaceholder Arg 
)
inline

Definition at line 1891 of file handler.hpp.

◆ set_arg() [2/3]

template<typename DataT , int Dims>
void sycl::_V1::handler::set_arg ( int  ArgIndex,
local_accessor< DataT, Dims >  Arg 
)
inline

Definition at line 1897 of file handler.hpp.

◆ set_arg() [3/3]

template<typename T >
std::enable_if_t<ShouldEnableSetArg<T>::value, void> sycl::_V1::handler::set_arg ( int  ArgIndex,
T &&  Arg 
)
inline

Sets argument for OpenCL interoperability kernels.

Registers Arg passed as argument # ArgIndex.

Parameters
ArgIndexis a positional number of argument to be set.
Argis an argument value to be set.

Definition at line 1884 of file handler.hpp.

◆ set_args()

template<typename... Ts>
void sycl::_V1::handler::set_args ( Ts &&...  Args)
inline

Sets arguments for OpenCL interoperability kernels.

Registers pack of arguments(Args) with indexes starting from 0.

Parameters
Argsare argument values to be set.

Definition at line 1906 of file handler.hpp.

◆ set_specialization_constant()

template<auto & SpecName>
void sycl::_V1::handler::set_specialization_constant ( typename std::remove_reference_t< decltype(SpecName)>::value_type  Value)
inline

Definition at line 1800 of file handler.hpp.

◆ single_task() [1/4]

template<typename KernelName = detail::auto_name, typename KernelType >
void sycl::_V1::handler::single_task ( _KERNELFUNCPARAM(KernelFunc)  )
inline

Defines and invokes a SYCL kernel function as a function object type.

If it is a named function object and the function object type is globally visible, there is no need for the developer to provide a kernel name for it.

Parameters
KernelFuncis a SYCL kernel function.

Definition at line 1918 of file handler.hpp.

Referenced by sycl::_V1::detail::reduSaveFinalResultToUserMem(), and sycl::_V1::detail::reduction_impl_algo< T, BinaryOperation, Dims, Extent, ExplicitIdentity, RedOutVar >::withInitializedMem().

◆ single_task() [2/4]

void sycl::_V1::handler::single_task ( kernel  Kernel)
inline

Invokes a SYCL kernel.

Executes exactly once. The kernel invocation method has no functors and cannot be called on host.

Parameters
Kernelis a SYCL kernel object.

Definition at line 2039 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ single_task() [3/4]

template<typename KernelName = detail::auto_name, typename KernelType >
void sycl::_V1::handler::single_task ( kernel  Kernel,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Defines and invokes a SYCL kernel function.

Parameters
Kernelis a SYCL kernel that is executed on a SYCL device (except for the host device).
KernelFuncis a lambda that is used if device, queue is bound to, is a host device.

Definition at line 2110 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::Kernel.

◆ single_task() [4/4]

template<typename KernelName = detail::auto_name, typename KernelType , typename PropertiesT >
std::enable_if_t< ext::oneapi::experimental::is_property_list<PropertiesT>::value> sycl::_V1::handler::single_task ( PropertiesT  Props,
_KERNELFUNCPARAM(KernelFunc)   
)
inline

Definition at line 2331 of file handler.hpp.

◆ update_host()

template<typename T , int Dims, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder = access::placeholder::false_t>
void sycl::_V1::handler::update_host ( accessor< T, Dims, AccessMode, AccessTarget, IsPlaceholder Acc)
inline

Provides guarantees that the memory object accessed via Acc is updated on the host after command group object execution is complete.

Parameters
Accis a SYCL accessor that needs to be updated on host.

Definition at line 2696 of file handler.hpp.

References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::CG::UpdateHost.

Referenced by sycl::_V1::queue::update_host().

◆ use_kernel_bundle()

void sycl::_V1::handler::use_kernel_bundle ( const kernel_bundle< bundle_state::executable > &  ExecBundle)

Friends And Related Function Documentation

◆ ::MockHandler

friend class ::MockHandler
friend

Definition at line 3397 of file handler.hpp.

◆ accessor

template<typename DataT , int Dims, access::mode AccMode, access::target AccTarget, access::placeholder isPlaceholder, typename PropertyListT >
friend class accessor
friend

Definition at line 3356 of file handler.hpp.

◆ detail::associateWithHandler [1/3]

◆ detail::associateWithHandler [2/3]

◆ detail::associateWithHandler [3/3]

◆ detail::getDeviceFromHandler

◆ detail::image_accessor

template<typename DataT , int Dimensions, access::mode AccessMode, access::target AccessTarget, access::placeholder IsPlaceholder>
friend class detail::image_accessor
friend

Definition at line 3361 of file handler.hpp.

◆ detail::queue_impl

Definition at line 3351 of file handler.hpp.

◆ detail::reduction::finalizeHandler

◆ detail::reduction::withAuxHandler

template<class FunctorTy >
void detail::reduction::withAuxHandler ( handler CGH,
FunctorTy  Func 
)
friend

◆ detail::reduction_impl_algo

template<typename T , class BinaryOperation , int Dims, size_t Extent, bool ExplicitIdentity, typename RedOutVar >
friend class detail::reduction_impl_algo
friend

Definition at line 3369 of file handler.hpp.

◆ detail::reduction_parallel_for [1/2]

template<typename KernelName , detail::reduction::strategy Strategy, int Dims, typename PropertiesT , typename... RestT>
void detail::reduction_parallel_for ( handler CGH,
nd_range< Dims >  NDRange,
PropertiesT  Properties,
RestT...  Rest 
)
friend

◆ detail::reduction_parallel_for [2/2]

template<typename KernelName , detail::reduction::strategy Strategy, int Dims, typename PropertiesT , typename... RestT>
void detail::reduction_parallel_for ( handler CGH,
range< Dims >  NDRange,
PropertiesT  Properties,
RestT...  Rest 
)
friend

◆ detail::stream_impl

friend class detail::stream_impl
friend

Definition at line 3364 of file handler.hpp.

◆ ext::intel::experimental::pipe

template<class _name , class _dataT , int32_t _min_capacity, class _propertiesT , class >
friend class ext::intel::experimental::pipe
friend

Definition at line 3404 of file handler.hpp.

◆ ext::oneapi::experimental::detail::graph_impl

Definition at line 3423 of file handler.hpp.

◆ stream

friend class stream
friend

Definition at line 3363 of file handler.hpp.


The documentation for this class was generated from the following files: