#include <detail/program_manager/program_manager.hpp>
Public Types | |
using | KernelArgMask = std::vector< bool > |
Public Member Functions | |
RTDeviceBinaryImage & | getDeviceImage (OSModuleHandle M, const std::string &KernelName, const context &Context, const device &Device, bool JITCompilationIsRequired=false) |
RTDeviceBinaryImage & | getDeviceImage (OSModuleHandle M, KernelSetId KSId, const context &Context, const device &Device, bool JITCompilationIsRequired=false) |
RT::PiProgram | createPIProgram (const RTDeviceBinaryImage &Img, const context &Context, const device &Device) |
std::pair< RT::PiProgram, bool > | getOrCreatePIProgram (const RTDeviceBinaryImage &Img, 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... | |
RT::PiProgram | getBuiltPIProgram (OSModuleHandle M, const ContextImplPtr &ContextImpl, const DeviceImplPtr &DeviceImpl, const std::string &KernelName, const program_impl *Prg=nullptr, bool JITCompilationIsRequired=false) |
Builds or retrieves from cache a program defining the kernel with given name. More... | |
RT::PiProgram | getBuiltPIProgram (OSModuleHandle M, const context &Context, const device &Device, const std::string &KernelName, const property_list &PropList, bool JITCompilationIsRequired=false) |
std::tuple< RT::PiKernel, std::mutex *, RT::PiProgram > | getOrCreateKernel (OSModuleHandle M, const ContextImplPtr &ContextImpl, const DeviceImplPtr &DeviceImpl, const std::string &KernelName, const program_impl *Prg) |
RT::PiProgram | getPiProgramFromPiKernel (RT::PiKernel Kernel, const ContextImplPtr Context) |
void | addImages (pi_device_binaries DeviceImages) |
void | debugPrintBinaryImages () const |
void | flushSpecConstants (const program_impl &Prg, pi::PiProgram NativePrg=nullptr, const RTDeviceBinaryImage *Img=nullptr) |
Resolves given program to a device binary image and requests the program to flush constants the image depends on. More... | |
uint32_t | getDeviceLibReqMask (const RTDeviceBinaryImage &Img) |
KernelArgMask | getEliminatedKernelArgMask (OSModuleHandle M, 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) |
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 std::vector< 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::pair< RT::PiKernel, std::mutex * > | getOrCreateKernel (const context &Context, const std::string &KernelName, const property_list &PropList, RT::PiProgram Program) |
ProgramManager () | |
~ProgramManager ()=default | |
bool | kernelUsesAssert (OSModuleHandle M, const std::string &KernelName) const |
std::set< RTDeviceBinaryImage * > | getRawDeviceImages (const std::vector< kernel_id > &KernelIDs) |
Static Public Member Functions | |
static ProgramManager & | getInstance () |
static std::string | getProgramBuildLog (const RT::PiProgram &Program, const ContextImplPtr Context) |
Definition at line 81 of file program_manager.hpp.
using sycl::_V1::detail::ProgramManager::KernelArgMask = std::vector<bool> |
Definition at line 84 of file program_manager.hpp.
sycl::_V1::detail::ProgramManager::ProgramManager | ( | ) |
Definition at line 890 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::getFormatStr(), sycl::_V1::detail::SpvFileKSId, and sycl::_V1::detail::UseSpvEnv().
|
default |
void sycl::_V1::detail::ProgramManager::addImages | ( | pi_device_binaries | DeviceImages | ) |
Definition at line 1177 of file program_manager.cpp.
References any_of(), sycl::_V1::detail::DeviceBinaryProperty::asByteArray(), 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_offload_entry_struct::name, and pi_device_binaries_struct::NumDeviceBinaries.
void sycl::_V1::detail::ProgramManager::addOrInitDeviceGlobalEntry | ( | const void * | DeviceGlobalPtr, |
const char * | UniqueId | ||
) |
Definition at line 1589 of file program_manager.cpp.
void sycl::_V1::detail::ProgramManager::bringSYCLDeviceImagesToState | ( | std::vector< device_image_plain > & | DeviceImages, |
bundle_state | TargetState | ||
) |
Definition at line 1813 of file program_manager.cpp.
References sycl::_V1::build(), sycl::_V1::compile(), sycl::_V1::detail::getSyclObjImpl(), and sycl::_V1::link().
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 2113 of file program_manager.cpp.
References sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::detail::applyOptionsFromImage(), sycl::_V1::build(), sycl::_V1::detail::plugin::call(), sycl::_V1::detail::emitBuiltProgramInfo(), sycl::_V1::detail::KernelProgramCache::getOrInsertProgram(), sycl::_V1::detail::plugin::getPiPlugin(), sycl::_V1::detail::getRawSyclObjImpl(), sycl::_V1::detail::getSyclObjImpl(), PI_DEVICE_BINARY_TYPE_SPIRV, piProgramRetain(), and sycl::_V1::detail::setSpecializationConstants().
Referenced by 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 1944 of file program_manager.cpp.
References sycl::_V1::detail::appendCompileOptionsFromImage(), sycl::_V1::detail::applyCompileOptionsFromEnvironment(), sycl::_V1::build(), sycl::_V1::detail::plugin::call_nocheck(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), PI_DEVICE_BINARY_TYPE_SPIRV, piProgramCompile(), and sycl::_V1::detail::setSpecializationConstants().
RT::PiProgram sycl::_V1::detail::ProgramManager::createPIProgram | ( | const RTDeviceBinaryImage & | Img, |
const context & | Context, | ||
const device & | Device | ||
) |
Definition at line 277 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::feature_not_supported, 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::getRawSyclObjImpl(), sycl::_V1::detail::RTDeviceBinaryImage::getSize(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::detail::isDeviceBinaryTypeSupported(), PI_DEVICE_BINARY_TYPE_NONE, and PI_DEVICE_BINARY_TYPE_SPIRV.
void sycl::_V1::detail::ProgramManager::debugPrintBinaryImages | ( | ) | const |
Definition at line 1350 of file program_manager.cpp.
References std::cerr.
void sycl::_V1::detail::ProgramManager::flushSpecConstants | ( | const program_impl & | Prg, |
pi::PiProgram | NativePrg = nullptr , |
||
const RTDeviceBinaryImage * | Img = nullptr |
||
) |
Resolves given program to a device binary image and requests the program to flush constants the image depends on.
Prg | the program object to get spec constant settings from. Passing program_impl by raw reference is OK, since it is not captured anywhere once the function returns. |
NativePrg | the native program, target for spec constant setting; if not null then overrides the native program in Prg |
Img | A source of the information about which constants need setting and symboling->integer spec constant ID mapping. If not null, overrides native program->binary image binding maintained by the program manager. |
Definition at line 1418 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::program_impl::flush_spec_constants(), sycl::_V1::detail::program_impl::get(), sycl::_V1::detail::program_impl::getHandleRef(), sycl::_V1::detail::RTDeviceBinaryImage::getRawData(), sycl::_V1::detail::program_impl::hasSetSpecConstants(), and sycl::_V1::detail::RTDeviceBinaryImage::supportsSpecConstants().
std::vector< kernel_id > sycl::_V1::detail::ProgramManager::getAllSYCLKernelIDs | ( | ) |
Definition at line 1565 of file program_manager.cpp.
kernel_id sycl::_V1::detail::ProgramManager::getBuiltInKernelID | ( | const std::string & | KernelName | ) |
Definition at line 1576 of file program_manager.cpp.
RT::PiProgram sycl::_V1::detail::ProgramManager::getBuiltPIProgram | ( | OSModuleHandle | M, |
const context & | Context, | ||
const device & | Device, | ||
const std::string & | KernelName, | ||
const property_list & | PropList, | ||
bool | JITCompilationIsRequired = false |
||
) |
RT::PiProgram sycl::_V1::detail::ProgramManager::getBuiltPIProgram | ( | OSModuleHandle | M, |
const ContextImplPtr & | ContextImpl, | ||
const DeviceImplPtr & | DeviceImpl, | ||
const std::string & | KernelName, | ||
const program_impl * | Prg = nullptr , |
||
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 |
Prg | provides build context information, such as current specialization constants settings; can be nullptr. Passing as a raw pointer is OK, since it is not captured anywhere once the function returns. |
JITCompilationIsRequired | If JITCompilationIsRequired is true add a check that kernel is compiled, otherwise don't add the check. |
Definition at line 486 of file program_manager.cpp.
References sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::detail::applyOptionsFromImage(), sycl::_V1::detail::DeviceBinaryProperty::asByteArray(), sycl::_V1::build(), sycl::_V1::detail::emitBuiltProgramInfo(), sycl::_V1::detail::enableITTAnnotationsIfNeeded(), sycl::_V1::detail::RTDeviceBinaryImage::get(), sycl::_V1::detail::program_impl::get_build_options(), sycl::_V1::detail::RTDeviceBinaryImage::getDeviceRequirements(), sycl::_V1::detail::RTDeviceBinaryImage::getFormat(), sycl::_V1::detail::RTDeviceBinaryImage::getImageID(), sycl::_V1::detail::KernelProgramCache::getOrInsertProgram(), sycl::_V1::detail::plugin::getPiPlugin(), sycl::_V1::detail::getRawSyclObjImpl(), sycl::_V1::detail::getSyclObjImpl(), PI_DEVICE_BINARY_TYPE_SPIRV, PI_DEVICE_INFO_BUILD_ON_SUBDEVICE, PI_TRUE, piDeviceGetInfo(), sycl::_V1::detail::ByteArray::size(), sycl::_V1::detail::program_impl::stableSerializeSpecConstRegistry(), and sycl::_V1::detail::RTDeviceBinaryImage::supportsSpecConstants().
Referenced by sycl::_V1::detail::program_impl::build_with_kernel_name().
std::vector< DeviceGlobalMapEntry * > sycl::_V1::detail::ProgramManager::getDeviceGlobalEntries | ( | const std::vector< std::string > & | UniqueIds, |
bool | ExcludeDeviceImageScopeDecorated = false |
||
) |
Definition at line 1628 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 1621 of file program_manager.cpp.
Referenced by sycl::_V1::detail::context_impl::~context_impl().
RTDeviceBinaryImage & sycl::_V1::detail::ProgramManager::getDeviceImage | ( | OSModuleHandle | M, |
const std::string & | KernelName, | ||
const context & | Context, | ||
const device & | Device, | ||
bool | JITCompilationIsRequired = false |
||
) |
Definition at line 109 of file program_manager.cpp.
References std::cerr, sycl::_V1::detail::DbgProgMgr, and sycl::_V1::detail::getRawSyclObjImpl().
Referenced by sycl::_V1::detail::getOrBuildProgramForDeviceGlobal().
RTDeviceBinaryImage & sycl::_V1::detail::ProgramManager::getDeviceImage | ( | OSModuleHandle | M, |
KernelSetId | KSId, | ||
const context & | Context, | ||
const device & | Device, | ||
bool | JITCompilationIsRequired = false |
||
) |
Definition at line 931 of file program_manager.cpp.
References __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_FPGA, __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_GEN, __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_X86_64, std::cerr, sycl::_V1::detail::DbgProgMgr, pi_device_binary_struct::DeviceTargetSpec, sycl::_V1::feature_not_supported, sycl::_V1::detail::RTDeviceBinaryImage::get(), sycl::_V1::detail::RTDeviceBinaryImage::getRawData(), sycl::_V1::detail::getRawSyclObjImpl(), sycl::_V1::detail::getSyclObjImpl(), piextDeviceSelectBinary(), and sycl::_V1::detail::RTDeviceBinaryImage::print().
device_image_plain sycl::_V1::detail::ProgramManager::getDeviceImageFromBinaryImage | ( | RTDeviceBinaryImage * | BinImage, |
const context & | Ctx, | ||
const device & | Dev | ||
) |
Definition at line 1646 of file program_manager.cpp.
References sycl::_V1::detail::compatibleWithDevice(), and sycl::_V1::detail::getBinImageState().
Referenced by sycl::_V1::detail::getOrBuildProgramForDeviceGlobal().
uint32_t sycl::_V1::detail::ProgramManager::getDeviceLibReqMask | ( | const RTDeviceBinaryImage & | Img | ) |
Definition at line 1460 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().
ProgramManager::KernelArgMask sycl::_V1::detail::ProgramManager::getEliminatedKernelArgMask | ( | OSModuleHandle | M, |
pi::PiProgram | NativePrg, | ||
const std::string & | KernelName | ||
) |
Returns the mask for eliminated kernel arguments for the requested kernel within the native program.
M | identifies the OS module the kernel comes from (multiple OS modules may have kernels with the same name). |
NativePrg | the PI program associated with the kernel. |
KernelName | the name of the kernel. |
Definition at line 1471 of file program_manager.cpp.
Referenced by sycl::_V1::detail::ExecCGCommand::emitInstrumentationData(), and sycl::_V1::detail::enqueueImpKernel().
|
static |
Definition at line 65 of file program_manager.cpp.
Referenced by sycl::_V1::detail::program_impl::build_with_kernel_name(), sycl::_V1::detail::ExecCGCommand::emitInstrumentationData(), sycl::_V1::detail::enqueueImpKernel(), sycl::_V1::detail::context_impl::initializeDeviceGlobals(), and sycl::_V1::detail::context_impl::~context_impl().
std::pair< RT::PiKernel, std::mutex * > sycl::_V1::detail::ProgramManager::getOrCreateKernel | ( | const context & | Context, |
const std::string & | KernelName, | ||
const property_list & | PropList, | ||
RT::PiProgram | Program | ||
) |
Definition at line 2254 of file program_manager.cpp.
References sycl::_V1::detail::plugin::call(), sycl::_V1::detail::KernelProgramCache::getOrInsertKernel(), sycl::_V1::detail::getSyclObjImpl(), PI_TRUE, PI_USM_INDIRECT_ACCESS, piKernelCreate(), and piKernelSetExecInfo().
std::tuple< RT::PiKernel, std::mutex *, RT::PiProgram > sycl::_V1::detail::ProgramManager::getOrCreateKernel | ( | OSModuleHandle | M, |
const ContextImplPtr & | ContextImpl, | ||
const DeviceImplPtr & | DeviceImpl, | ||
const std::string & | KernelName, | ||
const program_impl * | Prg | ||
) |
Definition at line 646 of file program_manager.cpp.
References sycl::_V1::detail::applyOptionsFromEnvironment(), sycl::_V1::detail::plugin::call(), std::cerr, sycl::_V1::detail::DbgProgMgr, sycl::_V1::detail::program_impl::get_build_options(), sycl::_V1::detail::KernelProgramCache::getOrInsertKernel(), sycl::_V1::detail::make_tuple(), PI_TRUE, PI_USM_INDIRECT_ACCESS, piKernelCreate(), piKernelSetExecInfo(), sycl::_V1::detail::KernelProgramCache::saveKernel(), sycl::_V1::detail::program_impl::stableSerializeSpecConstRegistry(), and sycl::_V1::detail::KernelProgramCache::tryToGetKernelFast().
Referenced by sycl::_V1::detail::ExecCGCommand::emitInstrumentationData(), and sycl::_V1::detail::enqueueImpKernel().
std::pair< RT::PiProgram, bool > sycl::_V1::detail::ProgramManager::getOrCreatePIProgram | ( | const RTDeviceBinaryImage & | Img, |
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 to find a cached device code binary for or create the PI program with. |
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 451 of file program_manager.cpp.
References sycl::_V1::detail::RTDeviceBinaryImage::PropertyRange::begin(), sycl::_V1::detail::createBinaryProgram(), sycl::_V1::detail::RTDeviceBinaryImage::getProgramMetadata(), and sycl::_V1::detail::getSyclObjImpl().
RT::PiProgram sycl::_V1::detail::ProgramManager::getPiProgramFromPiKernel | ( | RT::PiKernel | Kernel, |
const ContextImplPtr | Context | ||
) |
Definition at line 709 of file program_manager.cpp.
References sycl::_V1::detail::plugin::call(), PI_KERNEL_INFO_PROGRAM, and piKernelGetInfo().
|
static |
Definition at line 718 of file program_manager.cpp.
References sycl::_V1::detail::plugin::call(), PI_DEVICE_INFO_NAME, PI_PROGRAM_BUILD_INFO_LOG, PI_PROGRAM_INFO_DEVICES, piDeviceGetInfo(), piProgramGetBuildInfo(), and piProgramGetInfo().
std::set< RTDeviceBinaryImage * > sycl::_V1::detail::ProgramManager::getRawDeviceImages | ( | const std::vector< kernel_id > & | KernelIDs | ) |
Definition at line 1609 of file program_manager.cpp.
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::getSYCLDeviceImages | ( | const context & | Ctx, |
const std::vector< device > & | Devs, | ||
bundle_state | State | ||
) |
Definition at line 1861 of file program_manager.cpp.
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 1872 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 1891 of file program_manager.cpp.
References 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 1667 of file program_manager.cpp.
References any_of(), and sycl::_V1::make_error_code().
kernel_id sycl::_V1::detail::ProgramManager::getSYCLKernelID | ( | const std::string & | KernelName | ) |
Definition at line 1544 of file program_manager.cpp.
Referenced by sycl::_V1::detail::ExecCGCommand::emitInstrumentationData(), and sycl::_V1::detail::enqueueImpKernel().
bool sycl::_V1::detail::ProgramManager::hasCompatibleImage | ( | const device & | Dev | ) |
Definition at line 1555 of file program_manager.cpp.
References any_of().
bool sycl::_V1::detail::ProgramManager::kernelUsesAssert | ( | OSModuleHandle | M, |
const std::string & | KernelName | ||
) | const |
Definition at line 1171 of file program_manager.cpp.
References sycl::_V1::detail::ByteArray::end().
std::vector< device_image_plain > sycl::_V1::detail::ProgramManager::link | ( | const std::vector< device_image_plain > & | DeviceImages, |
const std::vector< device > & | Devs, | ||
const property_list & | PropList | ||
) |
Definition at line 2007 of file program_manager.cpp.
References sycl::_V1::detail::appendLinkOptionsFromImage(), sycl::_V1::detail::applyLinkOptionsFromEnvironment(), sycl::_V1::detail::device_image_impl::SpecConstDescT::BlobOffset, sycl::_V1::build(), sycl::_V1::detail::plugin::call_nocheck(), sycl::_V1::detail::getSyclObjImpl(), sycl::_V1::make_error_code(), piProgramLink(), and sycl::_V1::detail::plugin::reportPiError().