diff --git a/ircd/cl.cc b/ircd/cl.cc index 8d59e04e9..05643e3aa 100644 --- a/ircd/cl.cc +++ b/ircd/cl.cc @@ -246,11 +246,11 @@ ircd::cl::init::init() if(!init_devices()) return; - // Report the devices. - log_dev_info(); - // Various other inits. init_ctxs(); + + // Report the devices. + log_dev_info(); } ircd::cl::init::~init() @@ -658,6 +658,7 @@ ircd::cl::log_dev_info(const uint i, uint ircd::cl::query_warp_size(cl_context context, cl_device_id device) +try { //TODO: XXX assert(primary); @@ -678,6 +679,27 @@ ircd::cl::query_warp_size(cl_context context, return kern.preferred_group_size_multiple(device); } +catch(const ctx::interrupted &) +{ + throw; +} +catch(const ctx::terminated &) +{ + throw; +} +catch(const std::exception &e) +{ + log::logf + { + log, log::level::DWARNING, + "context(%p): device(%p): Failed to query warp size :%s", + static_cast(context), + static_cast(device), + e.what(), + }; + + return 0; +} ircd::string_view ircd::cl::version_str(const mutable_buffer &buf,