DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
handler.hpp File Reference
#include <CL/sycl/access/access.hpp>
#include <CL/sycl/accessor.hpp>
#include <CL/sycl/context.hpp>
#include <CL/sycl/detail/cg.hpp>
#include <CL/sycl/detail/cg_types.hpp>
#include <CL/sycl/detail/export.hpp>
#include <CL/sycl/detail/handler_proxy.hpp>
#include <CL/sycl/detail/os_util.hpp>
#include <CL/sycl/event.hpp>
#include <CL/sycl/id.hpp>
#include <CL/sycl/interop_handle.hpp>
#include <CL/sycl/item.hpp>
#include <CL/sycl/kernel.hpp>
#include <CL/sycl/kernel_bundle.hpp>
#include <CL/sycl/kernel_handler.hpp>
#include <CL/sycl/nd_item.hpp>
#include <CL/sycl/nd_range.hpp>
#include <CL/sycl/property_list.hpp>
#include <CL/sycl/sampler.hpp>
#include <CL/sycl/stl.hpp>
#include <functional>
#include <limits>
#include <memory>
#include <tuple>
#include <type_traits>
Include dependency graph for handler.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  __fill< DataT, Dimensions, AccessMode, AccessTarget, IsPlaceholder >
 
class  __usmfill< T >
 
class  __copyAcc2Ptr< T_Src, T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder >
 
class  __copyPtr2Acc< T_Src, T_Dst, Dims, AccessMode, AccessTarget, IsPlaceholder >
 
class  __copyAcc2Acc< T_Src, Dims_Src, AccessMode_Src, AccessTarget_Src, T_Dst, Dims_Dst, AccessMode_Dst, AccessTarget_Dst, IsPlaceholder_Src, IsPlaceholder_Dst >
 
class  cl::sycl::buffer< T, dimensions, AllocatorT, __Enabled >
 Defines a shared array that can be used by kernels in queues. More...
 
class  cl::sycl::detail::image_accessor< DataT, Dimensions, AccessMode, AccessTarget, IsPlaceholder >
 
class  cl::sycl::detail::__pf_kernel_wrapper< Name >
 
struct  cl::sycl::detail::get_kernel_wrapper_name_t< Type >
 
class  cl::sycl::detail::RoundedRangeKernel< TransformedArgType, Dims, KernelType >
 
class  cl::sycl::detail::RoundedRangeKernelWithKH< TransformedArgType, Dims, KernelType >
 
class  cl::sycl::ext::oneapi::detail::reduction_impl< T, BinaryOperation, Dims, IsUSM, IsPlaceholder >
 This class encapsulates the reduction variable/accessor, the reduction operator and an optional operator identity. More...
 
struct  cl::sycl::ext::oneapi::detail::AreAllButLastReductions< FirstT, RestT >
 Predicate returning true if all template type parameters except the last one are reductions. More...
 
class  cl::sycl::handler
 Command group handler class. More...
 
struct  cl::sycl::handler::ShouldEnableSetArg< T >
 

Namespaces

 cl
 We provide new interfaces for matrix muliply in this patch:
 
 cl::sycl
 
 cl::sycl::detail
 
 cl::sycl::ext
 
 cl::sycl::ext::oneapi
 
 cl::sycl::ext::oneapi::detail
 

Macros

#define __SYCL_NONCONST_FUNCTOR__
 
#define __SYCL_KERNEL_ATTR__
 
#define _KERNELFUNCPARAM(a)   KernelType a
 

Typedefs

template<typename F , typename SuggestedArgType >
using cl::sycl::detail::lambda_arg_type = decltype(argument_helper< F, SuggestedArgType >(0))
 

Functions

template<typename RetType , typename Func , typename Arg >
static Arg cl::sycl::detail::member_ptr_helper (RetType(Func::*)(Arg) const)
 
template<typename F , typename SuggestedArgType >
SuggestedArgType cl::sycl::detail::argument_helper (...)
 
device cl::sycl::detail::getDeviceFromHandler (handler &CommandGroupHandlerRef)
 
template<int Dims, typename T >
detail::enable_if_t< std::is_same< T, range< Dims > >::value||std::is_same< T, id< Dims > >::value > cl::sycl::detail::checkValueRange (const T &V)
 
template<int Dims>
void cl::sycl::detail::checkValueRange (const range< Dims > &R, const id< Dims > &O)
 
template<int Dims, typename T >
detail::enable_if_t< std::is_same< T, nd_range< Dims > >::value > cl::sycl::detail::checkValueRange (const T &V)
 
template<typename KernelName , typename KernelType , int Dims, class Reduction >
void cl::sycl::ext::oneapi::detail::reduCGFunc (handler &CGH, KernelType KernelFunc, const range< Dims > &Range, size_t MaxWGSize, uint32_t NumConcurrentWorkGroups, Reduction &Redu)
 
