using Builder = ckb::ConvBuilder; using ConvInstance = Builder::Instance; auto conv = ConvInstance{}; auto result = [&]() { if constexpr(ConvDirectionIsBackwardWeight && Alg.optimizations.two_stage) { using ElementwiseOpBuilder = ckf::ElementwiseOpTileFactory; using ElementwiseOpInstance = ElementwiseOpBuilder::Instance; auto elementwise_op = ElementwiseOpInstance{}; return ckt::run(conv, elementwise_op, args, inputs, outputs, s_conf); } else { return ckt::run(conv, args, inputs, outputs, s_conf); } }.template operator()(); return std::make_tuple(result.is_supported(), result.runtime, conv.GetInstanceString());