diff --git a/src/rdnn/impl/algo_chooser.cpp b/src/rdnn/impl/algo_chooser.cpp index 0226af20d50fb2ab79641c5ae4fc9ad501a14b03..fae3aea97a38e80ac059eb805b426921a31eee06 100644 --- a/src/rdnn/impl/algo_chooser.cpp +++ b/src/rdnn/impl/algo_chooser.cpp @@ -961,7 +961,7 @@ void AlgoChooser::AlgoChooserHelper::profile( continue; }) if (!cur_rst.valid()) { - mgb_log_warn( + mgb_log_debug( "timeout when %s; timeout setting: %.3fsec", msg.c_str(), cur_timeout); continue; diff --git a/src/rdnn/impl/profiler.cpp b/src/rdnn/impl/profiler.cpp index 12303b5c327f8e28a7322768e9d761c2dcb84149..670de872bf3facb4302daff61bc809c789bb2e3c 100644 --- a/src/rdnn/impl/profiler.cpp +++ b/src/rdnn/impl/profiler.cpp @@ -304,6 +304,21 @@ typename TimedProfiler::TResult TimedProfiler::prof_impl( RealTimer timer; auto ev_start = cn.create_event(CompNode::Event::NEED_TIMER), ev_end = cn.create_event(CompNode::Event::NEED_TIMER); + for (int i = 0; i < 5; ++i) { + if_constexpr()>( + [&](auto _) { + auto&& opr = _(megdnn_opr); + PreprocessFilter* pf = + preprocessed_layout.empty() ? nullptr : &prep_flt; + APPLY(opr->exec(args.as_megdnn()..., pf, mdn_workspace), inp_val, + out_val); + }, + /* else */ + [&](auto _) { + APPLY(_(megdnn_opr)->exec(args.as_megdnn()..., mdn_workspace), + inp_val, out_val); + }); + } ev_start->record(); if_constexpr()>( [&](auto _) { @@ -327,12 +342,12 @@ typename TimedProfiler::TResult TimedProfiler::prof_impl( while (!ev_end->finished()) { if (timer.get_secs() >= next_report_time) { #if MGB_ENABLE_GETENV - mgb_log_warn( + mgb_log_debug( "profiling conv algo %s already took %.3f/%.3f secs" " (limit can be set by MGB_CONV_PROFILING_TIMEOUT) ", algo->name(), timer.get_secs(), param.actual_timeout); #else - mgb_log_warn( + mgb_log_debug( "profiling conv algo %s already took %.3f/%.3f secs", algo->name(), timer.get_secs(), param.actual_timeout); #endif