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

Function gen_kernel_cv

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

Source from the content-addressed store, hash-verified

257}
258
259void gen_kernel_cv(
260 std::vector<const KernelGen::KernelFunc*>& kernels, TContext* ctx,
261 KernelGen::Arch arch, const std::string& kernel_symbol) {
262 int usable_kern_cnt = 0;
263 for (auto kernel : kernels) {
264 if (kernel->IsCVAvailable(ctx)) {
265 usable_kern_cnt++;
266 TargetModule& g_module = TargetModule::get_global_target_module();
267 auto kern_sym = kernel->GetCVKernelSymbol(ctx);
268 auto if_match = std::regex_match(kern_sym, std::regex(kernel_symbol));
269 if (!if_match)
270 continue;
271 if (!g_module.exist(kern_sym)) {
272 g_module.add_cv(
273 kern_sym, kernel->GetCVKernelSignature(ctx),
274 kernel->GetCVKernelBody(ctx));
275 auto depends = kernel->GetDependInternalSymbol(ctx);
276 gen_depend_kernels(arch, depends);
277 }
278 return;
279 }
280 }
281 mgb_assert(0, "gen cv kernel failed, available %d", usable_kern_cnt);
282}
283
284} // namespace
285

Callers

nothing calls this directly

Calls 8

gen_depend_kernelsFunction · 0.85
existMethod · 0.80
add_cvMethod · 0.80
IsCVAvailableMethod · 0.45
GetCVKernelSymbolMethod · 0.45
GetCVKernelSignatureMethod · 0.45
GetCVKernelBodyMethod · 0.45

Tested by

no test coverage detected