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/detail/string_view.hpp>
#include <sycl/device.hpp>
#include <sycl/kernel.hpp>
#include <sycl/kernel_bundle_enums.hpp>
#include <sycl/property_list.hpp>
#include <sycl/ext/oneapi/properties/properties.hpp>
#include <sycl/ext/oneapi/properties/property.hpp>
#include <sycl/ext/oneapi/properties/property_value.hpp>
#include <array>
#include <cstddef>
#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::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  sycl::_V1::ext::oneapi::experimental::build_options
 
struct  sycl::_V1::ext::oneapi::experimental::is_property_key_of< build_options_key, sycl::kernel_bundle< bundle_state::ext_oneapi_source > >
 
struct  sycl::_V1::ext::oneapi::experimental::save_log
 
struct  sycl::_V1::ext::oneapi::experimental::is_property_key_of< save_log_key, sycl::kernel_bundle< bundle_state::ext_oneapi_source > >
 
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
 
 sycl::_V1::ext
 
 sycl::_V1::ext::oneapi
 
 sycl::_V1::ext::oneapi::experimental
 
 sycl::_V1::ext::oneapi::experimental::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)>
 
using sycl::_V1::ext::oneapi::experimental::build_options_key = build_options
 
using sycl::_V1::ext::oneapi::experimental::save_log_key = save_log
 

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 (string_view 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={})
 
bool sycl::_V1::ext::oneapi::experimental::is_source_kernel_bundle_supported (backend BE, source_language Language)
 
kernel_bundle< bundle_state::ext_oneapi_source > sycl::_V1::ext::oneapi::experimental::create_kernel_bundle_from_source (const context &SyclContext, source_language Language, const std::string &Source)
 
kernel_bundle< bundle_state::ext_oneapi_source > sycl::_V1::ext::oneapi::experimental::create_kernel_bundle_from_source (const context &SyclContext, source_language Language, const std::vector< std::byte > &Bytes)
 
kernel_bundle< bundle_state::executable > sycl::_V1::ext::oneapi::experimental::detail::build_from_source (kernel_bundle< bundle_state::ext_oneapi_source > &SourceKB, const std::vector< device > &Devices, const std::vector< std::string > &BuildOptions, std::string *LogPtr)
 
template<typename PropertyListT = detail::empty_properties_t, typename = std::enable_if_t< is_property_list_v<PropertyListT> && detail::all_props_are_keys_of< kernel_bundle<bundle_state::ext_oneapi_source>, PropertyListT>::value>>
kernel_bundle< bundle_state::executable > sycl::_V1::ext::oneapi::experimental::build (kernel_bundle< bundle_state::ext_oneapi_source > &SourceKB, const std::vector< device > &Devices, PropertyListT props={})
 
template<typename PropertyListT = detail::empty_properties_t, typename = std::enable_if_t< is_property_list_v<PropertyListT> && detail::all_props_are_keys_of< kernel_bundle<bundle_state::ext_oneapi_source>, PropertyListT>::value>>
kernel_bundle< bundle_state::executable > sycl::_V1::ext::oneapi::experimental::build (kernel_bundle< bundle_state::ext_oneapi_source > &SourceKB, PropertyListT props={})