P4 to Git Change 1139843 by yaxunl@yaxunl_stg_win50 on 2015/04/10 21:13:05
ECR #304775 - Fix bug for loading SPIR 2.0 binary. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#176 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#191 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.hpp#58 edit
Este cometimento está contido em:
@@ -1052,7 +1052,8 @@ Program::initClBinary(char* binaryIn, size_t size)
|
||||
aclBinaryOptions binOpts = {0};
|
||||
binOpts.struct_size = sizeof(binOpts);
|
||||
binOpts.elfclass
|
||||
= (info().arch_id == aclX64 || info().arch_id == aclAMDIL64)
|
||||
= (info().arch_id == aclX64 || info().arch_id == aclAMDIL64 ||
|
||||
info().arch_id == aclHSAIL64)
|
||||
? ELFCLASS64 : ELFCLASS32;
|
||||
binOpts.bitness = ELFDATA2LSB;
|
||||
binOpts.alloc = &::malloc;
|
||||
|
||||
@@ -2298,5 +2298,20 @@ HSAILProgram::fillResListWithKernels(
|
||||
}
|
||||
}
|
||||
|
||||
const aclTargetInfo &
|
||||
HSAILProgram::info(const char * str) {
|
||||
acl_error err;
|
||||
std::string arch = GPU_TARGET_INFO_ARCH;
|
||||
if (dev().settings().use64BitPtr_) {
|
||||
arch += "64";
|
||||
}
|
||||
info_ = aclGetTargetInfo(arch.c_str(), ( str && str[0] == '\0' ?
|
||||
dev().hwInfo()->targetName_ : str ), &err);
|
||||
if (err != ACL_SUCCESS) {
|
||||
LogWarning("aclGetTargetInfo failed");
|
||||
}
|
||||
return info_;
|
||||
}
|
||||
|
||||
|
||||
} // namespace gpu
|
||||
|
||||
@@ -460,9 +460,7 @@ protected:
|
||||
//! Release the Binary
|
||||
virtual void releaseClBinary();
|
||||
|
||||
virtual const aclTargetInfo & info(const char * str = "") {
|
||||
return info_;
|
||||
}
|
||||
virtual const aclTargetInfo & info(const char * str = "");
|
||||
|
||||
virtual bool isElf(const char* bin) const {
|
||||
return amd::isElfMagic(bin);
|
||||
|
||||
Criar uma nova questão referindo esta
Bloquear um utilizador