@@ -415,20 +415,15 @@ class kernel_bundle_impl {
415
415
416
416
std::vector<const uint8_t *> Binaries;
417
417
std::vector<size_t > Lengths;
418
- std::vector<std::vector<std::vector<char >>> PersistentBinaries;
419
- for (size_t i = 0 ; i < Devices.size (); i++) {
420
- std::vector<std::vector<char >> BinProg =
421
- PersistentDeviceCodeCache::getCompiledKernelFromDisc (
422
- Devices[i], UserArgs, SourceStr);
423
-
424
- // exit if any device binary is missing
425
- if (BinProg.empty ()) {
426
- return false ;
427
- }
428
- PersistentBinaries.push_back (BinProg);
429
-
430
- Binaries.push_back ((uint8_t *)(PersistentBinaries[i][0 ].data ()));
431
- Lengths.push_back (PersistentBinaries[i][0 ].size ());
418
+ std::vector<std::vector<char >> BinProgs =
419
+ PersistentDeviceCodeCache::getCompiledKernelFromDisc (Devices, UserArgs,
420
+ SourceStr);
421
+ if (BinProgs.empty ()) {
422
+ return false ;
423
+ }
424
+ for (auto &BinProg : BinProgs) {
425
+ Binaries.push_back ((uint8_t *)(BinProg.data ()));
426
+ Lengths.push_back (BinProg.size ());
432
427
}
433
428
434
429
ur_program_properties_t Properties = {};
@@ -564,11 +559,9 @@ class kernel_bundle_impl {
564
559
// If caching enabled and kernel not fetched from cache, cache.
565
560
if (PersistentDeviceCodeCache::isEnabled () && !FetchedFromCache &&
566
561
SourceStrPtr) {
567
- for (const auto &Device : Devices) {
568
- PersistentDeviceCodeCache::putCompiledKernelToDisc (
569
- Device, syclex::detail::userArgsAsString (BuildOptions),
570
- *SourceStrPtr, UrProgram);
571
- }
562
+ PersistentDeviceCodeCache::putCompiledKernelToDisc (
563
+ Devices, syclex::detail::userArgsAsString (BuildOptions),
564
+ *SourceStrPtr, UrProgram);
572
565
}
573
566
574
567
return std::make_shared<kernel_bundle_impl>(MContext, MDevices, DevImg,
0 commit comments