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-platform math array class template that works on SYCL devices as well as in host C++ code. 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::vec< Type, NumElements >
 defined(__INTEL_PREVIEW_BREAKING_CHANGES) 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 ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
class sycl::_V1::__SYCL_TYPE (multi_ptr) multi_ptr
 Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...
 
class __SYCL_SPECIAL_CLASS sycl::_V1::__SYCL_TYPE (sampler) sampler
 Encapsulates a configuration for sampling an image accessor. More...
 
template<typename T >
class sycl::_V1::__SYCL_TYPE (specialization_id) specialization_id
 Declaring a specialization constant. More...
 
template<typename T >
class __SYCL_SPECIAL_CLASS __SYCL_TYPE(stream) stream std::enable_if_t< std::is_same_v< T, std::byte >, const stream & > sycl::_V1::operator<< (const stream &, const T &)
 A buffered output stream that allows outputting the values of built-in, vector and SYCL types to the console. More...
 

Detailed Description

Todo:
a more specific intro

A sample DPC++ application:

Function Documentation

◆ __SYCL_TYPE() [1/5]

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.

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 DestDataT are all scalar and vector types, except boolean. SrcDataT must be either the same as DestDataT or const DestDataT.

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 DestDataT are all scalar and vector types, except boolean. SrcDataT must be either the same as DestDataT or const DestDataT.

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.

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.

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 DestDataT are all scalar and vector types. SrcDataT must be either the same as DestDataT or const DestDataT.

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 DestDataT are all scalar and vector types. SrcDataT must be either the same as DestDataT or const DestDataT.

Definition at line 1 of file group.hpp.

◆ __SYCL_TYPE() [2/5]

class sycl::_V1::__SYCL_TYPE ( kernel_handler  )

Reading the value of a specialization constant.

Definition at line 1 of file kernel_handler.hpp.

◆ __SYCL_TYPE() [3/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
class sycl::_V1::__SYCL_TYPE ( multi_ptr  )

Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C.

Definition at line 1 of file multi_ptr.hpp.

◆ __SYCL_TYPE() [4/5]

class __SYCL_SPECIAL_CLASS sycl::_V1::__SYCL_TYPE ( sampler  )

Encapsulates a configuration for sampling an image accessor.

See also
Accessors

Checks if this sampler has a property of type propertyT.

Returns
true if this sampler has a property of type propertyT.

Gets the specified property of this sampler.

Throws invalid_object_error if this sampler does not have a property of type propertyT.

Returns
a copy of the property of type propertyT.

Definition at line 1 of file sampler.hpp.

◆ __SYCL_TYPE() [5/5]

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

Declaring a specialization constant.

Definition at line 1 of file specialization_id.hpp.

◆ operator<<()

template<typename T >
class __SYCL_SPECIAL_CLASS __SYCL_TYPE (stream) stream std::enable_if_t<std::is_same_v<T, std::byte>, const stream &> sycl::_V1::operator<< ( const stream &  ,
const T &   
)
inline

A buffered output stream that allows outputting the values of built-in, vector and SYCL types to the console.

Definition at line 840 of file stream.hpp.