The plugin class provides a unified interface to the underlying low-level runtimes for the device-agnostic SYCL runtime. More...
#include <detail/plugin.hpp>
Public Member Functions | |
plugin ()=delete | |
plugin (const std::shared_ptr< RT::PiPlugin > &Plugin, backend UseBackend, void *LibraryHandle) | |
plugin & | operator= (const plugin &)=default |
plugin (const plugin &)=default | |
plugin & | operator= (plugin &&other) noexcept=default |
plugin (plugin &&other) noexcept=default | |
~plugin ()=default | |
const RT::PiPlugin & | getPiPlugin () const |
RT::PiPlugin & | getPiPlugin () |
const std::shared_ptr< RT::PiPlugin > & | getPiPluginPtr () const |
template<typename Exception = cl::sycl::runtime_error> | |
void | checkPiResult (RT::PiResult pi_result) const |
Checks return value from PI calls. More... | |
template<sycl::errc errc> | |
void | checkPiResult (RT::PiResult pi_result) const |
void | reportPiError (RT::PiResult pi_result, const char *context) const |
template<PiApiKind PiApiOffset, typename... ArgsT> | |
RT::PiResult | call_nocheck (ArgsT... Args) const |
Calls the PiApi, traces the call, and returns the result. More... | |
template<PiApiKind PiApiOffset, typename... ArgsT> | |
void | call (ArgsT... Args) const |
Calls the API, traces the call, checks the result. More... | |
template<sycl::errc errc, PiApiKind PiApiOffset, typename... ArgsT> | |
void | call (ArgsT... Args) const |
backend | getBackend (void) const |
void * | getLibraryHandle () const |
void * | getLibraryHandle () |
int | unload () |
int | getPlatformId (RT::PiPlatform Platform) |
int | getStartingDeviceId (RT::PiPlatform Platform) |
void | setLastDeviceId (RT::PiPlatform Platform, int Id) |
void | adjustLastDeviceId (RT::PiPlatform Platform) |
bool | containsPiPlatform (RT::PiPlatform Platform) |
std::shared_ptr< std::mutex > | getPluginMutex () |
The plugin class provides a unified interface to the underlying low-level runtimes for the device-agnostic SYCL runtime.
Definition at line 90 of file plugin.hpp.
|
delete |
|
inline |
Definition at line 93 of file plugin.hpp.
|
default |
|
defaultnoexcept |
|
default |
|
inline |
Definition at line 269 of file plugin.hpp.
|
inline |
Calls the API, traces the call, checks the result.
cl::sycl::runtime_exception | if the call was not successful. |
Definition at line 217 of file plugin.hpp.
Referenced by cl::sycl::detail::buffer_impl::addInteropObject(), cl::sycl::detail::MemoryManager::advise_usm(), cl::sycl::detail::MemoryManager::allocateImageObject(), cl::sycl::detail::MemoryManager::allocateInteropMemObject(), cl::sycl::detail::applyAllowList(), cl::sycl::detail::ProgramManager::build(), cl::sycl::detail::program_impl::build_with_kernel_name(), cl::sycl::detail::context_impl::context_impl(), cl::sycl::detail::context_impl::get_info< info::context::atomic_memory_order_capabilities >(), cl::sycl::detail::context_impl::get_info< info::context::atomic_memory_scope_capabilities >(), cl::sycl::detail::pi::contextSetExtendedDeleter(), cl::sycl::detail::MemoryManager::copy_usm(), cl::sycl::detail::copyD2D(), cl::sycl::detail::copyD2H(), cl::sycl::detail::copyH2D(), cl::sycl::detail::device_impl::create_sub_devices(), cl::sycl::detail::createBinaryProgram(), cl::sycl::detail::createSpirvProgram(), cl::sycl::detail::enableITTAnnotationsIfNeeded(), cl::sycl::detail::event_impl::event_impl(), cl::sycl::detail::MemoryManager::fill(), cl::sycl::detail::MemoryManager::fill_usm(), cl::sycl::detail::filterDeviceFilter(), cl::sycl::detail::event_impl::flushIfNeeded(), cl::sycl::detail::usm::free(), cl::sycl::detail::get_context_info< param >::get(), cl::sycl::detail::get_platform_info< std::string, param >::get(), cl::sycl::detail::get_event_profiling_info< Param >::get(), cl::sycl::detail::get_kernel_info< std::string, Param >::get(), cl::sycl::detail::get_event_info< Param >::get(), cl::sycl::detail::get_context_info< info::context::atomic_memory_order_capabilities >::get(), cl::sycl::detail::get_kernel_info< cl_uint, Param >::get(), cl::sycl::detail::device_impl::get(), cl::sycl::detail::event_impl::get(), cl::sycl::detail::get_kernel_device_specific_info< T, Param >::get(), cl::sycl::detail::context_impl::get(), cl::sycl::detail::get_kernel_device_specific_info< cl::sycl::range< 3 >, Param >::get(), cl::sycl::detail::kernel_impl::get(), cl::sycl::detail::get_device_info< T, param >::get(), cl::sycl::detail::get_device_info< platform, param >::get(), cl::sycl::detail::get_device_info_string< param >::get(), cl::sycl::detail::program_impl::get(), cl::sycl::detail::get_device_info< id< 3 >, param >::get(), cl::sycl::detail::get_device_info< std::vector< info::fp_config >, param >::get(), cl::sycl::detail::queue_impl::get(), cl::sycl::detail::get_kernel_device_specific_info_with_input< Param >::get(), cl::sycl::detail::get_device_info< std::vector< info::fp_config >, info::device::single_fp_config >::get(), cl::sycl::detail::get_device_info< bool, info::device::queue_profiling >::get(), cl::sycl::detail::get_device_info< std::vector< info::execution_capability >, info::device::execution_capabilities >::get(), cl::sycl::detail::get_device_info< std::vector< info::partition_property >, info::device::partition_properties >::get(), cl::sycl::detail::get_device_info< std::vector< info::partition_affinity_domain >, info::device::partition_affinity_domains >::get(), cl::sycl::detail::get_device_info< info::partition_affinity_domain, info::device::partition_type_affinity_domain >::get(), cl::sycl::detail::get_device_info< info::partition_property, info::device::partition_type_property >::get(), cl::sycl::detail::get_device_info< std::vector< size_t >, info::device::sub_group_sizes >::get(), cl::sycl::detail::get_device_info< id< 3 >, info::device::max_work_item_sizes >::get(), cl::sycl::detail::get_device_info< id< 1 >, info::device::ext_oneapi_max_work_groups_1d >::get(), cl::sycl::detail::get_device_info< id< 2 >, info::device::ext_oneapi_max_work_groups_2d >::get(), cl::sycl::detail::get_device_info< id< 3 >, info::device::ext_oneapi_max_work_groups_3d >::get(), cl::sycl::detail::get_device_info< device, info::device::parent_device >::get(), cl::sycl::detail::program_impl::get_binaries(), cl::sycl::detail::platform_impl::get_devices(), cl::sycl::get_pointer_device(), cl::sycl::detail::SYCLMemObjT::getBufSizeForContext(), cl::sycl::detail::queue_impl::getExclusiveQueueHandleRef(), cl::sycl::detail::getImageInfo(), cl::sycl::detail::kernel_impl::getNative(), cl::sycl::detail::device_image_impl::getNative(), cl::sycl::detail::queue_impl::getNative(), cl::sycl::detail::ProgramManager::getOrCreateKernel(), cl::sycl::detail::ProgramManager::getPiProgramFromPiKernel(), cl::sycl::detail::platform_impl::getPlatformFromPiDevice(), cl::sycl::detail::getPluginOpaqueData(), cl::sycl::detail::ProgramManager::getProgramBuildLog(), cl::sycl::detail::enqueue_kernel_launch::handleInvalidValue(), cl::sycl::detail::enqueue_kernel_launch::handleInvalidWorkGroupSize(), cl::sycl::detail::enqueue_kernel_launch::handleInvalidWorkItemSize(), cl::sycl::detail::image_impl< Dimensions >::image_impl(), cl::sycl::detail::kernel_impl::kernel_impl(), cl::sycl::detail::memBufferCreateHelper(), cl::sycl::detail::memBufferMapHelper(), cl::sycl::detail::memReleaseHelper(), cl::sycl::detail::memUnmapHelper(), cl::sycl::detail::MemoryManager::prefetch_usm(), cl::sycl::detail::program_impl::get_info< info::program::reference_count >(), cl::sycl::detail::queue_impl::get_info< info::queue::reference_count >(), cl::sycl::detail::sampler_impl::sampler_impl(), cl::sycl::detail::SetKernelParamsAndLaunch(), cl::sycl::detail::SYCLMemObjT::SYCLMemObjT(), cl::sycl::detail::SYCLMemObjT::updateHostMemory(), cl::sycl::detail::queue_impl::wait(), cl::sycl::detail::waitForEvents(), cl::sycl::detail::Command::waitForEvents(), cl::sycl::detail::event_impl::waitInternal(), cl::sycl::detail::context_impl::~context_impl(), cl::sycl::detail::device_image_impl::~device_image_impl(), cl::sycl::detail::event_impl::~event_impl(), cl::sycl::detail::kernel_impl::~kernel_impl(), cl::sycl::detail::KernelProgramCache::~KernelProgramCache(), cl::sycl::detail::program_impl::~program_impl(), cl::sycl::detail::queue_impl::~queue_impl(), and cl::sycl::detail::sampler_impl::~sampler_impl().
|
inline |
sycl::exceptions(errc) | if the call was not successful. |
Definition at line 224 of file plugin.hpp.
|
inline |
Calls the PiApi, traces the call, and returns the result.
Usage:
Definition at line 170 of file plugin.hpp.
References cl::sycl::detail::pi::emitFunctionBeginTrace(), cl::sycl::detail::pi::emitFunctionEndTrace(), cl::sycl::detail::pi::emitFunctionWithArgsBeginTrace(), cl::sycl::detail::pi::emitFunctionWithArgsEndTrace(), cl::sycl::detail::pi::PI_TRACE_CALLS, cl::sycl::detail::pi::printArgs(), cl::sycl::detail::pi::printOuts(), and cl::sycl::detail::pi::trace().
Referenced by cl::sycl::detail::usm::alignedAllocHost(), cl::sycl::detail::MemoryManager::allocateMemSubBuffer(), cl::sycl::detail::ProgramManager::compile(), cl::sycl::detail::queue_impl::createQueue(), cl::sycl::detail::get_device_info< std::vector< memory_order >, info::device::atomic_memory_order_capabilities >::get(), cl::sycl::detail::get_device_info< std::vector< memory_scope >, info::device::atomic_memory_scope_capabilities >::get(), cl::sycl::detail::get_device_info< bool, info::device::usm_device_allocations >::get(), cl::sycl::detail::get_device_info< bool, info::device::usm_host_allocations >::get(), cl::sycl::detail::get_device_info< bool, info::device::usm_shared_allocations >::get(), cl::sycl::detail::get_device_info< bool, info::device::usm_restricted_shared_allocations >::get(), cl::sycl::detail::get_device_info< bool, info::device::usm_system_allocations >::get(), cl::sycl::detail::get_device_info< bool, info::device::ext_intel_mem_channel >::get(), cl::sycl::get_pointer_type(), cl::sycl::detail::getDeviceFunctionPointerImpl(), cl::sycl::detail::sampler_impl::getOrCreateSampler(), cl::sycl::detail::device_impl::has(), cl::sycl::detail::program_impl::has_kernel(), cl::sycl::detail::program_impl::link(), cl::sycl::detail::ProgramManager::link(), cl::sycl::detail::loadDeviceLibFallback(), cl::sycl::detail::memBufferCreateHelper(), cl::sycl::detail::memUnmapHelper(), cl::sycl::detail::program_impl::program_impl(), cl::sycl::detail::SetKernelParamsAndLaunch(), and cl::sycl::detail::device_impl::~device_impl().
|
inline |
Checks return value from PI calls.
Exception | if pi_result is not a PI_SUCCESS. |
Definition at line 116 of file plugin.hpp.
References __SYCL_CHECK_OCL_CODE_THROW, PI_PLUGIN_SPECIFIC_ERROR, and PI_SUCCESS.
Referenced by cl::sycl::detail::queue_impl::createQueue(), cl::sycl::detail::sampler_impl::getOrCreateSampler(), cl::sycl::detail::program_impl::link(), and cl::sycl::detail::program_impl::program_impl().
|
inline |
SYCL | 2020 exception(errc) if pi_result is not PI_SUCCESS |
Definition at line 133 of file plugin.hpp.
References __SYCL_CHECK_CODE_THROW_VIA_ERRC, PI_PLUGIN_SPECIFIC_ERROR, and PI_SUCCESS.
|
inline |
Definition at line 276 of file plugin.hpp.
|
inline |
Definition at line 229 of file plugin.hpp.
Referenced by cl::sycl::detail::applyAllowList(), cl::sycl::detail::context_impl::context_impl(), cl::sycl::detail::queue_impl::createQueue(), cl::sycl::detail::filterDeviceFilter(), cl::sycl::detail::kernel_impl::getNative(), cl::sycl::detail::queue_impl::getNative(), cl::sycl::detail::SetKernelParamsAndLaunch(), and cl::sycl::detail::SYCLMemObjT::SYCLMemObjT().
|
inline |
Definition at line 231 of file plugin.hpp.
|
inline |
Definition at line 230 of file plugin.hpp.
|
inline |
Definition at line 107 of file plugin.hpp.
|
inline |
Definition at line 106 of file plugin.hpp.
Referenced by cl::sycl::detail::ProgramManager::build(), and cl::sycl::detail::ProgramManager::getBuiltPIProgram().
|
inline |
Definition at line 108 of file plugin.hpp.
|
inline |
Definition at line 237 of file plugin.hpp.
|
inline |
Definition at line 281 of file plugin.hpp.
Referenced by cl::sycl::detail::filterDeviceFilter().
|
inline |
Definition at line 252 of file plugin.hpp.
Referenced by cl::sycl::detail::filterDeviceFilter().
|
inline |
Definition at line 149 of file plugin.hpp.
References cl::sycl::detail::codeToString(), and PI_SUCCESS.
Referenced by cl::sycl::detail::MemoryManager::allocateMemSubBuffer(), cl::sycl::get_pointer_type(), and cl::sycl::detail::ProgramManager::link().
|
inline |
Definition at line 261 of file plugin.hpp.
Referenced by cl::sycl::detail::filterDeviceFilter().
|
inline |
Definition at line 232 of file plugin.hpp.
References cl::sycl::detail::pi::unloadPlugin().