24 inline namespace _V1 {
44 const std::string FileName;
46 static const char LockSuffix[];
52 static bool isLocked(
const std::string &Path) {
100 static void writeBinaryDataToFile(
const std::string &FileName,
101 const std::vector<std::vector<char>> &Data);
106 static std::vector<std::vector<char>>
107 readBinaryDataFromFile(
const std::string &FileName);
113 static void writeSourceItem(
const std::string &FileName,
const device &Device,
116 const std::string &BuildOptionsString);
120 static bool isCacheItemSrcEqual(
const std::string &FileName,
124 const std::string &BuildOptionsString);
128 static bool isEnabled();
131 static std::string getRootDir();
134 static std::string getDeviceIDString(
const device &Device);
142 template <ConfigID Config>
143 static unsigned long getNumParam(
unsigned long Default) {
147 return std::stol(Value);
148 }
catch (std::exception
const &) {
150 std::to_string(Default));
156 static constexpr
unsigned long DEFAULT_MIN_DEVICE_IMAGE_SIZE = 0;
159 static constexpr
unsigned long DEFAULT_MAX_DEVICE_IMAGE_SIZE =
168 const std::string &BuildOptionsString);
174 static std::vector<std::vector<char>>
177 const std::string &BuildOptionsString);
184 const std::string &BuildOptionsString,
188 static void trace(
const std::string &msg) {
191 std::cerr <<
"*** Code caching: " << msg << std::endl;
static bool isLocked(const std::string &Path)
LockCacheItem(const std::string &Path)
static bool isPathPresent(const std::string &Path)
Checks if specified path is present.
static std::vector< std::vector< char > > getItemFromDisc(const device &Device, const RTDeviceBinaryImage &Img, const SerializedObj &SpecConsts, const std::string &BuildOptionsString)
static void trace(const std::string &msg)
static std::string getCacheItemPath(const device &Device, const RTDeviceBinaryImage &Img, const SerializedObj &SpecConsts, const std::string &BuildOptionsString)
static void putItemToDisc(const device &Device, const RTDeviceBinaryImage &Img, const SerializedObj &SpecConsts, const std::string &BuildOptionsString, const sycl::detail::pi::PiProgram &NativePrg)
static const char * get()
The SYCL device class encapsulates a single SYCL device on which kernels may be executed.
__SYCL_EXTERN_STREAM_ATTRS ostream cerr
Linked to standard error (unbuffered)
std::string getDirName(const char *Path)
std::vector< unsigned char > SerializedObj
C++ wrapper of extern "C" PI interfaces.