P4 to Git Change 1987529 by kjayapra@4_HIPWS_RCCM_ROCM on 2019/08/22 12:32:42
SWDEV-200625 - Reverting back CL#1986255. Affected files ... ... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#38 edit ... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#35 edit ... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#39 edit
This commit is contained in:
+33
-26
@@ -139,15 +139,39 @@ extern "C" std::vector< std::pair<hipModule_t, bool> >* __hipRegisterFatBinary(c
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return ihipModuleLoadModule(fbwrapper->binary);
|
||||
std::vector<const char*> devices;
|
||||
std::vector<std::pair<const void*, size_t>> code_objs;
|
||||
for (size_t dev = 0; dev < g_devices.size(); ++dev) {
|
||||
amd::Context* ctx = g_devices[dev];
|
||||
devices.push_back(ctx->devices()[0]->info().name_);
|
||||
}
|
||||
|
||||
void PlatformState::unregisterVar(std::vector< std::pair<hipModule_t, bool> >* modules) {
|
||||
if (!__hipExtractCodeObjectFromFatBinary((char*)fbwrapper->binary, devices, code_objs)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto programs = new std::vector< std::pair<hipModule_t, bool> >{g_devices.size()};
|
||||
for (size_t dev = 0; dev < g_devices.size(); ++dev) {
|
||||
amd::Context* ctx = g_devices[dev];
|
||||
amd::Program* program = new amd::Program(*ctx);
|
||||
if (program == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
if (CL_SUCCESS == program->addDeviceProgram(*ctx->devices()[0], code_objs[dev].first, code_objs[dev].second)) {
|
||||
programs->at(dev) = std::make_pair(reinterpret_cast<hipModule_t>(as_cl(program)) , false);
|
||||
}
|
||||
}
|
||||
|
||||
return programs;
|
||||
}
|
||||
|
||||
void PlatformState::unregisterVar(hipModule_t hmod) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
auto it = vars_.begin();
|
||||
while (it != vars_.end()) {
|
||||
DeviceVar& dvar = it->second;
|
||||
if (dvar.modules == modules) {
|
||||
if ((*dvar.modules)[0].first == hmod) {
|
||||
delete dvar.modules;
|
||||
vars_.erase(it++);
|
||||
} else {
|
||||
++it;
|
||||
@@ -155,28 +179,6 @@ void PlatformState::unregisterVar(std::vector< std::pair<hipModule_t, bool> >* m
|
||||
}
|
||||
}
|
||||
|
||||
void PlatformState::registerMod(hipModule_t hmod, const DeviceModules& rmod) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
mods_.insert(std::make_pair(hmod, rmod));
|
||||
}
|
||||
|
||||
void PlatformState::unregisterMod(hipModule_t hmod) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
auto it = mods_.find(hmod);
|
||||
if (it != mods_.cend()) {
|
||||
mods_.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector< std::pair< hipModule_t, bool > >* PlatformState::findModules(hipModule_t hmod) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
const auto it = mods_.find(hmod);
|
||||
if (it == mods_.cend()) {
|
||||
return nullptr;
|
||||
}
|
||||
return it->second.modules;
|
||||
}
|
||||
|
||||
void PlatformState::registerVar(const void* hostvar,
|
||||
const DeviceVar& rvar) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
@@ -385,7 +387,12 @@ extern "C" void __hipUnregisterFatBinary(std::vector< std::pair<hipModule_t, boo
|
||||
{
|
||||
HIP_INIT();
|
||||
|
||||
ihipModuleUnload(modules);
|
||||
std::for_each(modules->begin(), modules->end(), [](std::pair<hipModule_t, bool> module){
|
||||
if (module.first != nullptr) {
|
||||
as_amd(reinterpret_cast<cl_program>(module.first))->release();
|
||||
}
|
||||
});
|
||||
delete modules;
|
||||
}
|
||||
|
||||
extern "C" hipError_t hipConfigureCall(
|
||||
|
||||
Reference in New Issue
Block a user