Skip to content

Commit ad92a7e

Browse files
committed
Count relevant images and reserve
Signed-off-by: Steffen Larsen <[email protected]>
1 parent ac2115d commit ad92a7e

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

sycl/source/detail/kernel_bundle_impl.hpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -497,12 +497,15 @@ class kernel_bundle_impl {
497497
bool isInterop() const { return MIsInterop; }
498498

499499
void filterImages(const kernel_id &KernelId) {
500+
auto ImgHasKernelPred = [&KernelId](const device_image_plain &Img) {
501+
return Img.has_kernel(KernelId);
502+
};
503+
const size_t NumRequiredDevImgs = std::count_if(
504+
MDeviceImages.begin(), MDeviceImages.end(), ImgHasKernelPred);
500505
std::vector<device_image_plain> FilteredDeviceImages;
506+
FilteredDeviceImages.reserve(NumRequiredDevImgs);
501507
std::copy_if(MDeviceImages.begin(), MDeviceImages.end(),
502-
std::back_inserter(FilteredDeviceImages),
503-
[&KernelId](const device_image_plain &Img) {
504-
return Img.has_kernel(KernelId);
505-
});
508+
std::back_inserter(FilteredDeviceImages), ImgHasKernelPred);
506509
MDeviceImages = FilteredDeviceImages;
507510
}
508511

0 commit comments

Comments
 (0)