Add more diagnostics

This commit is contained in:
Ryan Hill 2021-04-28 00:41:40 -07:00
parent 99cc4418b0
commit 92be95d082

View file

@ -873,6 +873,7 @@ struct ProviderSharedLibrary {
Env::Default().GetSymbolFromLibrary(handle_, "Provider_SetHost", (void**)&PProvider_SetHost);
PProvider_SetHost(&provider_host_);
LOGS_DEFAULT(ERROR) << "(RyanHill) Initialized Provider Shared Library";
return true;
}
@ -895,16 +896,23 @@ struct ProviderSharedLibrary {
static ProviderSharedLibrary s_library_shared;
bool InitProvidersSharedLibrary(){
bool InitProvidersSharedLibrary() {
return s_library_shared.Ensure();
}
static bool s_shutdown = false;
struct ProviderLibrary {
ProviderLibrary(const char* filename) : filename_{filename} {}
~ProviderLibrary() { /*assert(!handle_);*/
} // We should already be unloaded at this point (disabled until Python shuts down deterministically)
Provider* Get() {
if (s_shutdown) {
LOGS_DEFAULT(ERROR) << "(RyanHill) Trying to load provider after shutdown! " << filename_;
return nullptr;
}
if (provider_)
return provider_;
@ -912,6 +920,7 @@ struct ProviderLibrary {
return nullptr;
std::string full_path = Env::Default().GetRuntimePath() + std::string(filename_);
LOGS_DEFAULT(ERROR) << "(RyanHill) Loading provider: " << full_path;
auto error = Env::Default().LoadDynamicLibrary(full_path, &handle_);
if (!error.IsOK()) {
LOGS_DEFAULT(ERROR) << error.ErrorMessage();
@ -922,17 +931,20 @@ struct ProviderLibrary {
Env::Default().GetSymbolFromLibrary(handle_, "GetProvider", (void**)&PGetProvider);
provider_ = PGetProvider();
LOGS_DEFAULT(ERROR) << "(RyanHill) Provider Loaded " << full_path;
return provider_;
}
void Unload() {
if (handle_) {
LOGS_DEFAULT(ERROR) << "(RyanHill) Shutting down provider " << filename_;
if (provider_)
provider_->Shutdown();
Env::Default().UnloadDynamicLibrary(handle_);
handle_ = nullptr;
provider_ = nullptr;
LOGS_DEFAULT(ERROR) << "(RyanHill) Shut down successful for " << filename_;
}
}
@ -950,8 +962,9 @@ static ProviderLibrary s_library_openvino(LIBRARY_PREFIX "onnxruntime_providers_
static ProviderLibrary s_library_tensorrt(LIBRARY_PREFIX "onnxruntime_providers_tensorrt" LIBRARY_EXTENSION);
void UnloadSharedProviders() {
s_shutdown = true;
std::cout << "Unloading shared providers...";
LOGS_DEFAULT(ERROR) << "LOGS_DEFAULT: Unloading shared providers...";
LOGS_DEFAULT(ERROR) << "Unloading shared providers... (RyanHill)";
s_library_dnnl.Unload();
s_library_openvino.Unload();
@ -960,7 +973,7 @@ void UnloadSharedProviders() {
s_library_shared.Unload();
std::cout << "Finished Unloading shared providers";
LOGS_DEFAULT(ERROR) << "LOGS_DEFAULT: Finished Unloading shared providers";
LOGS_DEFAULT(ERROR) << "Finished Unloading shared providers (RyanHill)";
}
// Used by test code
@ -972,9 +985,11 @@ std::unique_ptr<IAllocator> CreateCUDAPinnedAllocator(int16_t device_id, const c
}
std::shared_ptr<IExecutionProviderFactory> CreateExecutionProviderFactory_Cuda(const OrtCUDAProviderOptions* provider_options) {
LOGS_DEFAULT(ERROR) << "Trying to load CUDA provider (RyanHill)";
if (auto provider = s_library_cuda.Get())
return provider->CreateExecutionProviderFactory(provider_options);
LOGS_DEFAULT(ERROR) << "FAILED TO LOAD CUDA PROVIDER (RyanHill)";
return nullptr;
}
@ -1013,7 +1028,6 @@ ProviderInfo_OpenVINO* GetProviderInfo_OpenVINO() {
}
ProviderInfo_CUDA* GetProviderInfo_CUDA() {
LOGS_DEFAULT(ERROR) << "GetProviderInfo_CUDA being called...";
if (auto provider = s_library_cuda.Get())
return reinterpret_cast<ProviderInfo_CUDA*>(provider->GetInfo());
LOGS_DEFAULT(ERROR) << "GetProviderInfo_CUDA called, returning nullptr";