| 235 | |
| 236 | template <typename Opr> |
| 237 | PerformanceResult call_kernel_cv( |
| 238 | std::vector<const KernelGen::KernelFunc*>& kernels, TContext* ctx, |
| 239 | const TensorNDArray& tensors, const BenchmarkOption& benchmark_option, |
| 240 | const std::string& kernel_symbol, RunCvHelper<Opr>& runner, |
| 241 | const OutputScope output_idx) { |
| 242 | std::string kern_name; |
| 243 | for (auto kernel : kernels) { |
| 244 | if (kernel->IsCVAvailable(ctx)) { |
| 245 | auto kern_sym = kernel->GetCVKernelSymbol(ctx); |
| 246 | auto if_match = std::regex_match(kern_sym, std::regex(kernel_symbol)); |
| 247 | if (!if_match) |
| 248 | continue; |
| 249 | kern_name = kern_sym; |
| 250 | break; |
| 251 | } |
| 252 | } |
| 253 | mgb_assert(kern_name.size() > 0, "gen kernel name failed"); |
| 254 | TargetModule& g_module = TargetModule::get_global_target_module(); |
| 255 | void* func = g_module.get_cv_kernel(kern_name); |
| 256 | return proxy_cv_kernel(tensors, runner, func, benchmark_option, output_idx); |
| 257 | } |
| 258 | |
| 259 | void gen_kernel_cv( |
| 260 | std::vector<const KernelGen::KernelFunc*>& kernels, TContext* ctx, |
nothing calls this directly
no test coverage detected