Skip to content

Commit 79d3d86

Browse files
Bring back the target check
1 parent 5c2402a commit 79d3d86

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

sycl/source/detail/program_manager/program_manager.cpp

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3381,9 +3381,30 @@ bool doesImageTargetMatchDevice(const RTDeviceBinaryImage &Img,
33813381
std::find_if(PropRange.begin(), PropRange.end(), [&](const auto &Prop) {
33823382
return Prop->Name == std::string_view("compile_target");
33833383
});
3384-
// Device image has no compile_target property, so it is JIT compiled.
3384+
// Device image has no compile_target property, check target.
33853385
if (PropIt == PropRange.end()) {
3386-
return true;
3386+
sycl::backend BE = Dev.get_backend();
3387+
const char *Target = Img.getRawData().DeviceTargetSpec;
3388+
if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_SPIRV64) == 0) {
3389+
return (BE == sycl::backend::opencl ||
3390+
BE == sycl::backend::ext_oneapi_level_zero);
3391+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_SPIRV64_X86_64) ==
3392+
0) {
3393+
return Dev.is_cpu();
3394+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_SPIRV64_GEN) == 0) {
3395+
return Dev.is_gpu() && (BE == sycl::backend::opencl ||
3396+
BE == sycl::backend::ext_oneapi_level_zero);
3397+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_SPIRV64_FPGA) == 0) {
3398+
return Dev.is_accelerator();
3399+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_NVPTX64) == 0) {
3400+
return BE == sycl::backend::ext_oneapi_cuda;
3401+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_AMDGCN) == 0) {
3402+
return BE == sycl::backend::ext_oneapi_hip;
3403+
} else if (strcmp(Target, __SYCL_DEVICE_BINARY_TARGET_NATIVE_CPU) == 0) {
3404+
return BE == sycl::backend::ext_oneapi_native_cpu;
3405+
}
3406+
assert(false);
3407+
return false;
33873408
}
33883409

33893410
// Device image has the compile_target property, so it is AOT compiled for

0 commit comments

Comments
 (0)