SWDEV-241896 - Remove extern support in ROCclr/HIP since compiler added Texture Reference support.
Change-Id: I2cf27e13a53860fe11e9245c9cbdcb8bd88a7872
This commit is contained in:
zatwierdzone przez
Karthik Jayaprakash
rodzic
40b432f992
commit
4071cf1a16
@@ -98,11 +98,6 @@ Program::Program(amd::Device& device, amd::Program& owner)
|
||||
Program::~Program() {
|
||||
clear();
|
||||
|
||||
/* Delete the undefined memory object */
|
||||
for (auto it = undef_mem_obj_.begin(); it != undef_mem_obj_.end(); ++it) {
|
||||
(*it)->release();
|
||||
}
|
||||
|
||||
if (isLC()) {
|
||||
#if defined(USE_COMGR_LIBRARY)
|
||||
for (auto const& kernelMeta : kernelMetadataMap_) {
|
||||
@@ -2606,77 +2601,4 @@ bool Program::getGlobalVarFromCodeObj(std::vector<std::string>* var_names) const
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Program::getUndefinedVarFromCodeObj(std::vector<std::string>* var_names) const {
|
||||
#if defined(USE_COMGR_LIBRARY)
|
||||
return getSymbolsFromCodeObj(var_names, AMD_COMGR_SYMBOL_TYPE_NOTYPE);
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Program::getUndefinedVarInfo(std::string var_name, void** var_addr, size_t* var_size) {
|
||||
if (owner()->varcallback != nullptr) {
|
||||
return owner()->varcallback(as_cl(owner()), var_name.c_str(), var_addr, var_size);
|
||||
} else {
|
||||
buildLog_ += "SVAR HIP Call back is not set \n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool Program::defineUndefinedVars() {
|
||||
size_t address = 0;
|
||||
size_t hsize = 0;
|
||||
void* dptr = nullptr;
|
||||
void* hptr = nullptr;
|
||||
device::Memory* dev_mem = nullptr;
|
||||
amd::Memory* amd_mem_obj = nullptr;
|
||||
std::vector<std::string> var_names;
|
||||
|
||||
if (!getUndefinedVarFromCodeObj(&var_names)) {
|
||||
DevLogError("Cannot get Undefined Var from Code Object \n");
|
||||
return false;
|
||||
}
|
||||
|
||||
for (auto it = var_names.begin(); it != var_names.end(); ++it) {
|
||||
if (!getUndefinedVarInfo(*it, &hptr, &hsize)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
amd_mem_obj = new (owner()->context()) amd::Buffer(const_cast<amd::Context&>(owner()->context()),
|
||||
CL_MEM_USE_HOST_PTR, hsize);
|
||||
if (amd_mem_obj == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!amd_mem_obj->create(hptr)) {
|
||||
LogError("[OCL] failed to create a svm hidden buffer!");
|
||||
amd_mem_obj->release();
|
||||
return false;
|
||||
}
|
||||
|
||||
undef_mem_obj_.push_back(amd_mem_obj);
|
||||
|
||||
dev_mem = amd_mem_obj->getDeviceMemory(device());
|
||||
if (dev_mem == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
dptr = reinterpret_cast<void*>(dev_mem->virtualAddress());
|
||||
if (dev_mem == nullptr) {
|
||||
LogError("[OCL] failed to create a mem object!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!defineGlobalVar(it->c_str(), dptr)) {
|
||||
LogError("[OCL] failed to define global var");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} /* namespace device*/
|
||||
|
||||
@@ -129,8 +129,6 @@ class Program : public amd::HeapObject {
|
||||
std::map<std::string, amd_comgr_metadata_node_t> kernelMetadataMap_; //!< Map of kernel metadata
|
||||
#endif
|
||||
|
||||
std::vector<amd::Memory*> undef_mem_obj_;
|
||||
|
||||
public:
|
||||
//! Construct a section.
|
||||
Program(amd::Device& device, amd::Program& owner);
|
||||
@@ -219,8 +217,6 @@ class Program : public amd::HeapObject {
|
||||
//! Global variables are a part of the code segment
|
||||
bool hasGlobalStores() const { return hasGlobalStores_; }
|
||||
|
||||
std::vector<amd::Memory*> getUndefMemObj() const { return undef_mem_obj_; }
|
||||
|
||||
#if defined(USE_COMGR_LIBRARY)
|
||||
amd_comgr_metadata_node_t metadata() const { return metadata_; }
|
||||
|
||||
|
||||
@@ -253,10 +253,6 @@ bool HSAILProgram::setKernels(amd::option::Options* options, void* binary, size_
|
||||
hsa_code_object_t code_object;
|
||||
code_object.handle = reinterpret_cast<uint64_t>(binary);
|
||||
|
||||
if (amd::IS_HIP) {
|
||||
defineUndefinedVars();
|
||||
}
|
||||
|
||||
hsa_status_t status = executable_->LoadCodeObject(agent, code_object, nullptr);
|
||||
if (status != HSA_STATUS_SUCCESS) {
|
||||
buildLog_ += "Error: AMD HSA Code Object loading failed.\n";
|
||||
@@ -751,10 +747,6 @@ bool LightningProgram::setKernels(amd::option::Options* options, void* binary, s
|
||||
hsa_code_object_t code_object;
|
||||
code_object.handle = reinterpret_cast<uint64_t>(binary);
|
||||
|
||||
if (amd::IS_HIP) {
|
||||
defineUndefinedVars();
|
||||
}
|
||||
|
||||
hsa_status_t status = executable_->LoadCodeObject(agent, code_object, nullptr);
|
||||
if (status != HSA_STATUS_SUCCESS) {
|
||||
buildLog_ += "Error: AMD HSA Code Object loading failed.\n";
|
||||
|
||||
Reference in New Issue
Block a user