MCPcopy Create free account
hub / github.com/MegEngine/MegCC / proxy_cv_kernel

Function proxy_cv_kernel

compiler/test/kernel/common/src/cc_proxy_cv.cpp:205–234  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

203}
204template <typename Opr>
205PerformanceResult proxy_cv_kernel(
206 TensorNDArray tensor_array, RunCvHelper<Opr>& runner, void* func_ptr,
207 const BenchmarkOption& benchmark_option, OutputScope output_idx) {
208 megdnn::SmallVector<TinyMat> mat_vec;
209 auto temp_tensor = runner.on_tensor_before(tensor_array);
210 for (auto& tensor : temp_tensor) {
211 mat_vec.push_back(tensor2TinyMat(tensor));
212 }
213 runner.run_cv_kernel(mat_vec, func_ptr);
214 if (benchmark_option.valid_megcc_performance) {
215 if (benchmark_option.warmup_iter > 0) {
216 for (int i = 0; i < benchmark_option.warmup_iter; ++i) {
217 runner.run_cv_kernel(mat_vec, func_ptr);
218 }
219 }
220 mgb_assert(benchmark_option.test_iter > 0);
221 megcc::test::Timer timer;
222 timer.start();
223 for (int i = 0; i < benchmark_option.test_iter; ++i) {
224 runner.run_cv_kernel(mat_vec, func_ptr);
225 }
226
227 timer.stop();
228 PerformanceResult res;
229 res.valid = true;
230 res.kernel_time_ms = timer.get_time_in_us() / 1e3 / benchmark_option.test_iter;
231 return res;
232 }
233 return {};
234}
235
236template <typename Opr>
237PerformanceResult call_kernel_cv(

Callers 1

call_kernel_cvFunction · 0.85

Calls 6

tensor2TinyMatFunction · 0.85
startMethod · 0.80
stopMethod · 0.80
get_time_in_usMethod · 0.80
on_tensor_beforeMethod · 0.45
run_cv_kernelMethod · 0.45

Tested by

no test coverage detected