#include <detail/program_manager/program_manager.hpp>
Public Member Functions | |
RTDeviceBinaryImage & | getDeviceImage (const std::string &KernelName, const context &Context, const device &Device, bool JITCompilationIsRequired=false) |
RTDeviceBinaryImage & | getDeviceImage (const std::unordered_set< RTDeviceBinaryImage * > &ImagesToVerify, const context &Context, const device &Device, bool JITCompilationIsRequired=false) |
sycl::detail::pi::PiProgram | createPIProgram (const RTDeviceBinaryImage &Img, const context &Context, const device &Device) |
std::pair< sycl::detail::pi::PiProgram, bool > | getOrCreatePIProgram (const RTDeviceBinaryImage &Img, const std::vector< const RTDeviceBinaryImage * > &AllImages, const context &Context, const device &Device, const std::string &CompileAndLinkOptions, SerializedObj SpecConsts) |
Creates a PI program using either a cached device code binary if present in the persistent cache or from the supplied device image otherwise. More... | |
sycl::detail::pi::PiProgram | getBuiltPIProgram (const ContextImplPtr &ContextImpl, const DeviceImplPtr &DeviceImpl, const std::string &KernelName, const NDRDescT &NDRDesc={}, bool JITCompilationIsRequired=false) |
Builds or retrieves from cache a program defining the kernel with given name. More... | |
sycl::detail::pi::PiProgram | getBuiltPIProgram (const context &Context, const device &Device, const std::string &KernelName, const property_list &PropList, bool JITCompilationIsRequired=false) |
std::tuple< sycl::detail::pi::PiKernel, std::mutex *, const KernelArgMask *, sycl::detail::pi::PiProgram > | getOrCreateKernel (const ContextImplPtr &ContextImpl, const DeviceImplPtr &DeviceImpl, const std::string &KernelName, const NDRDescT &NDRDesc={}) |
sycl::detail::pi::PiKernel | getCachedMaterializedKernel (const std::string &KernelName, const std::vector< unsigned char > &SpecializationConsts) |
sycl::detail::pi::PiKernel | getOrCreateMaterializedKernel (const RTDeviceBinaryImage &Img, const context &Context, const device &Device, const std::string &KernelName, const std::vector< unsigned char > &SpecializationConsts) |
sycl::detail::pi::PiProgram | getPiProgramFromPiKernel (sycl::detail::pi::PiKernel Kernel, const ContextImplPtr Context) |
void | addImages (pi_device_binaries DeviceImages) |
void | debugPrintBinaryImages () const |
uint32_t | getDeviceLibReqMask (const RTDeviceBinaryImage &Img) |
const KernelArgMask * | getEliminatedKernelArgMask (pi::PiProgram NativePrg, const std::string &KernelName) |
Returns the mask for eliminated kernel arguments for the requested kernel within the native program. More... | |
kernel_id | getSYCLKernelID (const std::string &KernelName) |
std::vector< kernel_id > | getAllSYCLKernelIDs () |
kernel_id | getBuiltInKernelID (const std::string &KernelName) |
void | addOrInitDeviceGlobalEntry (const void *DeviceGlobalPtr, const char *UniqueId) |
bool | hasCompatibleImage (const device &Dev) |
DeviceGlobalMapEntry * | getDeviceGlobalEntry (const void *DeviceGlobalPtr) |
std::vector< DeviceGlobalMapEntry * > | getDeviceGlobalEntries (const std::vector< std::string > &UniqueIds, bool ExcludeDeviceImageScopeDecorated=false) |
void | addOrInitHostPipeEntry (const void *HostPipePtr, const char *UniqueId) |
HostPipeMapEntry * | getHostPipeEntry (const std::string &UniqueId) |
HostPipeMapEntry * | getHostPipeEntry (const void *HostPipePtr) |
device_image_plain | getDeviceImageFromBinaryImage (RTDeviceBinaryImage *BinImage, const context &Ctx, const device &Dev) |
std::vector< device_image_plain > | getSYCLDeviceImagesWithCompatibleState (const context &Ctx, const std::vector< device > &Devs, bundle_state TargetState, const std::vector< kernel_id > &KernelIDs={}) |
void | bringSYCLDeviceImagesToState (std::vector< device_image_plain > &DeviceImages, bundle_state TargetState) |
std::vector< device_image_plain > | getSYCLDeviceImages (const context &Ctx, const std::vector< device > &Devs, bundle_state State) |
std::vector< device_image_plain > | getSYCLDeviceImages (const context &Ctx, const std::vector< device > &Devs, const DevImgSelectorImpl &Selector, bundle_state TargetState) |
std::vector< device_image_plain > | getSYCLDeviceImages (const context &Ctx, const std::vector< device > &Devs, const std::vector< kernel_id > &KernelIDs, bundle_state TargetState) |
device_image_plain | compile (const device_image_plain &DeviceImage, const std::vector< device > &Devs, const property_list &PropList) |
std::vector< device_image_plain > | link (const device_image_plain &DeviceImages, const std::vector< device > &Devs, const property_list &PropList) |
device_image_plain | build (const device_image_plain &DeviceImage, const std::vector< device > &Devs, const property_list &PropList) |
std::tuple< sycl::detail::pi::PiKernel, std::mutex *, const KernelArgMask * > | getOrCreateKernel (const context &Context, const std::string &KernelName, const property_list &PropList, sycl::detail::pi::PiProgram Program) |
ProgramManager () | |
~ProgramManager ()=default | |
bool | kernelUsesAssert (const std::string &KernelName) const |
bool | kernelUsesAsan () const |
std::set< RTDeviceBinaryImage * > | getRawDeviceImages (const std::vector< kernel_id > &KernelIDs) |
Static Public Member Functions | |
static ProgramManager & | getInstance () |
static std::string | getProgramBuildLog (const sycl::detail::pi::PiProgram &Program, const ContextImplPtr Context) |
Definition at line 88 of file program_manager.hpp.
sycl::_V1::detail::ProgramManager::ProgramManager | ( | ) |
Definition at line 1151 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::getFormatStr(), sycl::_V1::make_error_code(), sycl::_V1::runtime, and sycl::_V1::detail::UseSpvEnv().
|
default |
void sycl::_V1::detail::ProgramManager::addImages | ( | pi_device_binaries | DeviceImages | ) |
Definition at line 1503 of file program_manager.cpp.
References any_of(), sycl::_V1::detail::DeviceBinaryProperty::asByteArray(), sycl::_V1::detail::DeviceBinaryProperty::asCString(), sycl::_V1::detail::DeviceBinaryProperty::asUint32(), sycl::_V1::detail::ByteArray::consume(), sycl::_V1::detail::createKernelArgMask(), pi_device_binaries_struct::DeviceBinaries, sycl::_V1::detail::ByteArray::dropBytes(), sycl::_V1::detail::ByteArray::empty(), pi_device_binary_struct::EntriesBegin, pi_device_binary_struct::EntriesEnd, sycl::_V1::detail::RTDeviceBinaryImage::PropertyRange::isAvailable(), pi_device_binaries_struct::NumDeviceBinaries, and sycl::_V1::detail::split_string().
void sycl::_V1::detail::ProgramManager::addOrInitDeviceGlobalEntry | ( | const void * | DeviceGlobalPtr, |
const char * | UniqueId | ||
) |
Definition at line 1811 of file program_manager.cpp.
Referenced by sycl::_V1::detail::device_global_map::add().
void sycl::_V1::detail::ProgramManager::addOrInitHostPipeEntry | ( | const void * | HostPipePtr, |
const char * | UniqueId | ||
) |
Definition at line 1868 of file program_manager.cpp.
Referenced by sycl::_V1::detail::host_pipe_map::add().
void sycl::_V1::detail::ProgramManager::bringSYCLDeviceImagesToState | ( | std::vector< device_image_plain > & | DeviceImages, |
bundle_state | TargetState | ||
) |
Definition at line 2063 of file program_manager.cpp.
References sycl::_V1::build(), sycl::_V1::compile(), sycl::_V1::executable, sycl::_V1::ext_oneapi_source, sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::input, sycl::_V1::link(), and sycl::_V1::object.
device_image_plain sycl::_V1::detail::ProgramManager::build | ( | const device_image_plain & | DeviceImage, |
const std::vector< device > & | Devs, | ||
const property_list & | PropList | ||
) |
Definition at line 2363 of file program_manager.cpp.
References sycl::_V1::detail::appendCompileEnvironmentVariablesThatAppend(), sycl::_V1::detail::appendLinkEnvironmentVariablesThatAppend(), sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::detail::applyOptionsFromImage(), sycl::_V1::build(), sycl::_V1::detail::emitBuiltProgramInfo(), sycl::_V1::executable, sycl::_V1::feature_not_supported, sycl::_V1::get(), sycl::_V1::detail::RTDeviceBinaryImage::get(), sycl::_V1::detail::RTDeviceBinaryImage::getFormat(), sycl::_V1::detail::RTDeviceBinaryImage::getImageID(), sycl::_V1::detail::KernelProgramCache::getOrBuild(), sycl::_V1::detail::KernelProgramCache::getOrInsertProgram(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), PI_DEVICE_BINARY_TYPE_SPIRV, piProgramRetain(), and sycl::_V1::detail::setSpecializationConstants().
Referenced by sycl::_V1::detail::enqueueReadWriteHostPipe(), getBuiltPIProgram(), and sycl::_V1::detail::getOrBuildProgramForDeviceGlobal().
device_image_plain sycl::_V1::detail::ProgramManager::compile | ( | const device_image_plain & | DeviceImage, |
const std::vector< device > & | Devs, | ||
const property_list & | PropList | ||
) |
Definition at line 2183 of file program_manager.cpp.
References sycl::_V1::detail::appendCompileEnvironmentVariablesThatAppend(), sycl::_V1::detail::appendCompileOptionsFromImage(), sycl::_V1::detail::applyCompileOptionsFromEnvironment(), sycl::_V1::build, sycl::_V1::feature_not_supported, sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), sycl::_V1::object, PI_DEVICE_BINARY_TYPE_SPIRV, piProgramCompile(), and sycl::_V1::detail::setSpecializationConstants().
sycl::detail::pi::PiProgram sycl::_V1::detail::ProgramManager::createPIProgram | ( | const RTDeviceBinaryImage & | Img, |
const context & | Context, | ||
const device & | Device | ||
) |
Definition at line 178 of file program_manager.cpp.
References sycl::_V1::detail::RTDeviceBinaryImage::PropertyRange::begin(), pi_device_binary_struct::BinaryEnd, pi_device_binary_struct::BinaryStart, std::cerr, sycl::_V1::detail::createBinaryProgram(), sycl::_V1::detail::createSpirvProgram(), sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::pi::getBinaryImageFormat(), sycl::_V1::detail::RTDeviceBinaryImage::getFormat(), sycl::_V1::detail::getFormatStr(), sycl::_V1::detail::RTDeviceBinaryImage::getProgramMetadata(), sycl::_V1::detail::RTDeviceBinaryImage::getRawData(), sycl::_V1::detail::RTDeviceBinaryImage::getSize(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::detail::isDeviceBinaryTypeSupported(), sycl::_V1::make_error_code(), PI_DEVICE_BINARY_TYPE_NONE, PI_DEVICE_BINARY_TYPE_SPIRV, and sycl::_V1::runtime.
Referenced by getBuiltPIProgram(), getOrCreatePIProgram(), and sycl::_V1::detail::retrieveKernelBinary().
void sycl::_V1::detail::ProgramManager::debugPrintBinaryImages | ( | ) | const |
Definition at line 1673 of file program_manager.cpp.
Referenced by getDeviceImage().
std::vector< kernel_id > sycl::_V1::detail::ProgramManager::getAllSYCLKernelIDs | ( | ) |
Definition at line 1787 of file program_manager.cpp.
kernel_id sycl::_V1::detail::ProgramManager::getBuiltInKernelID | ( | const std::string & | KernelName | ) |
Definition at line 1798 of file program_manager.cpp.
sycl::detail::pi::PiProgram sycl::_V1::detail::ProgramManager::getBuiltPIProgram | ( | const context & | Context, |
const device & | Device, | ||
const std::string & | KernelName, | ||
const property_list & | PropList, | ||
bool | JITCompilationIsRequired = false |
||
) |
sycl::detail::pi::PiProgram sycl::_V1::detail::ProgramManager::getBuiltPIProgram | ( | const ContextImplPtr & | ContextImpl, |
const DeviceImplPtr & | DeviceImpl, | ||
const std::string & | KernelName, | ||
const NDRDescT & | NDRDesc = {} , |
||
bool | JITCompilationIsRequired = false |
||
) |
Builds or retrieves from cache a program defining the kernel with given name.
M | identifies the OS module the kernel comes from (multiple OS modules may have kernels with the same name) |
Context | the context to build the program with |
Device | the device for which the program is built |
KernelName | the kernel's name |
JITCompilationIsRequired | If JITCompilationIsRequired is true add a check that kernel is compiled, otherwise don't add the check. |
Definition at line 692 of file program_manager.cpp.
References sycl::_V1::detail::appendCompileEnvironmentVariablesThatAppend(), sycl::_V1::detail::appendLinkEnvironmentVariablesThatAppend(), sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::detail::applyOptionsFromImage(), sycl::_V1::build, build(), sycl::_V1::detail::checkDevSupportDeviceRequirements(), sycl::_V1::ext::oneapi::experimental::copy(), createPIProgram(), sycl::_V1::detail::emitBuiltProgramInfo(), sycl::_V1::detail::enableITTAnnotationsIfNeeded(), sycl::_V1::get(), getDeviceImage(), getDeviceImageFromBinaryImage(), getDeviceLibReqMask(), sycl::_V1::detail::RTDeviceBinaryImage::getFormat(), sycl::_V1::detail::RTDeviceBinaryImage::getImageID(), sycl::_V1::detail::KernelProgramCache::getOrBuild(), getOrCreatePIProgram(), sycl::_V1::detail::KernelProgramCache::getOrInsertProgram(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::detail::KernelProgramCache::insertBuiltProgram(), PI_DEVICE_BINARY_TYPE_SPIRV, PI_DEVICE_INFO_BUILD_ON_SUBDEVICE, PI_TRUE, piDeviceGetInfo(), piProgramRelease(), piProgramRetain(), sycl::_V1::detail::PersistentDeviceCodeCache::putItemToDisc(), sycl::_V1::detail::setSpecializationConstants(), and sycl::_V1::detail::RTDeviceBinaryImage::supportsSpecConstants().
Referenced by getOrCreateKernel().
sycl::detail::pi::PiKernel sycl::_V1::detail::ProgramManager::getCachedMaterializedKernel | ( | const std::string & | KernelName, |
const std::vector< unsigned char > & | SpecializationConsts | ||
) |
Definition at line 2578 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::DbgProgMgr, and sycl::_V1::detail::Kernel.
std::vector< DeviceGlobalMapEntry * > sycl::_V1::detail::ProgramManager::getDeviceGlobalEntries | ( | const std::vector< std::string > & | UniqueIds, |
bool | ExcludeDeviceImageScopeDecorated = false |
||
) |
Definition at line 1850 of file program_manager.cpp.
Referenced by sycl::_V1::detail::context_impl::initializeDeviceGlobals().
DeviceGlobalMapEntry * sycl::_V1::detail::ProgramManager::getDeviceGlobalEntry | ( | const void * | DeviceGlobalPtr | ) |
Definition at line 1843 of file program_manager.cpp.
Referenced by sycl::_V1::detail::isDeviceGlobalUsedInKernel(), and sycl::_V1::detail::context_impl::~context_impl().
RTDeviceBinaryImage & sycl::_V1::detail::ProgramManager::getDeviceImage | ( | const std::string & | KernelName, |
const context & | Context, | ||
const device & | Device, | ||
bool | JITCompilationIsRequired = false |
||
) |
Definition at line 1232 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::CheckJITCompilationForImage(), sycl::_V1::detail::DbgProgMgr, debugPrintBinaryImages(), sycl::_V1::detail::getBinImageFromMultiMap(), sycl::_V1::detail::RTDeviceBinaryImage::getRawData(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), sycl::_V1::detail::RTDeviceBinaryImage::print(), and sycl::_V1::runtime.
Referenced by getBuiltPIProgram(), sycl::_V1::detail::getOrBuildProgramForDeviceGlobal(), and sycl::_V1::detail::retrieveKernelBinary().
RTDeviceBinaryImage & sycl::_V1::detail::ProgramManager::getDeviceImage | ( | const std::unordered_set< RTDeviceBinaryImage * > & | ImagesToVerify, |
const context & | Context, | ||
const device & | Device, | ||
bool | JITCompilationIsRequired = false |
||
) |
Definition at line 1280 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::CheckJITCompilationForImage(), sycl::_V1::detail::DbgProgMgr, debugPrintBinaryImages(), sycl::_V1::detail::getSyclObjImpl(), and piextDeviceSelectBinary().
device_image_plain sycl::_V1::detail::ProgramManager::getDeviceImageFromBinaryImage | ( | RTDeviceBinaryImage * | BinImage, |
const context & | Ctx, | ||
const device & | Dev | ||
) |
Definition at line 1899 of file program_manager.cpp.
References sycl::_V1::detail::compatibleWithDevice(), and sycl::_V1::detail::getBinImageState().
Referenced by sycl::_V1::detail::enqueueReadWriteHostPipe(), getBuiltPIProgram(), and sycl::_V1::detail::getOrBuildProgramForDeviceGlobal().
uint32_t sycl::_V1::detail::ProgramManager::getDeviceLibReqMask | ( | const RTDeviceBinaryImage & | Img | ) |
Definition at line 1707 of file program_manager.cpp.
References sycl::_V1::detail::DeviceBinaryProperty::asUint32(), sycl::_V1::detail::RTDeviceBinaryImage::PropertyRange::begin(), sycl::_V1::detail::RTDeviceBinaryImage::getDeviceLibReqMask(), and sycl::_V1::detail::RTDeviceBinaryImage::PropertyRange::isAvailable().
Referenced by getBuiltPIProgram().
const KernelArgMask * sycl::_V1::detail::ProgramManager::getEliminatedKernelArgMask | ( | pi::PiProgram | NativePrg, |
const std::string & | KernelName | ||
) |
Returns the mask for eliminated kernel arguments for the requested kernel within the native program.
NativePrg | the PI program associated with the kernel. |
KernelName | the name of the kernel. |
Definition at line 1717 of file program_manager.cpp.
Referenced by getOrCreateKernel().
HostPipeMapEntry * sycl::_V1::detail::ProgramManager::getHostPipeEntry | ( | const std::string & | UniqueId | ) |
Definition at line 1885 of file program_manager.cpp.
Referenced by sycl::_V1::detail::enqueueReadWriteHostPipe(), and sycl::_V1::ext::intel::experimental::pipe_base::get_pipe_name().
HostPipeMapEntry * sycl::_V1::detail::ProgramManager::getHostPipeEntry | ( | const void * | HostPipePtr | ) |
Definition at line 1892 of file program_manager.cpp.
|
static |
Definition at line 68 of file program_manager.cpp.
References sycl::_V1::detail::GlobalHandler::getProgramManager(), and sycl::_V1::detail::GlobalHandler::instance().
Referenced by sycl::_V1::detail::device_global_map::add(), sycl::_V1::detail::host_pipe_map::add(), sycl::_V1::detail::enqueueImpCommandBufferKernel(), sycl::_V1::detail::enqueueImpKernel(), sycl::_V1::detail::enqueueReadWriteHostPipe(), sycl::_V1::detail::get_device_info_impl< std::vector< kernel_id >, info::device::built_in_kernel_ids >::get(), sycl::_V1::ext::intel::experimental::pipe_base::get_pipe_name(), sycl::_V1::detail::context_impl::initializeDeviceGlobals(), sycl::_V1::detail::pi::initializePlugins(), sycl::_V1::detail::isDeviceGlobalUsedInKernel(), sycl::_V1::detail::kernel_bundle_impl::kernel_bundle_impl(), sycl::_V1::detail::retrieveKernelBinary(), sycl::_V1::detail::queue_impl::submit_impl(), and sycl::_V1::detail::context_impl::~context_impl().
std::tuple< sycl::detail::pi::PiKernel, std::mutex *, const KernelArgMask * > sycl::_V1::detail::ProgramManager::getOrCreateKernel | ( | const context & | Context, |
const std::string & | KernelName, | ||
const property_list & | PropList, | ||
sycl::detail::pi::PiProgram | Program | ||
) |
Definition at line 2522 of file program_manager.cpp.
References sycl::_V1::detail::KernelProgramCache::getOrBuild(), sycl::_V1::detail::KernelProgramCache::getOrInsertKernel(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::invalid, sycl::_V1::detail::Kernel, sycl::_V1::detail::make_tuple(), PI_TRUE, PI_USM_INDIRECT_ACCESS, piKernelCreate(), piKernelRetain(), and piKernelSetExecInfo().
std::tuple< sycl::detail::pi::PiKernel, std::mutex *, const KernelArgMask *, sycl::detail::pi::PiProgram > sycl::_V1::detail::ProgramManager::getOrCreateKernel | ( | const ContextImplPtr & | ContextImpl, |
const DeviceImplPtr & | DeviceImpl, | ||
const std::string & | KernelName, | ||
const NDRDescT & | NDRDesc = {} |
||
) |
Definition at line 872 of file program_manager.cpp.
References sycl::_V1::detail::appendCompileEnvironmentVariablesThatAppend(), sycl::_V1::detail::appendLinkEnvironmentVariablesThatAppend(), sycl::_V1::detail::applyOptionsFromEnvironment(), std::cerr, sycl::_V1::detail::DbgProgMgr, getBuiltPIProgram(), getEliminatedKernelArgMask(), sycl::_V1::detail::KernelProgramCache::getOrBuild(), sycl::_V1::detail::KernelProgramCache::getOrInsertKernel(), sycl::_V1::invalid, sycl::_V1::detail::Kernel, sycl::_V1::kernel_not_supported, sycl::_V1::detail::make_tuple(), PI_TRUE, PI_USM_INDIRECT_ACCESS, piKernelCreate(), piKernelRetain(), piKernelSetExecInfo(), piProgramRetain(), sycl::_V1::detail::KernelProgramCache::saveKernel(), and sycl::_V1::detail::KernelProgramCache::tryToGetKernelFast().
Referenced by sycl::_V1::detail::enqueueImpKernel().
sycl::detail::pi::PiKernel sycl::_V1::detail::ProgramManager::getOrCreateMaterializedKernel | ( | const RTDeviceBinaryImage & | Img, |
const context & | Context, | ||
const device & | Device, | ||
const std::string & | KernelName, | ||
const std::vector< unsigned char > & | SpecializationConsts | ||
) |
Definition at line 2608 of file program_manager.cpp.
References sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::build(), std::cerr, sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::kernel_not_supported, and piKernelCreate().
std::pair< sycl::detail::pi::PiProgram, bool > sycl::_V1::detail::ProgramManager::getOrCreatePIProgram | ( | const RTDeviceBinaryImage & | Img, |
const std::vector< const RTDeviceBinaryImage * > & | AllImages, | ||
const context & | Context, | ||
const device & | Device, | ||
const std::string & | CompileAndLinkOptions, | ||
SerializedObj | SpecConsts | ||
) |
Creates a PI program using either a cached device code binary if present in the persistent cache or from the supplied device image otherwise.
Img | The device image used to create the program. |
AllImages | All images needed to build the program, used for cache lookup. |
Context | The context to find or create the PI program with. |
Device | The device to find or create the PI program for. |
CompileAndLinkOptions | The compile and linking options to be used for building the PI program. These options must appear in the mentioned order. This parameter is used as a partial key in the cache and has no effect if no cached device code binary is found in the persistent cache. |
SpecConsts | Specialization constants associated with the device image. This parameter is used as a partial key in the cache and has no effect if no cached device code binary is found in the persistent cache. |
Definition at line 490 of file program_manager.cpp.
References sycl::_V1::ext::oneapi::experimental::copy(), sycl::_V1::detail::createBinaryProgram(), createPIProgram(), sycl::_V1::detail::PersistentDeviceCodeCache::getItemFromDisc(), and sycl::_V1::detail::getSyclObjImpl().
Referenced by getBuiltPIProgram().
sycl::detail::pi::PiProgram sycl::_V1::detail::ProgramManager::getPiProgramFromPiKernel | ( | sycl::detail::pi::PiKernel | Kernel, |
const ContextImplPtr | Context | ||
) |
Definition at line 964 of file program_manager.cpp.
References sycl::_V1::detail::Kernel, PI_KERNEL_INFO_PROGRAM, and piKernelGetInfo().
|
static |
Definition at line 975 of file program_manager.cpp.
References PI_DEVICE_INFO_NAME, PI_PROGRAM_BUILD_INFO_LOG, PI_PROGRAM_INFO_DEVICES, piDeviceGetInfo(), piProgramGetBuildInfo(), and piProgramGetInfo().
Referenced by sycl::_V1::detail::emitBuiltProgramInfo(), and sycl::_V1::detail::loadDeviceLibFallback().
std::set< RTDeviceBinaryImage * > sycl::_V1::detail::ProgramManager::getRawDeviceImages | ( | const std::vector< kernel_id > & | KernelIDs | ) |
Definition at line 1831 of file program_manager.cpp.
Referenced by getSYCLDeviceImagesWithCompatibleState(), and sycl::_V1::detail::retrieveKernelBinary().
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::getSYCLDeviceImages | ( | const context & | Ctx, |
const std::vector< device > & | Devs, | ||
bundle_state | State | ||
) |
Definition at line 2124 of file program_manager.cpp.
Referenced by sycl::_V1::detail::kernel_bundle_impl::kernel_bundle_impl().
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::getSYCLDeviceImages | ( | const context & | Ctx, |
const std::vector< device > & | Devs, | ||
const DevImgSelectorImpl & | Selector, | ||
bundle_state | TargetState | ||
) |
Definition at line 2135 of file program_manager.cpp.
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::getSYCLDeviceImages | ( | const context & | Ctx, |
const std::vector< device > & | Devs, | ||
const std::vector< kernel_id > & | KernelIDs, | ||
bundle_state | TargetState | ||
) |
Definition at line 2154 of file program_manager.cpp.
References sycl::_V1::kernel_argument, and sycl::_V1::make_error_code().
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::getSYCLDeviceImagesWithCompatibleState | ( | const context & | Ctx, |
const std::vector< device > & | Devs, | ||
bundle_state | TargetState, | ||
const std::vector< kernel_id > & | KernelIDs = {} |
||
) |
Definition at line 1920 of file program_manager.cpp.
References any_of(), getRawDeviceImages(), sycl::_V1::invalid, and sycl::_V1::make_error_code().
kernel_id sycl::_V1::detail::ProgramManager::getSYCLKernelID | ( | const std::string & | KernelName | ) |
Definition at line 1766 of file program_manager.cpp.
References sycl::_V1::make_error_code(), and sycl::_V1::runtime.
Referenced by sycl::_V1::detail::enqueueImpCommandBufferKernel(), sycl::_V1::detail::enqueueImpKernel(), and sycl::_V1::detail::retrieveKernelBinary().
bool sycl::_V1::detail::ProgramManager::hasCompatibleImage | ( | const device & | Dev | ) |
Definition at line 1777 of file program_manager.cpp.
References any_of().
|
inline |
Definition at line 294 of file program_manager.hpp.
Referenced by sycl::_V1::detail::pi::initializePlugins().
bool sycl::_V1::detail::ProgramManager::kernelUsesAssert | ( | const std::string & | KernelName | ) | const |
Definition at line 1499 of file program_manager.cpp.
Referenced by sycl::_V1::detail::queue_impl::submit_impl().
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::link | ( | const device_image_plain & | DeviceImages, |
const std::vector< device > & | Devs, | ||
const property_list & | PropList | ||
) |
Definition at line 2251 of file program_manager.cpp.
References sycl::_V1::detail::appendLinkEnvironmentVariablesThatAppend(), sycl::_V1::detail::appendLinkOptionsFromImage(), sycl::_V1::detail::applyLinkOptionsFromEnvironment(), sycl::_V1::detail::device_image_impl::SpecConstDescT::BlobOffset, sycl::_V1::build, sycl::_V1::executable, sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), piProgramLink(), and sycl::_V1::detail::set_pi_error().