SWDEV-223674 - Return hipErrorNoBinaryForGpu in case particular binary is not found in clang offload bundler.

Change-Id: Iaa08fcdc8ecb719edd9f81e4a1456ea642f362f4
Αυτή η υποβολή περιλαμβάνεται σε:
Karthik Jayaprakash committed 2020-02-19 20:01:36 -05:00
1 γονέας 13bf30569e
υποβολή 4b2ff6ec91
2 files changed
+11 -7

No files matched your search

@@ -118,7 +118,7 @@ hipError_t hipModuleLoadDataEx(hipModule_t *module, const void *image,
HIP_RETURN(ihipModuleLoadData(module, image));
}
extern bool __hipExtractCodeObjectFromFatBinary(const void* data,
extern hipError_t __hipExtractCodeObjectFromFatBinary(const void* data,
const std::vector<const char*>& devices,
std::vector<std::pair<const void*, size_t>>& code_objs);
@@ -180,8 +180,12 @@ bool ihipModuleRegisterGlobal(amd::Program* program, hipModule_t* module) {
hipError_t ihipModuleLoadData(hipModule_t *module, const void *image)
{
std::vector<std::pair<const void*, size_t>> code_objs;
if (__hipExtractCodeObjectFromFatBinary(image, {hip::getCurrentDevice()->devices()[0]->info().name_}, code_objs))
hipError_t code_obj_err = __hipExtractCodeObjectFromFatBinary(image, {hip::getCurrentDevice()->devices()[0]->info().name_}, code_objs);
if (code_obj_err == hipSuccess) {
image = code_objs[0].first;
} else if(code_obj_err == hipErrorNoBinaryForGpu) {
return code_obj_err;
}
amd::Program* program = new amd::Program(*hip::getCurrentDevice()->asContext());
if (program == NULL) {