diff --git a/src/runtime/vulkan/vulkan_device_api.cc b/src/runtime/vulkan/vulkan_device_api.cc index ce2cea65b5cd762f63399e16ed0eaa30ecaa0cd6..aaf658bbac4b73b8ed43dfa423965c9c7520df3a 100644 --- a/src/runtime/vulkan/vulkan_device_api.cc +++ b/src/runtime/vulkan/vulkan_device_api.cc @@ -661,13 +661,18 @@ void VulkanWorkspace::Init() { std::lock_guard<std::mutex> lock(this->mu); if (initialized_) return; initialized_ = true; - instance_ = CreateInstance(); - context_ = GetContext(instance_); - LOG(INFO) << "Initialzie Vulkan with " << context_.size() << " devices.."; - for (size_t i = 0; i < context_.size(); ++i) { - LOG(INFO) << "vulkan(" << i - << ")=\'" << context_[i].phy_device_prop.deviceName - << "\' phy_dev_id=" << context_[i].phy_device; + try { + instance_ = CreateInstance(); + context_ = GetContext(instance_); + LOG(INFO) << "Initialzie Vulkan with " << context_.size() << " devices.."; + for (size_t i = 0; i < context_.size(); ++i) { + LOG(INFO) << "vulkan(" << i + << ")=\'" << context_[i].phy_device_prop.deviceName + << "\' phy_dev_id=" << context_[i].phy_device; + } + } catch (const dmlc::Error& err) { + LOG(INFO) << "Cannot initialize vulkan: " << err.what() << "\n" + << "You can still compile vulkan module but cannot run locally"; } }