P4 to Git Change 1972494 by kjayapra@0_HIPWS_P2P1_ROCM on 2019/07/23 20:01:13

SWDEV-144570 - Handling variable register during hipModuleLoad.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#31 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#30 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#51 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.hpp#30 edit
このコミットが含まれているのは:
foreman
2019-07-23 20:09:59 -04:00
コミット c837c6e769
3個のファイルの変更、57行の追加、4行の削除
+15 -3
ファイルの表示
@@ -165,10 +165,23 @@ extern "C" std::vector< std::pair<hipModule_t, bool> >* __hipRegisterFatBinary(c
return programs;
}
void PlatformState::unregisterVar(hipModule_t hmod) {
auto it = vars_.begin();
while (it != vars_.end()) {
DeviceVar& dvar = it->second;
if ((*dvar.modules)[0].first == hmod) {
delete dvar.modules;
vars_.erase(it++);
} else {
++it;
}
}
}
void PlatformState::registerVar(const void* hostvar,
const DeviceVar& rvar) {
amd::ScopedLock lock(lock_);
vars_.insert(std::make_pair(hostvar, rvar));
vars_.insert(std::make_pair(std::string(reinterpret_cast<const char*>(hostvar)), rvar));
}
void PlatformState::registerFunction(const void* hostFunction,
@@ -253,11 +266,10 @@ bool PlatformState::getFuncAttr(const void* hostFunction,
return true;
}
bool PlatformState::getGlobalVar(const void* hostVar, int deviceId,
hipDeviceptr_t* dev_ptr, size_t* size_ptr) {
amd::ScopedLock lock(lock_);
const auto it = vars_.find(hostVar);
const auto it = vars_.find(std::string(reinterpret_cast<const char*>(hostVar)));
if (it != vars_.cend()) {
DeviceVar& dvar = it->second;
if (dvar.rvars[deviceId].getdeviceptr() == nullptr) {