template<typename KernelName , typename KernelType , int Dims, class Reduction >
enable_if_t< Reduction::has_atomic_add_float64 > cl::sycl::ext::oneapi::detail::reduCGFuncAtomic64 (handler &CGH, KernelType KernelFunc, const nd_range< Dims > &Range, Reduction &Redu)
 
template<typename KernelName , typename KernelType , int Dims, class Reduction >
enable_if_t< Reduction::has_fast_atomics > cl::sycl::ext::oneapi::detail::reduCGFunc (handler &CGH, KernelType KernelFunc, const nd_range< Dims > &Range, Reduction &Redu)
 
template<typename KernelName , typename KernelType , int Dims, class Reduction >
enable_if_t<!Reduction::has_fast_atomics > cl::sycl::ext::oneapi::detail::reduCGFunc (handler &CGH, KernelType KernelFunc, const nd_range< Dims > &Range, Reduction &Redu)
 
template<typename KernelName , typename KernelType , class Reduction >
enable_if_t<!Reduction::has_fast_atomics, size_t > cl::sycl::ext::oneapi::detail::reduAuxCGFunc (handler &CGH, size_t NWorkItems, size_t MaxWGSize, Reduction &Redu)
 Implements a command group function that enqueues a kernel that does one iteration of reduction of elements in each of work-groups. More...
 
template<typename KernelName , typename KernelType , int Dims, typename... Reductions, size_t... Is>
void cl::sycl::ext::oneapi::detail::reduCGFunc (handler &CGH, KernelType KernelFunc, const nd_range< Dims > &Range, std::tuple< Reductions... > &ReduTuple, std::index_sequence< Is... >)
 
template<typename KernelName , typename KernelType , typename... Reductions, size_t... Is>
size_t cl::sycl::ext::oneapi::detail::reduAuxCGFunc (handler &CGH, size_t NWorkItems, size_t MaxWGSize, std::tuple< Reductions... > &ReduTuple, std::index_sequence< Is... >)
 
template<typename KernelName , class Reduction >
std::enable_if_t<!Reduction::is_usm > cl::sycl::ext::oneapi::detail::reduSaveFinalResultToUserMem (handler &CGH, Reduction &Redu)
 Copies the final reduction result kept in read-write accessor to user's accessor. More...
 
template<typename KernelName , class Reduction >
std::enable_if_t< Reduction::is_usm > cl::sycl::ext::oneapi::detail::reduSaveFinalResultToUserMem (handler &CGH, Reduction &Redu)
 Copies the final reduction result kept in read-write accessor to user's USM memory. More...
 
template<typename... Reduction, size_t... Is>
std::shared_ptr< event > cl::sycl::ext::oneapi::detail::reduSaveFinalResultToUserMem (std::shared_ptr< detail::queue_impl > Queue, bool IsHost, std::tuple< Reduction... > &ReduTuple, std::index_sequence< Is... >)
 Creates additional kernels that copy the accumulated/final results from reductions accessors to either user's accessor or user's USM memory. More...
 
template<typename Reduction , typename... RestT>
std::enable_if_t<!Reduction::is_usm > cl::sycl::ext::oneapi::detail::reduSaveFinalResultToUserMemHelper (std::vector< event > &Events, std::shared_ptr< detail::queue_impl > Queue, bool IsHost, Reduction &Redu, RestT... Rest)
 
uint32_t cl::sycl::ext::oneapi::detail::reduGetMaxNumConcurrentWorkGroups (std::shared_ptr< queue_impl > Queue)
 
size_t cl::sycl::ext::oneapi::detail::reduGetMaxWGSize (std::shared_ptr< queue_impl > Queue, size_t LocalMemBytesPerWorkItem)
 
template<typename... ReductionT, size_t... Is>
size_t cl::sycl::ext::oneapi::detail::reduGetMemPerWorkItem (std::tuple< ReductionT... > &ReduTuple, std::index_sequence< Is... >)
 
template<typename TupleT , std::size_t... Is>
std::tuple< std::tuple_element_t< Is, TupleT >... > cl::sycl::ext::oneapi::detail::tuple_select_elements (TupleT Tuple, std::index_sequence< Is... >)
 Utility function: for the given tuple. More...
 

Variables

template<typename F , typename SuggestedArgType >
decltype(member_ptr_helper(&F::operator())) cl::sycl::detail::argument_helper (int)
 

Macro Definition Documentation

◆ __SYCL_KERNEL_ATTR__

#define __SYCL_KERNEL_ATTR__

Definition at line 1060 of file handler.hpp.

◆ __SYCL_NONCONST_FUNCTOR__

#define __SYCL_NONCONST_FUNCTOR__

Definition at line 40 of file handler.hpp.

◆ _KERNELFUNCPARAM

#define _KERNELFUNCPARAM (   a)    KernelType a

Definition at line 1502 of file handler.hpp.