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 | |
handler & | operator= (const handler &)=delete |
handler & | operator= (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... | |
template<typename DataT , int Dims, access::mode AccMode, access::target AccTarget, access::placeholder isPlaceholder> | |
void | require (ext::oneapi::experimental::dynamic_parameter< accessor< DataT, Dims, AccMode, AccTarget, isPlaceholder >> dynamicParamAcc) |
Requires access to the memory object associated with the placeholder accessor contained in a dynamic_parameter object. 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 T > | |
void | set_arg (int argIndex, ext::oneapi::experimental::dynamic_parameter< T > &dynamicParam) |
void | set_arg (int argIndex, ext::oneapi::experimental::raw_kernel_arg &&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 FuncT > | |
std::enable_if_t< detail::check_fn_signature< std::remove_reference_t< FuncT >, void(interop_handle)>::value > | ext_codeplay_enqueue_native_command (FuncT &&Func) |
Enqueues a command to the SYCL runtime to invoke Func immediately. 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 |
class | ext::oneapi::experimental::detail::dynamic_parameter_impl |
class | detail::HandlerAccess |
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 (const 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 (const 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 (const 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 (const 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 (const 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 (const ext::oneapi::experimental::image_mem_handle Src, ext::oneapi::experimental::image_mem_handle Dest, const ext::oneapi::experimental::image_descriptor &ImageDesc) |
Copies data from device to device memory, where Src and Dest are opaque image memory handles. More... | |
void | ext_oneapi_copy (const 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 (ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle) |
Submit a non-blocking device-side wait on an external. More... | |
void | ext_oneapi_wait_external_semaphore (ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, uint64_t WaitValue) |
Submit a non-blocking device-side wait on an external. More... | |
void | ext_oneapi_signal_external_semaphore (ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle) |
Instruct the queue to signal the external semaphore once all previous commands submitted to the queue have completed execution. More... | |
void | ext_oneapi_signal_external_semaphore (ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, uint64_t SignalValue) |
Instruct the queue to set the state of the external semaphore to SignalValue once all previous commands submitted to the queue have completed execution. More... | |
void | depends_on (const detail::EventImplPtr &Event) |
Registers event dependencies in this command group. More... | |
void | depends_on (const std::vector< detail::EventImplPtr > &Events) |
Registers event dependencies in this command group. More... | |
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.
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.
Definition at line 467 of file handler.hpp.
using sycl::_V1::handler::is_same_type = std::is_same<remove_cv_ref_t<U>, remove_cv_ref_t<T> > |
Definition at line 1985 of file handler.hpp.
using sycl::_V1::handler::remove_cv_ref_t = typename std::remove_cv_t<std::remove_reference_t<T> > |
Definition at line 1982 of file handler.hpp.
|
delete |
|
delete |
|
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.
Src | is a source SYCL accessor. |
Dst | is a smart pointer to destination memory. |
Definition at line 2647 of file handler.hpp.
References sycl::_V1::AccessMode.
Referenced by sycl::_V1::queue::copy(), sycl::_V1::ext::oneapi::experimental::copy(), and sycl::_V1::detail::reduction_impl_algo< T, BinaryOperation, Dims, Extent, ExplicitIdentity, RedOutVar >::withInitializedMem().
|
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.
Src | is a source SYCL accessor. |
Dst | is a pointer to destination memory. |
Definition at line 2704 of file handler.hpp.
References sycl::_V1::AccessMode, sycl::_V1::detail::CopyAccToPtr, and sycl::_V1::detail::getSyclObjImpl().
|
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.
Src | is a source SYCL accessor. |
Dst | is a destination SYCL accessor. |
Definition at line 2775 of file handler.hpp.
References sycl::_V1::detail::CopyAccToAcc, sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::invalid, and sycl::_V1::make_error_code().
|
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
.
Src | is the source device_global. |
Dest | is a USM pointer to copy to. |
Count | is a number of elements to copy. |
StartIndex | is the index of the first element in Src to copy from. |
Definition at line 3154 of file handler.hpp.
|
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
.
Src | is a USM pointer to the source memory. |
Dest | is the destination device_glboal. |
Count | is a number of elements to copy. |
StartIndex | is the index of the first element in Dest to copy to. |
Definition at line 3134 of file handler.hpp.
|
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.
Src | is a USM pointer to the source memory. |
Dest | is a USM pointer to the destination memory. |
Count | is a number of elements of type T to copy. |
Definition at line 2953 of file handler.hpp.
|
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.
Src | is a pointer to source memory. |
Dst | is a destination SYCL accessor. |
Definition at line 2737 of file handler.hpp.
References sycl::_V1::AccessMode, sycl::_V1::detail::CopyPtrToAcc, and sycl::_V1::detail::getSyclObjImpl().
|
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.
Src | is a smart pointer to source memory. |
Dst | is a destination SYCL accessor. |
Definition at line 2675 of file handler.hpp.
References sycl::_V1::AccessMode.
|
protected |
Registers event dependencies in this command group.
Definition at line 1540 of file handler.cpp.
References sycl::_V1::invalid, and sycl::_V1::make_error_code().
|
protected |
Registers event dependencies in this command group.
Definition at line 1563 of file handler.cpp.
References depends_on().
void sycl::_V1::handler::depends_on | ( | const std::vector< event > & | Events | ) |
Registers event dependencies on this command group.
Events | is a vector of valid SYCL events to wait on. |
Definition at line 1534 of file handler.cpp.
References depends_on().
void sycl::_V1::handler::depends_on | ( | event | Event | ) |
Registers event dependencies on this command group.
Event | is a valid SYCL event to wait on. |
Definition at line 1529 of file handler.cpp.
References sycl::_V1::detail::getSyclObjImpl().
Referenced by sycl::_V1::detail::addCounterInit(), syclcompat::detail::combine_events(), depends_on(), ext_oneapi_barrier(), sycl::_V1::queue::ext_oneapi_copy(), sycl::_V1::queue::ext_oneapi_copy2d(), sycl::_V1::queue::ext_oneapi_fill2d(), sycl::_V1::queue::ext_oneapi_graph(), sycl::_V1::queue::ext_oneapi_memcpy2d(), sycl::_V1::queue::ext_oneapi_memset2d(), sycl::_V1::queue::ext_oneapi_signal_external_semaphore(), sycl::_V1::queue::ext_oneapi_wait_external_semaphore(), sycl::_V1::queue::fill(), sycl::_V1::queue::memcpy(), sycl::_V1::queue::parallel_for(), sycl::_V1::queue::parallel_for_impl(), sycl::_V1::queue::prefetch(), sycl::_V1::queue::single_task(), sycl::_V1::detail::queue_impl::submitWithHandler(), sycl::_V1::detail::reduction::withAuxHandler(), and syclcompat::detail::host_buffer::~host_buffer().
|
inline |
Enqueues a command to the SYCL runtime to invoke Func
immediately.
Definition at line 2093 of file handler.hpp.
|
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 2918 of file handler.hpp.
References sycl::_V1::detail::Barrier.
Referenced by sycl::_V1::ext::oneapi::experimental::barrier(), sycl::_V1::queue::ext_oneapi_submit_barrier(), and sycl::_V1::ext::oneapi::experimental::partial_barrier().
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.
WaitList | is a vector of valid SYCL events that need to complete before barrier command can be executed. |
Definition at line 904 of file handler.cpp.
References sycl::_V1::detail::BarrierWaitlist, depends_on(), and sycl::_V1::detail::getSyclObjImpl().
void sycl::_V1::handler::ext_oneapi_copy | ( | const ext::oneapi::experimental::image_mem_handle | Src, |
ext::oneapi::experimental::image_mem_handle | Dest, | ||
const ext::oneapi::experimental::image_descriptor & | ImageDesc | ||
) |
Copies data from device to device memory, where Src
and Dest
are opaque image memory handles.
An exception is thrown if either Src
or Dest
is incomplete
Src | is an opaque image memory handle to the source memory. |
Dest | is an opaque image memory handle to the destination memory. |
ImageDesc | is the source image descriptor |
Definition at line 1174 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
Src | is an opaque image memory handle to the source memory. |
SrcOffset | is an offset from the origin of source measured in pixels (pixel size determined by SrcImgDesc ) |
SrcImgDesc | is the source image descriptor |
Dest | is a USM pointer to the destination memory. |
DestOffset | is an offset from the destination origin where the x, y, and z components are measured in bytes, rows, and slices respectively |
DestExtent | is the extent of the dest memory to copy, measured in pixels (pixel size determined by DestImgDesc ) |
CopyExtent | is the width, height, and depth of the region to copy measured in pixels (pixel size determined by SrcImgDesc ) |
Definition at line 1227 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
An exception is thrown if either Src
is incomplete or Dest
is nullptr. The behavior is undefined if Desc
is inconsistent with the allocated memory region.
Src | is an opaque image memory handle to the source memory. |
Dest | is a USM pointer to the destination memory. |
SrcImgDesc | is the source image descriptor |
Definition at line 1122 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
An exception is thrown if either Src
is nullptr or Dest
is incomplete. The behavior is undefined if Desc
is inconsistent with the allocated memory region.
Src | is a USM pointer to the source memory. |
Dest | is an opaque image memory handle to the destination memory. |
DestImgDesc | is the image descriptor |
Definition at line 1012 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
Referenced by sycl::_V1::queue::ext_oneapi_copy().
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
Src | is a USM pointer to the source memory. |
SrcOffset | is an offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively |
SrcExtent | is the extent of the source memory to copy, measured in pixels (pixel size determined by DestImgDesc ) |
Dest | is an opaque image memory handle to the destination memory. |
DestOffset | is an offset from the destination origin measured in pixels (pixel size determined by DestImgDesc ) |
DestImgDesc | is the destination image descriptor |
CopyExtent | is the width, height, and depth of the region to copy measured in pixels as determined by DestImgDesc |
Definition at line 1064 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_mem_handle::raw_handle, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
Src | is a USM pointer to the source memory. |
SrcOffset | is an destination offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively |
Dest | is a USM pointer to the destination memory. |
DestOffset | is an destination offset from the origin where the x, y, and z components are measured in bytes, rows, and slices respectively |
DeviceImgDesc | is the device image descriptor |
DeviceRowPitch | is the row pitch on the device |
HostExtent | is the extent of the dest memory to copy, measured in pixels (pixel size determined by DeviceImgDesc ) |
CopyExtent | is the width, height, and depth of the region to copy measured in pixels (pixel size determined by DeviceImgDesc ) |
Definition at line 1342 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::get_pointer_type(), sycl::_V1::detail::getUrImageCopyFlags(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::ext_oneapi_copy | ( | const 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.
Src | is a USM pointer to the source memory. |
Dest | is a USM pointer to the destination memory. |
DeviceImgDesc | is the image descriptor (format, order, dimensions). |
DeviceRowPitch | is the pitch of the rows on the device. |
Definition at line 1286 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::image_descriptor::array_size, sycl::_V1::ext::oneapi::experimental::image_descriptor::channel_type, sycl::_V1::detail::convertChannelOrder(), sycl::_V1::detail::convertChannelType(), sycl::_V1::detail::CopyImage, sycl::_V1::ext::oneapi::experimental::image_descriptor::depth, sycl::_V1::ext::oneapi::experimental::detail::get_image_default_channel_order(), sycl::_V1::get_pointer_type(), sycl::_V1::detail::getUrImageCopyFlags(), sycl::_V1::ext::oneapi::experimental::image_descriptor::height, sycl::_V1::ext::oneapi::experimental::image_descriptor::num_channels, sycl::_V1::ext::oneapi::experimental::image_descriptor::type, sycl::_V1::ext::oneapi::experimental::image_descriptor::verify(), and sycl::_V1::ext::oneapi::experimental::image_descriptor::width.
void sycl::_V1::handler::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.
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.
Src | is a USM pointer to the source memory. |
SrcPitch | is the pitch of the rows in Src . |
Dest | is a USM pointer to the destination memory. |
DestPitch | is the pitch of the rows in Dest . |
Width | is the width in number of elements of the 2D region to copy. |
Height | is the height in number of rows of the 2D region to copy. |
Definition at line 60 of file memcpy2d.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().
void sycl::_V1::handler::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.
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.
Dest | is a USM pointer to the destination memory. |
DestPitch | is the pitch of the rows in Dest . |
Pattern | is the pattern to fill into the memory. T should be device copyable. |
Width | is the width in number of elements of the 2D region to fill. |
Height | is the height in number of rows of the 2D region to fill. |
Definition at line 121 of file memcpy2d.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().
void sycl::_V1::handler::ext_oneapi_graph | ( | ext::oneapi::experimental::command_graph< ext::oneapi::experimental::graph_state::executable > | Graph | ) |
Executes a command_graph.
Graph | Executable command_graph to run |
Definition at line 1786 of file handler.cpp.
References sycl::_V1::detail::ExecCommandBuffer, and sycl::_V1::detail::getSyclObjImpl().
Referenced by sycl::_V1::queue::ext_oneapi_graph().
void sycl::_V1::handler::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.
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.
Dest | is a USM pointer to the destination memory. |
DestPitch | is the pitch of the rows in Dest . |
Src | is a USM pointer to the source memory. |
SrcPitch | is the pitch of the rows in Src . |
Width | is the width in bytes of the 2D region to copy. |
Height | is the height in number of row of the 2D region to copy. |
Definition at line 18 of file memcpy2d.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().
void sycl::_V1::handler::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.
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.
Dest | is a USM pointer to the destination memory. |
DestPitch | is the pitch of the rows in Dest . |
Value | is the value to fill into the region in Dest . Value is cast as an unsigned char. |
Width | is the width in number of elements of the 2D region to fill. |
Height | is the height in number of rows of the 2D region to fill. |
Definition at line 98 of file memcpy2d.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().
void sycl::_V1::handler::ext_oneapi_signal_external_semaphore | ( | ext::oneapi::experimental::interop_semaphore_handle | SemaphoreHandle | ) |
Instruct the queue to signal the external semaphore once all previous commands submitted to the queue have completed execution.
An exception is thrown if SemaphoreHandle
is incomplete, or if the type of semaphore requires an explicit value to signal.
SemaphoreHandle | is an opaque external interop semaphore handle |
Definition at line 1461 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::handle_type, sycl::_V1::invalid, sycl::_V1::make_error_code(), and sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle.
Referenced by sycl::_V1::queue::ext_oneapi_signal_external_semaphore().
void sycl::_V1::handler::ext_oneapi_signal_external_semaphore | ( | ext::oneapi::experimental::interop_semaphore_handle | SemaphoreHandle, |
uint64_t | SignalValue | ||
) |
Instruct the queue to set the state of the external semaphore to SignalValue
once all previous commands submitted to the queue have completed execution.
An exception is thrown if SemaphoreHandle
is incomplete, or if the type of semaphore does not support signalling an explicitly passed value.
SemaphoreHandle | is an opaque external interop semaphore handle |
SignalValue | is the value that this semaphore signal, once all prior opeartions on the queue complete. |
Definition at line 1483 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::handle_type, sycl::_V1::invalid, sycl::_V1::make_error_code(), sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle, and sycl::_V1::detail::SemaphoreSignal.
void sycl::_V1::handler::ext_oneapi_wait_external_semaphore | ( | ext::oneapi::experimental::interop_semaphore_handle | SemaphoreHandle | ) |
Submit a non-blocking device-side wait on an external.
An exception is thrown if SemaphoreHandle
is incomplete, or if the type of semaphore requires an explicit value to wait upon.
SemaphoreHandle | is an opaque external interop semaphore handle |
Definition at line 1419 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::handle_type, sycl::_V1::invalid, sycl::_V1::make_error_code(), and sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle.
Referenced by sycl::_V1::queue::ext_oneapi_wait_external_semaphore().
void sycl::_V1::handler::ext_oneapi_wait_external_semaphore | ( | ext::oneapi::experimental::interop_semaphore_handle | SemaphoreHandle, |
uint64_t | WaitValue | ||
) |
Submit a non-blocking device-side wait on an external.
An exception is thrown if SemaphoreHandle
is incomplete, or if the type of semaphore does not support waiting on an explicitly passed value.
SemaphoreHandle | is an opaque external interop semaphore handle |
WaitValue | is the value that this semaphore will wait upon, until it allows any further commands to execute on the queue. |
Definition at line 1441 of file handler.cpp.
References sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::handle_type, sycl::_V1::invalid, sycl::_V1::make_error_code(), sycl::_V1::ext::oneapi::experimental::interop_semaphore_handle::raw_handle, and sycl::_V1::detail::SemaphoreWait.
|
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.
Dst | is a destination SYCL accessor. |
Pattern | is a value to be used to fill the memory. |
Definition at line 2856 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::ext::oneapi::experimental::fill(), and sycl::_V1::queue::fill().
|
inline |
Fills the specified memory with the specified pattern.
Ptr | is the pointer to the memory to fill |
Pattern | is the pattern to fill into the memory. T should be device copyable. |
Count | is the number of times to fill Pattern into Ptr. |
Definition at line 2900 of file handler.hpp.
References sycl::_V1::ext_oneapi_level_zero, and sycl::_V1::ext::oneapi::experimental::memfill.
|
inline |
Definition at line 1917 of file handler.hpp.
References sycl::_V1::invalid, and sycl::_V1::make_error_code().
|
inline |
Enqueues a command to the SYCL runtime to invoke Func
once.
Definition at line 2085 of file handler.hpp.
Referenced by syclcompat::detail::combine_events(), sycl::_V1::detail::stream_impl::generateFlushCommand(), and syclcompat::detail::host_buffer::~host_buffer().
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.
Ptr | is a USM pointer to the allocation. |
Length | is a number of bytes in the allocation. |
Advice | is a device-defined advice for the specified allocation. |
Definition at line 958 of file handler.cpp.
References sycl::_V1::detail::AdviseUSM.
Referenced by sycl::_V1::detail::queue_impl::mem_advise(), and sycl::_V1::ext::oneapi::experimental::mem_advise().
|
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
.
Dest | is the destination device_glboal. |
Src | is a USM pointer to the source memory. |
NumBytes | is a number of bytes to copy. |
DestOffset | is the offset into Dest to copy to. |
Definition at line 3065 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().
|
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
.
Dest | is a USM pointer to copy to. |
Src | is the source device_global. |
NumBytes | is a number of bytes to copy. |
SrcOffset | is the offset into Src to copy from. |
Definition at line 3099 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().
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.
Dest | is a USM pointer to the destination memory. |
Src | is a USM pointer to the source memory. |
Count | is a number of bytes to copy. |
Definition at line 934 of file handler.cpp.
References sycl::_V1::detail::CopyUSM.
Referenced by sycl::_V1::detail::queue_impl::memcpy(), sycl::_V1::queue::memcpy(), and sycl::_V1::ext::oneapi::experimental::memcpy().
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.
Dest | is a USM pointer to the memory to fill. |
Value | is a value to be set. Value is cast as an unsigned char. |
Count | is a number of bytes to fill. |
Definition at line 942 of file handler.cpp.
References sycl::_V1::detail::FillUSM, and sycl::_V1::ext::oneapi::experimental::memset.
Referenced by sycl::_V1::detail::queue_impl::memset(), and sycl::_V1::ext::oneapi::experimental::memset().
|
inline |
Defines and invokes a SYCL kernel function for the specified range and offsets.
Kernel | is a SYCL kernel that is executed on a SYCL device (except for the host device). |
NDRange | is a ND-range defining global and local sizes as well as offset. |
KernelFunc | is a lambda that is used if device, queue is bound to, is a host device. |
Definition at line 2368 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
inline |
Defines and invokes a SYCL kernel function for the specified range.
Kernel | is a SYCL kernel that is executed on a SYCL device (except for the host device). |
NumWorkItems | is a range defining indexing space. |
KernelFunc | is a lambda that is used if device, queue is bound to, is a host device. |
Definition at line 2290 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
inline |
Defines and invokes a SYCL kernel function for the specified range and offsets.
Kernel | is a SYCL kernel that is executed on a SYCL device (except for the host device). |
NumWorkItems | is a range defining indexing space. |
WorkItemOffset | is an offset to be applied to each work item index. |
KernelFunc | is a lambda that is used if device, queue is bound to, is a host device. |
Definition at line 2329 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::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.
NDRange | is a ND-range defining global and local sizes as well as offset. |
Kernel | is a SYCL kernel function. |
Definition at line 2244 of file handler.hpp.
|
inline |
Definition at line 2519 of file handler.hpp.
|
inline |
Definition at line 2595 of file handler.hpp.
|
inline |
Definition at line 2605 of file handler.hpp.
|
inline |
Definition at line 2059 of file handler.hpp.
Referenced by syclcompat::detail::launch(), syclcompat::experimental::launch(), sycl::_V1::ext::oneapi::experimental::nd_launch(), sycl::_V1::ext::oneapi::experimental::parallel_for(), sycl::_V1::detail::reduAuxCGFunc(), sycl::_V1::detail::reduCGFuncMulti(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::local_atomic_and_atomic_cross_wg >::run(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::group_reduce_and_last_wg_detection >::run(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::range_basic >::run(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::group_reduce_and_atomic_cross_wg >::run(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::local_mem_tree_and_atomic_cross_wg >::run(), sycl::_V1::detail::NDRangeReduction< reduction::strategy::group_reduce_and_multiple_kernels >::run(), and sycl::_V1::detail::NDRangeReduction< reduction::strategy::basic >::run().
Definition at line 2199 of file handler.hpp.
|
inline |
Definition at line 2489 of file handler.hpp.
|
inline |
Reductions.
Definition at line 2532 of file handler.hpp.
|
inline |
Definition at line 2567 of file handler.hpp.
|
inline |
Definition at line 2066 of file handler.hpp.
Definition at line 2204 of file handler.hpp.
|
inline |
Definition at line 2499 of file handler.hpp.
|
inline |
Definition at line 2545 of file handler.hpp.
|
inline |
Definition at line 2575 of file handler.hpp.
|
inline |
Definition at line 2073 of file handler.hpp.
Definition at line 2209 of file handler.hpp.
|
inline |
Definition at line 2509 of file handler.hpp.
|
inline |
Definition at line 2558 of file handler.hpp.
|
inline |
Definition at line 2583 of file handler.hpp.
|
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.
NumWorkItems | is a range defining indexing space. |
WorkItemOffset | is an offset to be applied to each work item index. |
KernelFunc | is a SYCL kernel function. |
Definition at line 2116 of file handler.hpp.
References sycl::_V1::detail::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.
NumWorkItems | is a range defining indexing space. |
WorkItemOffset | is an offset to be applied to each work item index. |
Kernel | is a SYCL kernel function. |
Definition at line 2224 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
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.
Kernel | is a compiled SYCL kernel. |
NumWorkGroups | is a range describing the number of work-groups in each dimension. |
KernelFunc | is a lambda representing kernel. |
Definition at line 2411 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
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.
Kernel | is a compiled SYCL kernel. |
NumWorkGroups | is a range describing the number of work-groups in each dimension. |
WorkGroupSize | is a range describing the size of work-groups in each dimension. |
KernelFunc | is a lambda representing kernel. |
Definition at line 2450 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::detail::Kernel, and sycl::_V1::ext::oneapi::experimental::detail::WorkGroupSize.
|
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.
NumWorkGroups | is a range describing the number of work-groups in each dimension. |
KernelFunc | is a lambda representing kernel. |
Definition at line 2151 of file handler.hpp.
|
inline |
}@
Definition at line 2615 of file handler.hpp.
|
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.
NumWorkGroups | is a range describing the number of work-groups in each dimension. |
WorkGroupSize | is a range describing the size of work-groups in each dimension. |
KernelFunc | is a lambda representing kernel. |
Definition at line 2172 of file handler.hpp.
References sycl::_V1::ext::oneapi::experimental::detail::WorkGroupSize.
|
inline |
Definition at line 2624 of file handler.hpp.
References sycl::_V1::ext::oneapi::experimental::detail::WorkGroupSize.
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.
Ptr | is a USM pointer to the memory to be prefetched to the device. |
Count | is a number of bytes to be prefetched. |
Definition at line 951 of file handler.cpp.
References sycl::_V1::detail::PrefetchUSM.
Referenced by sycl::_V1::queue::prefetch(), and sycl::_V1::ext::oneapi::experimental::prefetch().
|
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.
Acc | is a SYCL accessor describing required memory region. |
Definition at line 1945 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().
|
inline |
Requires access to the memory object associated with the placeholder accessor contained in a dynamic_parameter object.
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.
dynamicParamAcc | is dynamic_parameter containing a SYCL accessor describing required memory region. |
Definition at line 1961 of file handler.hpp.
References sycl::_V1::detail::associateWithHandler(), and sycl::_V1::detail::getValueFromDynamicParameter().
|
inline |
Definition at line 2014 of file handler.hpp.
|
inline |
Definition at line 2026 of file handler.hpp.
|
inline |
Definition at line 2032 of file handler.hpp.
|
inline |
Definition at line 2020 of file handler.hpp.
|
inline |
Sets argument for OpenCL interoperability kernels.
Registers Arg passed as argument # ArgIndex.
ArgIndex | is a positional number of argument to be set. |
Arg | is an argument value to be set. |
Definition at line 2007 of file handler.hpp.
|
inline |
Sets arguments for OpenCL interoperability kernels.
Registers pack of arguments(Args) with indexes starting from 0.
Args | are argument values to be set. |
Definition at line 2041 of file handler.hpp.
Referenced by sycl::_V1::ext::oneapi::experimental::nd_launch(), sycl::_V1::ext::oneapi::experimental::parallel_for(), and sycl::_V1::ext::oneapi::experimental::single_task().
|
inline |
Definition at line 1902 of file handler.hpp.
|
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.
KernelFunc | is a SYCL kernel function. |
Definition at line 2053 of file handler.hpp.
Referenced by sycl::_V1::detail::reduSaveFinalResultToUserMem(), sycl::_V1::ext::oneapi::experimental::single_task(), and sycl::_V1::detail::reduction_impl_algo< T, BinaryOperation, Dims, Extent, ExplicitIdentity, RedOutVar >::withInitializedMem().
|
inline |
Invokes a SYCL kernel.
Executes exactly once. The kernel invocation method has no functors and cannot be called on host.
Kernel | is a SYCL kernel object. |
Definition at line 2186 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
inline |
Defines and invokes a SYCL kernel function.
Kernel | is a SYCL kernel that is executed on a SYCL device (except for the host device). |
KernelFunc | is a lambda that is used if device, queue is bound to, is a host device. |
Definition at line 2256 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::Kernel.
|
inline |
Definition at line 2480 of file handler.hpp.
|
inline |
Provides guarantees that the memory object accessed via Acc is updated on the host after command group object execution is complete.
Acc | is a SYCL accessor that needs to be updated on host. |
Definition at line 2826 of file handler.hpp.
References sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::detail::UpdateHost.
Referenced by sycl::_V1::queue::update_host().
void sycl::_V1::handler::use_kernel_bundle | ( | const kernel_bundle< bundle_state::executable > & | ExecBundle | ) |
Definition at line 1503 of file handler.cpp.
References sycl::_V1::kernel_bundle< State >::get_context(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::invalid, and sycl::_V1::make_error_code().
|
friend |
Definition at line 3418 of file handler.hpp.
|
friend |
Definition at line 3377 of file handler.hpp.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 3760 of file handler.hpp.
|
friend |
Definition at line 3382 of file handler.hpp.
|
friend |
Definition at line 3372 of file handler.hpp.
|
friend |
|
friend |
|
friend |
Definition at line 3390 of file handler.hpp.
|
friend |
|
friend |
|
friend |
Definition at line 3385 of file handler.hpp.
|
friend |
Definition at line 3425 of file handler.hpp.
|
friend |
Definition at line 3457 of file handler.hpp.
|
friend |
Definition at line 3456 of file handler.hpp.
|
friend |
Definition at line 3384 of file handler.hpp.