SWDEV-277566 - HSAIL: put back the original setKernels logic for now

In HSAIL path, kernel akc info is obtained after code object
loading, and kernel signature creation requires the akc info
when one of the kernel argument is a reference object.

Change-Id: I9cdb1dbf2c72f4620b0b6e46a88402a2473c3e97


[ROCm/clr commit: 8cac880779]
Tá an tiomantas seo le fáil i:
Jason Tang
2021-05-20 10:58:07 -04:00
tuismitheoir 7dadaa1ccb
tiomantas 5406cc5b42
D'athraigh 3 comhad le 49 breiseanna agus 60 scriosta
+19 -30
Féach ar an gComhad
@@ -85,14 +85,29 @@ bool HSAILKernel::setKernelCode(amd::hsa::loader::Symbol* sym, amd_kernel_code_t
return true;
}
bool HSAILKernel::aqlCreateHWInfo() {
HSAILKernel::HSAILKernel(std::string name, HSAILProgram* prog, bool internalKernel)
: device::Kernel(prog->device(), name, *prog),
index_(0),
code_(0),
codeSize_(0) {
flags_.hsa_ = true;
flags_.internalKernel_ = internalKernel;
}
HSAILKernel::~HSAILKernel() {}
bool HSAILKernel::postLoad() {
return true;
}
bool HSAILKernel::init() {
#if defined(WITH_COMPILER_LIB)
hsa_agent_t agent = {amd::Device::toHandle(&(device()))};
std::string openclKernelName = device::Kernel::openclMangledName(name());
amd::hsa::loader::Symbol* sym = prog().getSymbol(openclKernelName.c_str(), &agent);
std::string openClKernelName = openclMangledName(name());
amd::hsa::loader::Symbol* sym = prog().getSymbol(openClKernelName.c_str(), &agent);
if (!sym) {
LogPrintfError("Error: Getting kernel ISA code symbol %s from AMD HSA Code Object failed.\n",
openclKernelName.c_str());
openClKernelName.c_str());
return false;
}
@@ -115,34 +130,8 @@ bool HSAILKernel::aqlCreateHWInfo() {
workgroupGroupSegmentByteSize_ = workGroupInfo_.usedLDSSize_;
kernargSegmentByteSize_ = akc->kernarg_segment_byte_size;
#endif // defined(WITH_COMPILER_LIB)
return true;
}
HSAILKernel::HSAILKernel(std::string name, HSAILProgram* prog, bool internalKernel)
: device::Kernel(prog->device(), name, *prog),
index_(0),
code_(0),
codeSize_(0) {
flags_.hsa_ = true;
flags_.internalKernel_ = internalKernel;
}
HSAILKernel::~HSAILKernel() {}
bool HSAILKernel::postLoad() {
#if defined(WITH_COMPILER_LIB)
if (!aqlCreateHWInfo()) {
return false;
}
#endif // defined(WITH_COMPILER_LIB)
return true;
}
bool HSAILKernel::init() {
#if defined(WITH_COMPILER_LIB)
acl_error error = ACL_SUCCESS;
std::string openClKernelName = openclMangledName(name());
// Pull out metadata from the ELF
size_t sizeOfArgList;