DPC++ Runtime
Runtime libraries for oneAPI DPC++
kernel_bundle.hpp File Reference
#include <sycl/backend_types.hpp>
#include <sycl/context.hpp>
#include <sycl/detail/export.hpp>
#include <sycl/detail/kernel_desc.hpp>
#include <sycl/detail/owner_less_base.hpp>
#include <sycl/detail/pi.h>
#include <sycl/detail/pi.hpp>
#include <sycl/device.hpp>
#include <sycl/kernel.hpp>
#include <sycl/kernel_bundle_enums.hpp>
#include <sycl/property_list.hpp>
#include <array>
#include <cstring>
#include <functional>
#include <iterator>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
#include <variant>
#include <vector>
Include dependency graph for kernel_bundle.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sycl::_V1::backend_traits< Backend >
 
class  sycl::_V1::kernel_id
 Objects of the class identify kernel is some kernel_bundle related APIs. More...
 
class  sycl::_V1::detail::device_image_plain
 
class  sycl::_V1::device_image< State >
 Objects of the class represents an instance of an image in a specific state. More...
 
class  sycl::_V1::detail::kernel_bundle_plain
 
class  sycl::_V1::kernel_bundle< State >
 The kernel_bundle class represents collection of device images in a particular state. More...
 
struct  std::hash< sycl::kernel_id >
 
struct  std::hash< sycl::device_image< State > >
 
struct  std::hash< sycl::kernel_bundle< State > >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::detail
 
 std
 

Typedefs

using sycl::_V1::detail::DeviceImageImplPtr = std::shared_ptr< device_image_impl >
 
using sycl::_V1::detail::KernelBundleImplPtr = std::shared_ptr< detail::kernel_bundle_impl >
 
using sycl::_V1::detail::DevImgSelectorImpl = std::function< bool(const detail::DeviceImageImplPtr &DevImgImpl)>
 

Functions

template<backend BackendName, bundle_state State>
auto sycl::_V1::get_native (const kernel_bundle< State > &Obj) -> backend_return_t< BackendName, kernel_bundle< State >>
 
template<typename KernelName >
kernel_id sycl::_V1::get_kernel_id ()
 
template<bundle_state State>
 sycl::_V1::kernel_bundle (kernel_bundle< State > &&) -> kernel_bundle< State >
 
kernel_id sycl::_V1::detail::get_kernel_id_impl (std::string KernelName)
 
std::vector< kernel_id > sycl::_V1::get_kernel_ids ()
 
detail::KernelBundleImplPtr sycl::_V1::detail::get_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs, bundle_state State)
 
const std::vector< device > sycl::_V1::detail::removeDuplicateDevices (const std::vector< device > &Devs)
 
template<bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, const std::vector< device > &Devs)
 A kernel bundle in state State which contains all of the kernels in the application which are compatible with at least one of the devices in Devs. More...
 
template<bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx)
 
detail::KernelBundleImplPtr sycl::_V1::detail::get_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs, const std::vector< kernel_id > &KernelIDs, bundle_state State)
 
template<bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, const std::vector< device > &Devs, const std::vector< kernel_id > &KernelIDs)
 
template<bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, const std::vector< kernel_id > &KernelIDs)
 
template<typename KernelName , bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx)
 
template<typename KernelName , bundle_state State>
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, const std::vector< device > &Devs)
 
detail::KernelBundleImplPtr sycl::_V1::detail::get_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs, bundle_state State, const DevImgSelectorImpl &Selector)
 
detail::KernelBundleImplPtr sycl::_V1::detail::get_empty_interop_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs)
 
template<bundle_state State>
kernel_bundle< State > sycl::_V1::detail::get_empty_interop_kernel_bundle (const context &Ctx)
 make_kernel may need an empty interop kernel bundle. More...
 
template<bundle_state State, typename SelectorT >
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, const std::vector< device > &Devs, SelectorT Selector)
 A kernel bundle in state State which contains all of the device images for which the selector returns true. More...
 
template<bundle_state State, typename SelectorT >
kernel_bundle< State > sycl::_V1::get_kernel_bundle (const context &Ctx, SelectorT Selector)
 
bool sycl::_V1::detail::has_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs, bundle_state State)
 
bool sycl::_V1::detail::has_kernel_bundle_impl (const context &Ctx, const std::vector< device > &Devs, const std::vector< kernel_id > &kernelIds, bundle_state State)
 
template<bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx, const std::vector< device > &Devs)
 
template<bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx, const std::vector< device > &Devs, const std::vector< kernel_id > &KernelIDs)
 
template<bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx)
 
template<bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx, const std::vector< kernel_id > &KernelIDs)
 
template<typename KernelName , bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx)
 
template<typename KernelName , bundle_state State>
bool sycl::_V1::has_kernel_bundle (const context &Ctx, const std::vector< device > &Devs)
 
bool sycl::_V1::is_compatible (const std::vector< kernel_id > &KernelIDs, const device &Dev)
 
template<typename KernelName >
bool sycl::_V1::is_compatible (const device &Dev)
 
std::shared_ptr< detail::kernel_bundle_impl > sycl::_V1::detail::join_impl (const std::vector< detail::KernelBundleImplPtr > &Bundles, bundle_state State)
 
template<sycl::bundle_state State>
sycl::kernel_bundle< State > sycl::_V1::join (const std::vector< sycl::kernel_bundle< State >> &Bundles)
 
std::shared_ptr< detail::kernel_bundle_impl > sycl::_V1::detail::compile_impl (const kernel_bundle< bundle_state::input > &InputBundle, const std::vector< device > &Devs, const property_list &PropList)
 
kernel_bundle< bundle_state::object > sycl::_V1::compile (const kernel_bundle< bundle_state::input > &InputBundle, const std::vector< device > &Devs, const property_list &PropList={})
 
kernel_bundle< bundle_state::object > sycl::_V1::compile (const kernel_bundle< bundle_state::input > &InputBundle, const property_list &PropList={})
 
std::vector< sycl::devicesycl::_V1::detail::find_device_intersection (const std::vector< kernel_bundle< bundle_state::object >> &ObjectBundles)
 
std::shared_ptr< detail::kernel_bundle_impl > sycl::_V1::detail::link_impl (const std::vector< kernel_bundle< bundle_state::object >> &ObjectBundles, const std::vector< device > &Devs, const property_list &PropList)
 
kernel_bundle< bundle_state::executable > sycl::_V1::link (const std::vector< kernel_bundle< bundle_state::object >> &ObjectBundles, const std::vector< device > &Devs, const property_list &PropList={})
 
kernel_bundle< bundle_state::executable > sycl::_V1::link (const kernel_bundle< bundle_state::object > &ObjectBundle, const property_list &PropList={})
 
kernel_bundle< bundle_state::executable > sycl::_V1::link (const std::vector< kernel_bundle< bundle_state::object >> &ObjectBundles, const property_list &PropList={})
 
kernel_bundle< bundle_state::executable > sycl::_V1::link (const kernel_bundle< bundle_state::object > &ObjectBundle, const std::vector< device > &Devs, const property_list &PropList={})
 
std::shared_ptr< detail::kernel_bundle_impl > sycl::_V1::detail::build_impl (const kernel_bundle< bundle_state::input > &InputBundle, const std::vector< device > &Devs, const property_list &PropList)
 
kernel_bundle< bundle_state::executable > sycl::_V1::build (const kernel_bundle< bundle_state::input > &InputBundle, const std::vector< device > &Devs, const property_list &PropList={})
 
kernel_bundle< bundle_state::executable > sycl::_V1::build (const kernel_bundle< bundle_state::input > &InputBundle, const property_list &PropList={})