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

Method GetCVKernelBody

compiler/lib/KernelGen/Arm/ArmCommon/CVTranspose.cpp:33–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31}
32
33std::string CvTransposeKernel::GetCVKernelBody(TContext* context) const {
34 auto kernel_sig = GetCVKernelSignature(context);
35 std::string body_temp = R"(
36 #include <arm_neon.h>
37 #include <string.h>
38 #include "tinycv_c.h"
39
40
41#if defined(__aarch64__)
42${a64_fast_transpose_impl}
43#else
44${a32_fast_transpose_impl}
45#endif
46
47 void ${kernel_sig}{
48 uint8_t * src_base_ptr = src->data;
49 uint8_t * dst_base_ptr = dst->data;
50 int src_cols = src->cols;
51 int src_rows = src->rows;
52 int src_chans = src->channels;
53 fast_transpose_impl_8(src_base_ptr, dst_base_ptr, src_cols, src_rows, src_chans, src_cols * src_chans, src_rows * src_chans);
54 }
55 )";
56 return StringTemplate::StringTemplateArgs()
57 .add("kernel_sig", kernel_sig)
58 .add("a64_fast_transpose_impl", Arm64::gen_transpose(1))
59 .add("a32_fast_transpose_impl", Armv7::gen_transpose(1))
60 .render(body_temp);
61}
62
63// vim: syntax=cpp.doxygen

Callers

nothing calls this directly

Calls 4

StringTemplateArgsClass · 0.85
gen_transposeFunction · 0.50
renderMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected