DPC++ Runtime
Runtime libraries for oneAPI DPC++
DPC++ User API
Collaboration diagram for DPC++ User API:

Modules

 Device selectors
 Device selectors enable DPC++ runtime to choose the best devices based on heuristics specified by the user, or by one of the built-in selectors.
 
 Accessors
 Specify aquisition and release of buffer and image data structures.
 

Classes

class  sycl::_V1::buffer< T, dimensions, AllocatorT, __Enabled >
 Defines a shared array that can be used by kernels in queues. More...
 
class  sycl::_V1::context
 The context class represents a SYCL context on which kernel functions may be executed. More...
 
class  sycl::_V1::device
 The SYCL device class encapsulates a single SYCL device on which kernels may be executed. More...
 
class  sycl::_V1::device_event
 Encapsulates a single SYCL device event which is available only within SYCL kernel functions and can be used to wait for asynchronous operations within a kernel function to complete. More...
 
class  sycl::_V1::event
 An event object can be used to synchronize memory transfers, enqueues of kernels and signaling barriers. More...
 
class  sycl::_V1::exception
 
class  sycl::_V1::exception_list
 A list of asynchronous exceptions. More...
 
class  sycl::_V1::h_item< dimensions >
 Identifies an instance of a group::parallel_for_work_item function object executing at each point in a local range passed to a parallel_for_work_item call or to the corresponding parallel_for_work_group call. More...
 
class  sycl::_V1::handler
 Command group handler class. More...
 
class  sycl::_V1::id< dimensions >
 A unique identifier of an item in an index space. More...
 
class  sycl::_V1::image< Dimensions, AllocatorT >
 Defines a shared image data. More...
 
class  sycl::_V1::item< dimensions, with_offset >
 Identifies an instance of the function object executing at each point in a range. More...
 
class  sycl::_V1::kernel
 Provides an abstraction of a SYCL kernel. More...
 
class  sycl::_V1::kernel_id
 Objects of the class identify kernel is some kernel_bundle related APIs. More...
 
class  sycl::_V1::kernel_bundle< State >
 The kernel_bundle class represents collection of device images in a particular state. More...
 
class  sycl::_V1::marray< Type, NumElements >
 Provides a cross-patform math array class template that works on SYCL devices as well as in host C++ code. More...
 
class  sycl::_V1::multi_ptr< ElementType, Space >
 Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...
 
class  sycl::_V1::nd_item< dimensions >
 Identifies an instance of the function object executing at each point in an nd_range. More...
 
class  sycl::_V1::nd_range< dimensions >
 Defines the iteration domain of both the work-groups and the overall dispatch. More...
 
class  sycl::_V1::platform
 Encapsulates a SYCL platform on which kernels may be executed. More...
 
class  sycl::_V1::property_list
 Objects of the property_list class are containers for the SYCL properties. More...
 
class  sycl::_V1::queue
 Encapsulates a single SYCL queue which schedules kernels on a SYCL device. More...
 
class  sycl::_V1::range< dimensions >
 Defines the iteration domain of either a single work-group in a parallel dispatch, or the overall dimensions of the dispatch. More...
 
class  sycl::_V1::sampler
 Encapsulates a configuration for sampling an image accessor. More...
 
class  sycl::_V1::stream
 A buffered output stream that allows outputting the values of built-in, vector and SYCL types to the console. More...
 
class  sycl::_V1::vec< Type, NumElements >
 Provides a cross-patform vector class template that works efficiently on SYCL devices as well as in host C++ code. More...
 

Functions

template<int Dimensions = 1>
class sycl::_V1::__SYCL_TYPE (group) group
 Encapsulates all functionality required to represent a particular work-group within a parallel execution. More...
 
class sycl::_V1::__SYCL_TYPE (kernel_handler) kernel_handler
 Reading the value of a specialization constant. More...
 
template<typename T >
class sycl::_V1::__SYCL_TYPE (specialization_id) specialization_id
 Declaring a specialization constant. More...
 

Detailed Description

Todo:
a more specific intro

A sample DPC++ application:

Function Documentation

◆ __SYCL_TYPE() [1/3]

template<int Dimensions = 1>
class sycl::_V1::__SYCL_TYPE ( group  )

Encapsulates all functionality required to represent a particular work-group within a parallel execution.

Executes a work-group mem-fence with memory ordering on the local address space, global address space or both based on the value of accessSpace.

Asynchronously copies a number of elements specified by numElements from the source pointed by src to destination pointed by dest with a source stride specified by srcStride, and returns a SYCL device_event which can be used to wait on the completion of the copy. Permitted types for dataT are all scalar and vector types, except boolean.

Asynchronously copies a number of elements specified by numElements from the source pointed by src to destination pointed by dest with the destination stride specified by destStride, and returns a SYCL device_event which can be used to wait on the completion of the copy. Permitted types for dataT are all scalar and vector types, except boolean.

Specialization for scalar bool type. Asynchronously copies a number of elements specified by NumElements from the source pointed by Src to destination pointed by Dest with a stride specified by Stride, and returns a SYCL device_event which can be used to wait on the completion of the copy.

Specialization for vector bool type. Asynchronously copies a number of elements specified by NumElements from the source pointed by Src to destination pointed by Dest with a stride specified by Stride, and returns a SYCL device_event which can be used to wait on the completion of the copy.

Asynchronously copies a number of elements specified by numElements from the source pointed by src to destination pointed by dest and returns a SYCL device_event which can be used to wait on the completion of the copy. Permitted types for dataT are all scalar and vector types.

Asynchronously copies a number of elements specified by numElements from the source pointed by src to destination pointed by dest and returns a SYCL device_event which can be used to wait on the completion of the copy. Permitted types for dataT are all scalar and vector types.

Definition at line 94 of file group.hpp.

References __spirv_MemoryBarrier(), __SYCL2020_DEPRECATED, __SYCL_ASSERT, __SYCL_OpGroupAsyncCopyGlobalToLocal(), __SYCL_OpGroupAsyncCopyLocalToGlobal(), sycl::_V1::Dimensions, sycl::_V1::multi_ptr< ElementType, Space >::get(), sycl::_V1::detail::get_local_linear_id(), sycl::_V1::detail::get_local_linear_range(), sycl::_V1::detail::getSPIRVMemorySemanticsMask(), sycl::_V1::ext::oneapi::leader(), sycl::_V1::operator!=(), operator==(), sycl::_V1::h_item< dimensions >::setLogicalLocalID(), sycl::_V1::device_event::wait(), __spv::Scope::Workgroup, sycl::_V1::detail::workGroupBarrier(), and sycl::_V1::detail::write().

◆ __SYCL_TYPE() [2/3]

class sycl::_V1::__SYCL_TYPE ( kernel_handler  )

Reading the value of a specialization constant.

Definition at line 22 of file kernel_handler.hpp.

References __SYCL_ALWAYS_INLINE.

◆ __SYCL_TYPE() [3/3]

template<typename T >
class sycl::_V1::__SYCL_TYPE ( specialization_id  )

Declaring a specialization constant.

Definition at line 17 of file specialization_id.hpp.