Skip to content

Commit 0e9c898

Browse files
authored
[SYCL] Fix assert when calling get_binaries() on host (#1944)
Signed-off-by: Alexander Flegontov <[email protected]>
1 parent 75b3dc2 commit 0e9c898

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

sycl/source/detail/program_impl.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -304,23 +304,24 @@ kernel program_impl::get_kernel(string_class KernelName,
304304

305305
vector_class<vector_class<char>> program_impl::get_binaries() const {
306306
throw_if_state_is(program_state::none);
307+
if (is_host())
308+
return {};
309+
307310
vector_class<vector_class<char>> Result;
308311
const detail::plugin &Plugin = getPlugin();
309-
if (!is_host()) {
310-
vector_class<size_t> BinarySizes(MDevices.size());
311-
Plugin.call<PiApiKind::piProgramGetInfo>(
312-
MProgram, PI_PROGRAM_INFO_BINARY_SIZES,
313-
sizeof(size_t) * BinarySizes.size(), BinarySizes.data(), nullptr);
314-
315-
vector_class<char *> Pointers;
316-
for (size_t I = 0; I < BinarySizes.size(); ++I) {
317-
Result.emplace_back(BinarySizes[I]);
318-
Pointers.push_back(Result[I].data());
319-
}
320-
Plugin.call<PiApiKind::piProgramGetInfo>(MProgram, PI_PROGRAM_INFO_BINARIES,
321-
sizeof(char *) * Pointers.size(),
322-
Pointers.data(), nullptr);
312+
vector_class<size_t> BinarySizes(MDevices.size());
313+
Plugin.call<PiApiKind::piProgramGetInfo>(
314+
MProgram, PI_PROGRAM_INFO_BINARY_SIZES,
315+
sizeof(size_t) * BinarySizes.size(), BinarySizes.data(), nullptr);
316+
317+
vector_class<char *> Pointers;
318+
for (size_t I = 0; I < BinarySizes.size(); ++I) {
319+
Result.emplace_back(BinarySizes[I]);
320+
Pointers.push_back(Result[I].data());
323321
}
322+
Plugin.call<PiApiKind::piProgramGetInfo>(MProgram, PI_PROGRAM_INFO_BINARIES,
323+
sizeof(char *) * Pointers.size(),
324+
Pointers.data(), nullptr);
324325
return Result;
325326
}
326327

0 commit comments

Comments
 (0)