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

Method GetCVKernelBody

compiler/lib/KernelGen/BareMetal/CVTranspose.cpp:32–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30}
31
32std::string CvTransposeKernel::GetCVKernelBody(TContext* context) const {
33 auto kernel_sig = GetCVKernelSignature(context);
34 std::string body_temp = R"(
35 #include <string.h>
36 #include "tinycv_c.h"
37 void ${kernel_sig}{
38 uint8_t * src_base_ptr = src->data;
39 uint8_t * dst_base_ptr = dst->data;
40 int src_rows = src->rows;
41 int src_cols = src->cols;
42 int src_chans = src->channels;
43 for(int row_id = 0; row_id < src_rows; ++row_id)
44 for(int col_id = 0; col_id < src_cols; ++col_id){
45 uint8_t * src_ptr = src_base_ptr + row_id * src_cols * src_chans + col_id * src_chans;
46 uint8_t * dst_ptr = dst_base_ptr + col_id * src_rows * src_chans + row_id * src_chans;
47 for(int channel_id = 0 ; channel_id < src_chans; ++channel_id){
48 dst_ptr[channel_id] = src_ptr[channel_id];
49 }
50 }
51 }
52 )";
53 return StringTemplate::StringTemplateArgs()
54 .add("kernel_sig", kernel_sig)
55 .render(body_temp);
56}
57
58// vim: syntax=cpp.doxygen

Callers

nothing calls this directly

Calls 3

StringTemplateArgsClass · 0.85
renderMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected