diff --git a/src/operators/kernel/fpga/feed_kernel.cpp b/src/operators/kernel/fpga/feed_kernel.cpp index c42f3345ea0a01f22766d33341aed558baf51d25..161d8c9f0cf22ac79d1367e07b8ba3318a7a7123 100644 --- a/src/operators/kernel/fpga/feed_kernel.cpp +++ b/src/operators/kernel/fpga/feed_kernel.cpp @@ -15,41 +15,41 @@ limitations under the License. */ #include "operators/kernel/feed_kernel.h" namespace paddle_mobile { - namespace operators { - - template <> - bool FeedKernel::Init(FeedParam *param) { - Tensor *output = param->Out(); - fpga::format_fp16_ofm(output); - return true; - } - - template <> - void FeedKernel::Compute(const FeedParam ¶m) { - auto input = reinterpret_cast(const_cast(param.InputX())); - auto input_ptr = input->data(); - fpga::format_image(input); - Tensor *output = param.Out(); - auto output_ptr = output->data(); - - fpga::BypassArgs args = {fpga::DATA_TYPE_FP32}; - - args.input_data_type = fpga::DATA_TYPE_FP32; - args.output_data_type = fpga::DATA_TYPE_FP16; - args.input_layout_type = fpga::LAYOUT_CHW; - args.output_layout_type = fpga::LAYOUT_HWC; - args.image.address = reinterpret_cast(input_ptr); - args.image.channels = (uint32_t)input->dims()[1]; - args.image.height = (uint32_t)input->dims()[2]; - args.image.width = (uint32_t)input->dims()[3]; - args.image.pad_height = 0; - args.image.pad_width = 0; - args.output.address = output_ptr; - args.output.scale_address = output->scale; - fpga::PerformBypass(args); - } - template class FeedKernel; - - } // namespace operators +namespace operators { + +template <> +bool FeedKernel::Init(FeedParam *param) { + Tensor *output = param->Out(); + fpga::format_fp16_ofm(output); + return true; +} + +template <> +void FeedKernel::Compute(const FeedParam ¶m) { + auto input = + reinterpret_cast(const_cast(param.InputX())); + auto input_ptr = input->data(); + fpga::format_image(input); + Tensor *output = param.Out(); + auto output_ptr = output->data(); + + fpga::BypassArgs args = {fpga::DATA_TYPE_FP32}; + + args.input_data_type = fpga::DATA_TYPE_FP32; + args.output_data_type = fpga::DATA_TYPE_FP16; + args.input_layout_type = fpga::LAYOUT_CHW; + args.output_layout_type = fpga::LAYOUT_HWC; + args.image.address = reinterpret_cast(input_ptr); + args.image.channels = (uint32_t)input->dims()[1]; + args.image.height = (uint32_t)input->dims()[2]; + args.image.width = (uint32_t)input->dims()[3]; + args.image.pad_height = 0; + args.image.pad_width = 0; + args.output.address = output_ptr; + args.output.scale_address = output->scale; + fpga::PerformBypass(args); +} +template class FeedKernel; + +} // namespace operators } // namespace paddle_mobile -