Download build/src/layer_declaration.h from camenduru/ncnn: direct link, hf CLI and curl.
- Browser
- Download file 165 kB
-
https://huggingface.co/camenduru/ncnn/resolve/main/build/src/layer_declaration.h
- Command line
-
hf download hf://camenduru/ncnn/build/src/layer_declaration.h
-
curl -L -o layer_declaration.h https://huggingface.co/camenduru/ncnn/resolve/main/build/src/layer_declaration.h
165 kB
| // Layer Declaration header | |
| // | |
| // This file is auto-generated by cmake, don't edit it. | |
| namespace ncnn { | |
| class AbsVal_final : virtual public AbsVal | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = AbsVal::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = AbsVal::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(AbsVal_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BatchNorm_final : virtual public BatchNorm, virtual public BatchNorm_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BatchNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BatchNorm_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BatchNorm_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BatchNorm_final_avx512 : virtual public BatchNorm, virtual public BatchNorm_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BatchNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BatchNorm_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BatchNorm_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BatchNorm_final_fma : virtual public BatchNorm, virtual public BatchNorm_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BatchNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BatchNorm_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BatchNorm_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BatchNorm_final_avx : virtual public BatchNorm, virtual public BatchNorm_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BatchNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BatchNorm_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BatchNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BatchNorm_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Bias_final : virtual public Bias, virtual public Bias_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Bias::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Bias_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Bias_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Bias_final_avx512 : virtual public Bias, virtual public Bias_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Bias::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Bias_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Bias_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Bias_final_fma : virtual public Bias, virtual public Bias_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Bias::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Bias_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Bias_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Bias_final_avx : virtual public Bias, virtual public Bias_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Bias::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Bias_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Bias::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Bias_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BNLL_final : virtual public BNLL, virtual public BNLL_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BNLL::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BNLL_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BNLL_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BNLL_final_avx512 : virtual public BNLL, virtual public BNLL_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BNLL::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BNLL_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BNLL_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BNLL_final_fma : virtual public BNLL, virtual public BNLL_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BNLL::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BNLL_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BNLL_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BNLL_final_avx : virtual public BNLL, virtual public BNLL_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BNLL::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BNLL_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BNLL::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BNLL_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Concat_final : virtual public Concat, virtual public Concat_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Concat::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Concat_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Concat_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Concat_final_avx512 : virtual public Concat, virtual public Concat_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Concat::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Concat_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Concat_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Concat_final_fma : virtual public Concat, virtual public Concat_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Concat::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Concat_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Concat_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Concat_final_avx : virtual public Concat, virtual public Concat_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Concat::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Concat_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Concat::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Concat_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution_final : virtual public Convolution, virtual public Convolution_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution_final_avx512 : virtual public Convolution, virtual public Convolution_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution_final_fma : virtual public Convolution, virtual public Convolution_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution_final_avx : virtual public Convolution, virtual public Convolution_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Crop_final : virtual public Crop, virtual public Crop_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Crop::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Crop_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Crop_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Crop_final_avx512 : virtual public Crop, virtual public Crop_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Crop::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Crop_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Crop_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Crop_final_fma : virtual public Crop, virtual public Crop_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Crop::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Crop_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Crop_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Crop_final_avx : virtual public Crop, virtual public Crop_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Crop::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Crop_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Crop::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Crop_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution_final : virtual public Deconvolution, virtual public Deconvolution_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution_final_avx512 : virtual public Deconvolution, virtual public Deconvolution_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution_final_fma : virtual public Deconvolution, virtual public Deconvolution_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution_final_avx : virtual public Deconvolution, virtual public Deconvolution_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Deconvolution::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dropout_final : virtual public Dropout, virtual public Dropout_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dropout::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dropout_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dropout_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dropout_final_avx512 : virtual public Dropout, virtual public Dropout_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dropout::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dropout_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dropout_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dropout_final_fma : virtual public Dropout, virtual public Dropout_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dropout::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dropout_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dropout_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dropout_final_avx : virtual public Dropout, virtual public Dropout_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dropout::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dropout_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dropout::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dropout_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Eltwise_final : virtual public Eltwise, virtual public Eltwise_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Eltwise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Eltwise_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Eltwise_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Eltwise_final_avx512 : virtual public Eltwise, virtual public Eltwise_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Eltwise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Eltwise_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Eltwise_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Eltwise_final_fma : virtual public Eltwise, virtual public Eltwise_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Eltwise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Eltwise_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Eltwise_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Eltwise_final_avx : virtual public Eltwise, virtual public Eltwise_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Eltwise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Eltwise_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Eltwise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Eltwise_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ELU_final : virtual public ELU, virtual public ELU_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ELU_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ELU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ELU_final_avx512 : virtual public ELU, virtual public ELU_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ELU_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ELU_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ELU_final_fma : virtual public ELU, virtual public ELU_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ELU_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ELU_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ELU_final_avx : virtual public ELU, virtual public ELU_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ELU_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ELU_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Embed_final : virtual public Embed | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Embed::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Embed::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Embed_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Exp_final : virtual public Exp | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Exp::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Exp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Exp_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Flatten_final : virtual public Flatten, virtual public Flatten_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Flatten::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Flatten_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Flatten_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Flatten_final_avx512 : virtual public Flatten, virtual public Flatten_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Flatten::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Flatten_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Flatten_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Flatten_final_fma : virtual public Flatten, virtual public Flatten_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Flatten::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Flatten_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Flatten_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Flatten_final_avx : virtual public Flatten, virtual public Flatten_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Flatten::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Flatten_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Flatten::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Flatten_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class InnerProduct_final : virtual public InnerProduct, virtual public InnerProduct_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = InnerProduct::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = InnerProduct_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(InnerProduct_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class InnerProduct_final_avx512 : virtual public InnerProduct, virtual public InnerProduct_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = InnerProduct::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = InnerProduct_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(InnerProduct_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class InnerProduct_final_fma : virtual public InnerProduct, virtual public InnerProduct_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = InnerProduct::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = InnerProduct_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(InnerProduct_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class InnerProduct_final_avx : virtual public InnerProduct, virtual public InnerProduct_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = InnerProduct::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = InnerProduct_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = InnerProduct::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(InnerProduct_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Input_final : virtual public Input | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Input::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Input::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Input_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Log_final : virtual public Log | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Log::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Log::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Log_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LRN_final : virtual public LRN, virtual public LRN_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LRN::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LRN_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LRN_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LRN_final_avx512 : virtual public LRN, virtual public LRN_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LRN::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LRN_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LRN_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LRN_final_fma : virtual public LRN, virtual public LRN_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LRN::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LRN_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LRN_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LRN_final_avx : virtual public LRN, virtual public LRN_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LRN::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LRN_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LRN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LRN_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MemoryData_final : virtual public MemoryData | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MemoryData::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MemoryData::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MemoryData_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MVN_final : virtual public MVN | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MVN::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MVN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MVN_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling_final : virtual public Pooling, virtual public Pooling_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling_final_avx512 : virtual public Pooling, virtual public Pooling_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling_final_fma : virtual public Pooling, virtual public Pooling_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling_final_avx : virtual public Pooling, virtual public Pooling_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Pooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Power_final : virtual public Power | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Power::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Power::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Power_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PReLU_final : virtual public PReLU, virtual public PReLU_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PReLU_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PReLU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PReLU_final_avx512 : virtual public PReLU, virtual public PReLU_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PReLU_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PReLU_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PReLU_final_fma : virtual public PReLU, virtual public PReLU_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PReLU_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PReLU_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PReLU_final_avx : virtual public PReLU, virtual public PReLU_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PReLU_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = PReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PReLU_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Proposal_final : virtual public Proposal | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Proposal::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Proposal::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Proposal_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reduction_final : virtual public Reduction | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reduction::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reduction::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reduction_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ReLU_final : virtual public ReLU, virtual public ReLU_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ReLU_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ReLU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ReLU_final_avx512 : virtual public ReLU, virtual public ReLU_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ReLU_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ReLU_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ReLU_final_fma : virtual public ReLU, virtual public ReLU_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ReLU_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ReLU_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ReLU_final_avx : virtual public ReLU, virtual public ReLU_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ReLU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ReLU_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ReLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ReLU_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reshape_final : virtual public Reshape, virtual public Reshape_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reshape::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reshape_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reshape_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reshape_final_avx512 : virtual public Reshape, virtual public Reshape_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reshape::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reshape_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reshape_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reshape_final_fma : virtual public Reshape, virtual public Reshape_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reshape::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reshape_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reshape_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reshape_final_avx : virtual public Reshape, virtual public Reshape_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reshape::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reshape_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Reshape::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reshape_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ROIPooling_final : virtual public ROIPooling | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ROIPooling::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ROIPooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ROIPooling_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Scale_final : virtual public Scale, virtual public Scale_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Scale::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Scale_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Scale_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Scale_final_avx512 : virtual public Scale, virtual public Scale_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Scale::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Scale_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Scale_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Scale_final_fma : virtual public Scale, virtual public Scale_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Scale::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Scale_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Scale_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Scale_final_avx : virtual public Scale, virtual public Scale_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Scale::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Scale_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Scale::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Scale_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Sigmoid_final : virtual public Sigmoid, virtual public Sigmoid_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Sigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Sigmoid_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Sigmoid_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Sigmoid_final_avx512 : virtual public Sigmoid, virtual public Sigmoid_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Sigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Sigmoid_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Sigmoid_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Sigmoid_final_fma : virtual public Sigmoid, virtual public Sigmoid_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Sigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Sigmoid_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Sigmoid_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Sigmoid_final_avx : virtual public Sigmoid, virtual public Sigmoid_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Sigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Sigmoid_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Sigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Sigmoid_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Slice_final : virtual public Slice, virtual public Slice_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Slice::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Slice_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Slice_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Slice_final_avx512 : virtual public Slice, virtual public Slice_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Slice::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Slice_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Slice_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Slice_final_fma : virtual public Slice, virtual public Slice_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Slice::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Slice_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Slice_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Slice_final_avx : virtual public Slice, virtual public Slice_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Slice::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Slice_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Slice::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Slice_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Softmax_final : virtual public Softmax, virtual public Softmax_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Softmax::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Softmax_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Softmax_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Softmax_final_avx512 : virtual public Softmax, virtual public Softmax_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Softmax::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Softmax_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Softmax_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Softmax_final_fma : virtual public Softmax, virtual public Softmax_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Softmax::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Softmax_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Softmax_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Softmax_final_avx : virtual public Softmax, virtual public Softmax_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Softmax::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Softmax_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Softmax::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Softmax_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Split_final : virtual public Split | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Split::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Split::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Split_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class TanH_final : virtual public TanH, virtual public TanH_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = TanH::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = TanH_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(TanH_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class TanH_final_avx512 : virtual public TanH, virtual public TanH_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = TanH::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = TanH_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(TanH_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class TanH_final_fma : virtual public TanH, virtual public TanH_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = TanH::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = TanH_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(TanH_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class TanH_final_avx : virtual public TanH, virtual public TanH_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = TanH::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = TanH_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = TanH::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(TanH_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Threshold_final : virtual public Threshold | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Threshold::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Threshold::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Threshold_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Tile_final : virtual public Tile | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Tile::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Tile::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Tile_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class RNN_final : virtual public RNN | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = RNN::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = RNN::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(RNN_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LSTM_final : virtual public LSTM, virtual public LSTM_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LSTM::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LSTM_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LSTM_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LSTM_final_avx512 : virtual public LSTM, virtual public LSTM_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LSTM::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LSTM_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LSTM_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LSTM_final_fma : virtual public LSTM, virtual public LSTM_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LSTM::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LSTM_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LSTM_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LSTM_final_avx : virtual public LSTM, virtual public LSTM_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LSTM::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LSTM_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LSTM::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LSTM_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BinaryOp_final : virtual public BinaryOp, virtual public BinaryOp_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BinaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BinaryOp_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BinaryOp_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BinaryOp_final_avx512 : virtual public BinaryOp, virtual public BinaryOp_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BinaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BinaryOp_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BinaryOp_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BinaryOp_final_fma : virtual public BinaryOp, virtual public BinaryOp_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BinaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BinaryOp_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BinaryOp_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class BinaryOp_final_avx : virtual public BinaryOp, virtual public BinaryOp_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = BinaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = BinaryOp_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = BinaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(BinaryOp_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class UnaryOp_final : virtual public UnaryOp, virtual public UnaryOp_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = UnaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = UnaryOp_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(UnaryOp_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class UnaryOp_final_avx512 : virtual public UnaryOp, virtual public UnaryOp_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = UnaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = UnaryOp_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(UnaryOp_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class UnaryOp_final_fma : virtual public UnaryOp, virtual public UnaryOp_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = UnaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = UnaryOp_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(UnaryOp_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class UnaryOp_final_avx : virtual public UnaryOp, virtual public UnaryOp_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = UnaryOp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = UnaryOp_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = UnaryOp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(UnaryOp_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise_final : virtual public ConvolutionDepthWise, virtual public ConvolutionDepthWise_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise_final_avx512 : virtual public ConvolutionDepthWise, virtual public ConvolutionDepthWise_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise_final_fma : virtual public ConvolutionDepthWise, virtual public ConvolutionDepthWise_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise_final_avx : virtual public ConvolutionDepthWise, virtual public ConvolutionDepthWise_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ConvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Padding_final : virtual public Padding, virtual public Padding_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Padding::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Padding_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Padding_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Padding_final_avx512 : virtual public Padding, virtual public Padding_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Padding::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Padding_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Padding_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Padding_final_fma : virtual public Padding, virtual public Padding_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Padding::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Padding_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Padding_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Padding_final_avx : virtual public Padding, virtual public Padding_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Padding::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Padding_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Padding::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Padding_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Squeeze_final : virtual public Squeeze | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Squeeze::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Squeeze::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Squeeze_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ExpandDims_final : virtual public ExpandDims | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ExpandDims::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ExpandDims::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ExpandDims_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Normalize_final : virtual public Normalize | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Normalize::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Normalize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Normalize_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Permute_final : virtual public Permute | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Permute::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Permute::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Permute_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PriorBox_final : virtual public PriorBox | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PriorBox::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PriorBox::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PriorBox_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DetectionOutput_final : virtual public DetectionOutput | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DetectionOutput_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Interp_final : virtual public Interp, virtual public Interp_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Interp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Interp_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Interp_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Interp_final_avx512 : virtual public Interp, virtual public Interp_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Interp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Interp_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Interp_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Interp_final_fma : virtual public Interp, virtual public Interp_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Interp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Interp_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Interp_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Interp_final_avx : virtual public Interp, virtual public Interp_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Interp::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Interp_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Interp::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Interp_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise_final : virtual public DeconvolutionDepthWise, virtual public DeconvolutionDepthWise_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise_final_avx512 : virtual public DeconvolutionDepthWise, virtual public DeconvolutionDepthWise_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise_final_fma : virtual public DeconvolutionDepthWise, virtual public DeconvolutionDepthWise_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise_final_avx : virtual public DeconvolutionDepthWise, virtual public DeconvolutionDepthWise_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeconvolutionDepthWise::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ShuffleChannel_final : virtual public ShuffleChannel | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ShuffleChannel::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ShuffleChannel::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ShuffleChannel_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class InstanceNorm_final : virtual public InstanceNorm | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = InstanceNorm::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = InstanceNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(InstanceNorm_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Clip_final : virtual public Clip, virtual public Clip_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Clip::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Clip_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Clip_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Clip_final_avx512 : virtual public Clip, virtual public Clip_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Clip::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Clip_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Clip_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Clip_final_fma : virtual public Clip, virtual public Clip_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Clip::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Clip_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Clip_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Clip_final_avx : virtual public Clip, virtual public Clip_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Clip::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Clip_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Clip::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Clip_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Reorg_final : virtual public Reorg | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Reorg::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Reorg::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Reorg_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class YoloDetectionOutput_final : virtual public YoloDetectionOutput | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = YoloDetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = YoloDetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(YoloDetectionOutput_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Quantize_final : virtual public Quantize, virtual public Quantize_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Quantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Quantize_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Quantize_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Quantize_final_avx512 : virtual public Quantize, virtual public Quantize_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Quantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Quantize_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Quantize_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Quantize_final_fma : virtual public Quantize, virtual public Quantize_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Quantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Quantize_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Quantize_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Quantize_final_avx : virtual public Quantize, virtual public Quantize_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Quantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Quantize_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Quantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Quantize_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dequantize_final : virtual public Dequantize, virtual public Dequantize_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dequantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dequantize_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dequantize_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dequantize_final_avx512 : virtual public Dequantize, virtual public Dequantize_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dequantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dequantize_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dequantize_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dequantize_final_fma : virtual public Dequantize, virtual public Dequantize_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dequantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dequantize_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dequantize_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Dequantize_final_avx : virtual public Dequantize, virtual public Dequantize_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Dequantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Dequantize_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Dequantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Dequantize_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Yolov3DetectionOutput_final : virtual public Yolov3DetectionOutput, virtual public Yolov3DetectionOutput_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Yolov3DetectionOutput_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Yolov3DetectionOutput_final_avx512 : virtual public Yolov3DetectionOutput, virtual public Yolov3DetectionOutput_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Yolov3DetectionOutput_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Yolov3DetectionOutput_final_fma : virtual public Yolov3DetectionOutput, virtual public Yolov3DetectionOutput_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Yolov3DetectionOutput_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Yolov3DetectionOutput_final_avx : virtual public Yolov3DetectionOutput, virtual public Yolov3DetectionOutput_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Yolov3DetectionOutput_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Yolov3DetectionOutput::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Yolov3DetectionOutput_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PSROIPooling_final : virtual public PSROIPooling | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PSROIPooling::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PSROIPooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PSROIPooling_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ROIAlign_final : virtual public ROIAlign, virtual public ROIAlign_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ROIAlign::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ROIAlign_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ROIAlign_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ROIAlign_final_avx512 : virtual public ROIAlign, virtual public ROIAlign_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ROIAlign::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ROIAlign_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ROIAlign_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ROIAlign_final_fma : virtual public ROIAlign, virtual public ROIAlign_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ROIAlign::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ROIAlign_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ROIAlign_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ROIAlign_final_avx : virtual public ROIAlign, virtual public ROIAlign_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ROIAlign::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ROIAlign_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = ROIAlign::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ROIAlign_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Packing_final : virtual public Packing, virtual public Packing_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Packing::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Packing_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Packing_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Packing_final_avx512 : virtual public Packing, virtual public Packing_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Packing::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Packing_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Packing_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Packing_final_fma : virtual public Packing, virtual public Packing_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Packing::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Packing_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Packing_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Packing_final_avx : virtual public Packing, virtual public Packing_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Packing::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Packing_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Packing::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Packing_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Requantize_final : virtual public Requantize, virtual public Requantize_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Requantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Requantize_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Requantize_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Requantize_final_avx512 : virtual public Requantize, virtual public Requantize_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Requantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Requantize_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Requantize_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Requantize_final_fma : virtual public Requantize, virtual public Requantize_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Requantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Requantize_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Requantize_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Requantize_final_avx : virtual public Requantize, virtual public Requantize_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Requantize::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Requantize_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Requantize::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Requantize_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Cast_final : virtual public Cast, virtual public Cast_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Cast::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Cast_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Cast_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Cast_final_avx512 : virtual public Cast, virtual public Cast_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Cast::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Cast_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Cast_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Cast_final_fma : virtual public Cast, virtual public Cast_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Cast::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Cast_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Cast_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Cast_final_avx : virtual public Cast, virtual public Cast_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Cast::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Cast_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Cast::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Cast_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSigmoid_final : virtual public HardSigmoid, virtual public HardSigmoid_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSigmoid_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSigmoid_final_avx512 : virtual public HardSigmoid, virtual public HardSigmoid_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSigmoid_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSigmoid_final_fma : virtual public HardSigmoid, virtual public HardSigmoid_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSigmoid_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSigmoid_final_avx : virtual public HardSigmoid, virtual public HardSigmoid_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSigmoid_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSigmoid::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSigmoid_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class SELU_final : virtual public SELU | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = SELU::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = SELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(SELU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSwish_final : virtual public HardSwish, virtual public HardSwish_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSwish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSwish_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSwish_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSwish_final_avx512 : virtual public HardSwish, virtual public HardSwish_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSwish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSwish_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSwish_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSwish_final_fma : virtual public HardSwish, virtual public HardSwish_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSwish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSwish_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSwish_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class HardSwish_final_avx : virtual public HardSwish, virtual public HardSwish_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = HardSwish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = HardSwish_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = HardSwish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(HardSwish_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Noop_final : virtual public Noop | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Noop::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Noop::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Noop_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class PixelShuffle_final : virtual public PixelShuffle | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = PixelShuffle::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = PixelShuffle::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(PixelShuffle_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeepCopy_final : virtual public DeepCopy | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeepCopy::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeepCopy::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeepCopy_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Mish_final : virtual public Mish, virtual public Mish_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Mish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Mish_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Mish_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Mish_final_avx512 : virtual public Mish, virtual public Mish_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Mish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Mish_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Mish_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Mish_final_fma : virtual public Mish, virtual public Mish_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Mish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Mish_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Mish_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Mish_final_avx : virtual public Mish, virtual public Mish_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Mish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Mish_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Mish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Mish_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class StatisticsPooling_final : virtual public StatisticsPooling | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = StatisticsPooling::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = StatisticsPooling::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(StatisticsPooling_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Swish_final : virtual public Swish, virtual public Swish_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Swish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Swish_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Swish_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Swish_final_avx512 : virtual public Swish, virtual public Swish_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Swish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Swish_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Swish_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Swish_final_fma : virtual public Swish, virtual public Swish_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Swish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Swish_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Swish_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Swish_final_avx : virtual public Swish, virtual public Swish_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Swish::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Swish_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Swish::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Swish_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Gemm_final : virtual public Gemm, virtual public Gemm_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Gemm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Gemm_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Gemm_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Gemm_final_avx512 : virtual public Gemm, virtual public Gemm_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Gemm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Gemm_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Gemm_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Gemm_final_fma : virtual public Gemm, virtual public Gemm_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Gemm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Gemm_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Gemm_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Gemm_final_avx : virtual public Gemm, virtual public Gemm_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Gemm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Gemm_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Gemm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Gemm_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GroupNorm_final : virtual public GroupNorm, virtual public GroupNorm_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GroupNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GroupNorm_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GroupNorm_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GroupNorm_final_avx512 : virtual public GroupNorm, virtual public GroupNorm_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GroupNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GroupNorm_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GroupNorm_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GroupNorm_final_fma : virtual public GroupNorm, virtual public GroupNorm_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GroupNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GroupNorm_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GroupNorm_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GroupNorm_final_avx : virtual public GroupNorm, virtual public GroupNorm_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GroupNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GroupNorm_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GroupNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GroupNorm_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LayerNorm_final : virtual public LayerNorm, virtual public LayerNorm_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LayerNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LayerNorm_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LayerNorm_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LayerNorm_final_avx512 : virtual public LayerNorm, virtual public LayerNorm_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LayerNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LayerNorm_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LayerNorm_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LayerNorm_final_fma : virtual public LayerNorm, virtual public LayerNorm_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LayerNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LayerNorm_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LayerNorm_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class LayerNorm_final_avx : virtual public LayerNorm, virtual public LayerNorm_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = LayerNorm::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = LayerNorm_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = LayerNorm::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(LayerNorm_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Softplus_final : virtual public Softplus | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Softplus::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Softplus::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Softplus_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GRU_final : virtual public GRU | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GRU::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GRU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GRU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MultiHeadAttention_final : virtual public MultiHeadAttention, virtual public MultiHeadAttention_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MultiHeadAttention_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MultiHeadAttention_final_avx512 : virtual public MultiHeadAttention, virtual public MultiHeadAttention_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MultiHeadAttention_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MultiHeadAttention_final_fma : virtual public MultiHeadAttention, virtual public MultiHeadAttention_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MultiHeadAttention_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MultiHeadAttention_final_avx : virtual public MultiHeadAttention, virtual public MultiHeadAttention_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MultiHeadAttention_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MultiHeadAttention::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MultiHeadAttention_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GELU_final : virtual public GELU, virtual public GELU_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GELU_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GELU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GELU_final_avx512 : virtual public GELU, virtual public GELU_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GELU_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GELU_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GELU_final_fma : virtual public GELU, virtual public GELU_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GELU_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GELU_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GELU_final_avx : virtual public GELU, virtual public GELU_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GELU::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GELU_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = GELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GELU_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution1D_final : virtual public Convolution1D, virtual public Convolution1D_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution1D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution1D_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution1D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution1D_final_avx512 : virtual public Convolution1D, virtual public Convolution1D_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution1D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution1D_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution1D_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution1D_final_fma : virtual public Convolution1D, virtual public Convolution1D_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution1D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution1D_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution1D_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution1D_final_avx : virtual public Convolution1D, virtual public Convolution1D_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution1D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution1D_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = Convolution1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution1D_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling1D_final : virtual public Pooling1D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling1D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling1D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise1D_final : virtual public ConvolutionDepthWise1D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise1D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise1D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Convolution3D_final : virtual public Convolution3D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Convolution3D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Convolution3D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Convolution3D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class ConvolutionDepthWise3D_final : virtual public ConvolutionDepthWise3D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise3D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = ConvolutionDepthWise3D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(ConvolutionDepthWise3D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Pooling3D_final : virtual public Pooling3D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Pooling3D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Pooling3D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Pooling3D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MatMul_final : virtual public MatMul, virtual public MatMul_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MatMul::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MatMul_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MatMul_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MatMul_final_avx512 : virtual public MatMul, virtual public MatMul_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MatMul::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MatMul_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MatMul_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MatMul_final_fma : virtual public MatMul, virtual public MatMul_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MatMul::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MatMul_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MatMul_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class MatMul_final_avx : virtual public MatMul, virtual public MatMul_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = MatMul::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = MatMul_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = MatMul::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(MatMul_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution1D_final : virtual public Deconvolution1D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution1D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution1D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise1D_final : virtual public DeconvolutionDepthWise1D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise1D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise1D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise1D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Deconvolution3D_final : virtual public Deconvolution3D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Deconvolution3D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Deconvolution3D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Deconvolution3D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeconvolutionDepthWise3D_final : virtual public DeconvolutionDepthWise3D | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise3D::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeconvolutionDepthWise3D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeconvolutionDepthWise3D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Einsum_final : virtual public Einsum | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Einsum::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Einsum::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Einsum_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeformableConv2D_final : virtual public DeformableConv2D, virtual public DeformableConv2D_x86 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D_x86::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D_x86::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeformableConv2D_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeformableConv2D_final_avx512 : virtual public DeformableConv2D, virtual public DeformableConv2D_x86_avx512 | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D_x86_avx512::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D_x86_avx512::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeformableConv2D_final_avx512) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeformableConv2D_final_fma : virtual public DeformableConv2D, virtual public DeformableConv2D_x86_fma | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D_x86_fma::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D_x86_fma::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeformableConv2D_final_fma) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class DeformableConv2D_final_avx : virtual public DeformableConv2D, virtual public DeformableConv2D_x86_avx | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D::create_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D_x86_avx::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = DeformableConv2D_x86_avx::destroy_pipeline(opt); if (ret) return ret; } | |
| { int ret = DeformableConv2D::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(DeformableConv2D_final_avx) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GLU_final : virtual public GLU | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GLU::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GLU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GLU_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Fold_final : virtual public Fold | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Fold::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Fold::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Fold_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Unfold_final : virtual public Unfold | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Unfold::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Unfold::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Unfold_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class GridSample_final : virtual public GridSample | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = GridSample::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = GridSample::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(GridSample_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class CumulativeSum_final : virtual public CumulativeSum | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = CumulativeSum::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = CumulativeSum::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(CumulativeSum_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class CopyTo_final : virtual public CopyTo | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = CopyTo::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = CopyTo::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(CopyTo_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Erf_final : virtual public Erf | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Erf::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Erf::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Erf_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class Diag_final : virtual public Diag | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = Diag::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = Diag::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(Diag_final) | |
| } // namespace ncnn | |
| namespace ncnn { | |
| class CELU_final : virtual public CELU | |
| { | |
| public: | |
| virtual int create_pipeline(const Option& opt) { | |
| { int ret = CELU::create_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| virtual int destroy_pipeline(const Option& opt) { | |
| { int ret = CELU::destroy_pipeline(opt); if (ret) return ret; } | |
| return 0; | |
| } | |
| }; | |
| DEFINE_LAYER_CREATOR(CELU_final) | |
| } // namespace ncnn | |