// Layer Declaration header // // This file is auto-generated by cmake, don't edit it. #include "layer/absval.h" 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 #include "layer/batchnorm.h" #include "layer/x86/batchnorm_x86.h" 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 #include "layer/batchnorm.h" #include "layer/x86/batchnorm_x86_avx512.h" 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 #include "layer/batchnorm.h" #include "layer/x86/batchnorm_x86_fma.h" 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 #include "layer/batchnorm.h" #include "layer/x86/batchnorm_x86_avx.h" 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 #include "layer/bias.h" #include "layer/x86/bias_x86.h" 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 #include "layer/bias.h" #include "layer/x86/bias_x86_avx512.h" 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 #include "layer/bias.h" #include "layer/x86/bias_x86_fma.h" 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 #include "layer/bias.h" #include "layer/x86/bias_x86_avx.h" 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 #include "layer/bnll.h" #include "layer/x86/bnll_x86.h" 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 #include "layer/bnll.h" #include "layer/x86/bnll_x86_avx512.h" 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 #include "layer/bnll.h" #include "layer/x86/bnll_x86_fma.h" 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 #include "layer/bnll.h" #include "layer/x86/bnll_x86_avx.h" 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 #include "layer/concat.h" #include "layer/x86/concat_x86.h" 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 #include "layer/concat.h" #include "layer/x86/concat_x86_avx512.h" 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 #include "layer/concat.h" #include "layer/x86/concat_x86_fma.h" 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 #include "layer/concat.h" #include "layer/x86/concat_x86_avx.h" 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 #include "layer/convolution.h" #include "layer/x86/convolution_x86.h" 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 #include "layer/convolution.h" #include "layer/x86/convolution_x86_avx512.h" 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 #include "layer/convolution.h" #include "layer/x86/convolution_x86_fma.h" 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 #include "layer/convolution.h" #include "layer/x86/convolution_x86_avx.h" 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 #include "layer/crop.h" #include "layer/x86/crop_x86.h" 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 #include "layer/crop.h" #include "layer/x86/crop_x86_avx512.h" 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 #include "layer/crop.h" #include "layer/x86/crop_x86_fma.h" 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 #include "layer/crop.h" #include "layer/x86/crop_x86_avx.h" 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 #include "layer/deconvolution.h" #include "layer/x86/deconvolution_x86.h" 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 #include "layer/deconvolution.h" #include "layer/x86/deconvolution_x86_avx512.h" 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 #include "layer/deconvolution.h" #include "layer/x86/deconvolution_x86_fma.h" 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 #include "layer/deconvolution.h" #include "layer/x86/deconvolution_x86_avx.h" 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 #include "layer/dropout.h" #include "layer/x86/dropout_x86.h" 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 #include "layer/dropout.h" #include "layer/x86/dropout_x86_avx512.h" 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 #include "layer/dropout.h" #include "layer/x86/dropout_x86_fma.h" 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 #include "layer/dropout.h" #include "layer/x86/dropout_x86_avx.h" 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 #include "layer/eltwise.h" #include "layer/x86/eltwise_x86.h" 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 #include "layer/eltwise.h" #include "layer/x86/eltwise_x86_avx512.h" 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 #include "layer/eltwise.h" #include "layer/x86/eltwise_x86_fma.h" 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 #include "layer/eltwise.h" #include "layer/x86/eltwise_x86_avx.h" 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 #include "layer/elu.h" #include "layer/x86/elu_x86.h" 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 #include "layer/elu.h" #include "layer/x86/elu_x86_avx512.h" 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 #include "layer/elu.h" #include "layer/x86/elu_x86_fma.h" 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 #include "layer/elu.h" #include "layer/x86/elu_x86_avx.h" 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 #include "layer/embed.h" 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 #include "layer/exp.h" 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 #include "layer/flatten.h" #include "layer/x86/flatten_x86.h" 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 #include "layer/flatten.h" #include "layer/x86/flatten_x86_avx512.h" 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 #include "layer/flatten.h" #include "layer/x86/flatten_x86_fma.h" 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 #include "layer/flatten.h" #include "layer/x86/flatten_x86_avx.h" 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 #include "layer/innerproduct.h" #include "layer/x86/innerproduct_x86.h" 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 #include "layer/innerproduct.h" #include "layer/x86/innerproduct_x86_avx512.h" 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 #include "layer/innerproduct.h" #include "layer/x86/innerproduct_x86_fma.h" 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 #include "layer/innerproduct.h" #include "layer/x86/innerproduct_x86_avx.h" 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 #include "layer/input.h" 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 #include "layer/log.h" 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 #include "layer/lrn.h" #include "layer/x86/lrn_x86.h" 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 #include "layer/lrn.h" #include "layer/x86/lrn_x86_avx512.h" 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 #include "layer/lrn.h" #include "layer/x86/lrn_x86_fma.h" 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 #include "layer/lrn.h" #include "layer/x86/lrn_x86_avx.h" 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 #include "layer/memorydata.h" 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 #include "layer/mvn.h" 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 #include "layer/pooling.h" #include "layer/x86/pooling_x86.h" 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 #include "layer/pooling.h" #include "layer/x86/pooling_x86_avx512.h" 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 #include "layer/pooling.h" #include "layer/x86/pooling_x86_fma.h" 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 #include "layer/pooling.h" #include "layer/x86/pooling_x86_avx.h" 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 #include "layer/power.h" 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 #include "layer/prelu.h" #include "layer/x86/prelu_x86.h" 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 #include "layer/prelu.h" #include "layer/x86/prelu_x86_avx512.h" 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 #include "layer/prelu.h" #include "layer/x86/prelu_x86_fma.h" 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 #include "layer/prelu.h" #include "layer/x86/prelu_x86_avx.h" 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 #include "layer/proposal.h" 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 #include "layer/reduction.h" 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 #include "layer/relu.h" #include "layer/x86/relu_x86.h" 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 #include "layer/relu.h" #include "layer/x86/relu_x86_avx512.h" 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 #include "layer/relu.h" #include "layer/x86/relu_x86_fma.h" 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 #include "layer/relu.h" #include "layer/x86/relu_x86_avx.h" 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 #include "layer/reshape.h" #include "layer/x86/reshape_x86.h" 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 #include "layer/reshape.h" #include "layer/x86/reshape_x86_avx512.h" 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 #include "layer/reshape.h" #include "layer/x86/reshape_x86_fma.h" 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 #include "layer/reshape.h" #include "layer/x86/reshape_x86_avx.h" 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 #include "layer/roipooling.h" 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 #include "layer/scale.h" #include "layer/x86/scale_x86.h" 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 #include "layer/scale.h" #include "layer/x86/scale_x86_avx512.h" 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 #include "layer/scale.h" #include "layer/x86/scale_x86_fma.h" 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 #include "layer/scale.h" #include "layer/x86/scale_x86_avx.h" 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 #include "layer/sigmoid.h" #include "layer/x86/sigmoid_x86.h" 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 #include "layer/sigmoid.h" #include "layer/x86/sigmoid_x86_avx512.h" 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 #include "layer/sigmoid.h" #include "layer/x86/sigmoid_x86_fma.h" 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 #include "layer/sigmoid.h" #include "layer/x86/sigmoid_x86_avx.h" 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 #include "layer/slice.h" #include "layer/x86/slice_x86.h" 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 #include "layer/slice.h" #include "layer/x86/slice_x86_avx512.h" 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 #include "layer/slice.h" #include "layer/x86/slice_x86_fma.h" 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 #include "layer/slice.h" #include "layer/x86/slice_x86_avx.h" 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 #include "layer/softmax.h" #include "layer/x86/softmax_x86.h" 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 #include "layer/softmax.h" #include "layer/x86/softmax_x86_avx512.h" 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 #include "layer/softmax.h" #include "layer/x86/softmax_x86_fma.h" 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 #include "layer/softmax.h" #include "layer/x86/softmax_x86_avx.h" 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 #include "layer/split.h" 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 #include "layer/tanh.h" #include "layer/x86/tanh_x86.h" 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 #include "layer/tanh.h" #include "layer/x86/tanh_x86_avx512.h" 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 #include "layer/tanh.h" #include "layer/x86/tanh_x86_fma.h" 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 #include "layer/tanh.h" #include "layer/x86/tanh_x86_avx.h" 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 #include "layer/threshold.h" 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 #include "layer/tile.h" 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 #include "layer/rnn.h" 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 #include "layer/lstm.h" #include "layer/x86/lstm_x86.h" 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 #include "layer/lstm.h" #include "layer/x86/lstm_x86_avx512.h" 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 #include "layer/lstm.h" #include "layer/x86/lstm_x86_fma.h" 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 #include "layer/lstm.h" #include "layer/x86/lstm_x86_avx.h" 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 #include "layer/binaryop.h" #include "layer/x86/binaryop_x86.h" 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 #include "layer/binaryop.h" #include "layer/x86/binaryop_x86_avx512.h" 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 #include "layer/binaryop.h" #include "layer/x86/binaryop_x86_fma.h" 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 #include "layer/binaryop.h" #include "layer/x86/binaryop_x86_avx.h" 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 #include "layer/unaryop.h" #include "layer/x86/unaryop_x86.h" 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 #include "layer/unaryop.h" #include "layer/x86/unaryop_x86_avx512.h" 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 #include "layer/unaryop.h" #include "layer/x86/unaryop_x86_fma.h" 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 #include "layer/unaryop.h" #include "layer/x86/unaryop_x86_avx.h" 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 #include "layer/convolutiondepthwise.h" #include "layer/x86/convolutiondepthwise_x86.h" 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 #include "layer/convolutiondepthwise.h" #include "layer/x86/convolutiondepthwise_x86_avx512.h" 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 #include "layer/convolutiondepthwise.h" #include "layer/x86/convolutiondepthwise_x86_fma.h" 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 #include "layer/convolutiondepthwise.h" #include "layer/x86/convolutiondepthwise_x86_avx.h" 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 #include "layer/padding.h" #include "layer/x86/padding_x86.h" 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 #include "layer/padding.h" #include "layer/x86/padding_x86_avx512.h" 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 #include "layer/padding.h" #include "layer/x86/padding_x86_fma.h" 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 #include "layer/padding.h" #include "layer/x86/padding_x86_avx.h" 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 #include "layer/squeeze.h" 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 #include "layer/expanddims.h" 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 #include "layer/normalize.h" 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 #include "layer/permute.h" 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 #include "layer/priorbox.h" 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 #include "layer/detectionoutput.h" 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 #include "layer/interp.h" #include "layer/x86/interp_x86.h" 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 #include "layer/interp.h" #include "layer/x86/interp_x86_avx512.h" 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 #include "layer/interp.h" #include "layer/x86/interp_x86_fma.h" 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 #include "layer/interp.h" #include "layer/x86/interp_x86_avx.h" 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 #include "layer/deconvolutiondepthwise.h" #include "layer/x86/deconvolutiondepthwise_x86.h" 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 #include "layer/deconvolutiondepthwise.h" #include "layer/x86/deconvolutiondepthwise_x86_avx512.h" 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 #include "layer/deconvolutiondepthwise.h" #include "layer/x86/deconvolutiondepthwise_x86_fma.h" 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 #include "layer/deconvolutiondepthwise.h" #include "layer/x86/deconvolutiondepthwise_x86_avx.h" 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 #include "layer/shufflechannel.h" 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 #include "layer/instancenorm.h" 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 #include "layer/clip.h" #include "layer/x86/clip_x86.h" 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 #include "layer/clip.h" #include "layer/x86/clip_x86_avx512.h" 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 #include "layer/clip.h" #include "layer/x86/clip_x86_fma.h" 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 #include "layer/clip.h" #include "layer/x86/clip_x86_avx.h" 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 #include "layer/reorg.h" 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 #include "layer/yolodetectionoutput.h" 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 #include "layer/quantize.h" #include "layer/x86/quantize_x86.h" 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 #include "layer/quantize.h" #include "layer/x86/quantize_x86_avx512.h" 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 #include "layer/quantize.h" #include "layer/x86/quantize_x86_fma.h" 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 #include "layer/quantize.h" #include "layer/x86/quantize_x86_avx.h" 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 #include "layer/dequantize.h" #include "layer/x86/dequantize_x86.h" 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 #include "layer/dequantize.h" #include "layer/x86/dequantize_x86_avx512.h" 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 #include "layer/dequantize.h" #include "layer/x86/dequantize_x86_fma.h" 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 #include "layer/dequantize.h" #include "layer/x86/dequantize_x86_avx.h" 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 #include "layer/yolov3detectionoutput.h" #include "layer/x86/yolov3detectionoutput_x86.h" 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 #include "layer/yolov3detectionoutput.h" #include "layer/x86/yolov3detectionoutput_x86_avx512.h" 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 #include "layer/yolov3detectionoutput.h" #include "layer/x86/yolov3detectionoutput_x86_fma.h" 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 #include "layer/yolov3detectionoutput.h" #include "layer/x86/yolov3detectionoutput_x86_avx.h" 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 #include "layer/psroipooling.h" 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 #include "layer/roialign.h" #include "layer/x86/roialign_x86.h" 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 #include "layer/roialign.h" #include "layer/x86/roialign_x86_avx512.h" 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 #include "layer/roialign.h" #include "layer/x86/roialign_x86_fma.h" 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 #include "layer/roialign.h" #include "layer/x86/roialign_x86_avx.h" 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 #include "layer/packing.h" #include "layer/x86/packing_x86.h" 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 #include "layer/packing.h" #include "layer/x86/packing_x86_avx512.h" 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 #include "layer/packing.h" #include "layer/x86/packing_x86_fma.h" 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 #include "layer/packing.h" #include "layer/x86/packing_x86_avx.h" 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 #include "layer/requantize.h" #include "layer/x86/requantize_x86.h" 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 #include "layer/requantize.h" #include "layer/x86/requantize_x86_avx512.h" 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 #include "layer/requantize.h" #include "layer/x86/requantize_x86_fma.h" 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 #include "layer/requantize.h" #include "layer/x86/requantize_x86_avx.h" 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 #include "layer/cast.h" #include "layer/x86/cast_x86.h" 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 #include "layer/cast.h" #include "layer/x86/cast_x86_avx512.h" 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 #include "layer/cast.h" #include "layer/x86/cast_x86_fma.h" 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 #include "layer/cast.h" #include "layer/x86/cast_x86_avx.h" 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 #include "layer/hardsigmoid.h" #include "layer/x86/hardsigmoid_x86.h" 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 #include "layer/hardsigmoid.h" #include "layer/x86/hardsigmoid_x86_avx512.h" 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 #include "layer/hardsigmoid.h" #include "layer/x86/hardsigmoid_x86_fma.h" 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 #include "layer/hardsigmoid.h" #include "layer/x86/hardsigmoid_x86_avx.h" 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 #include "layer/selu.h" 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 #include "layer/hardswish.h" #include "layer/x86/hardswish_x86.h" 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 #include "layer/hardswish.h" #include "layer/x86/hardswish_x86_avx512.h" 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 #include "layer/hardswish.h" #include "layer/x86/hardswish_x86_fma.h" 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 #include "layer/hardswish.h" #include "layer/x86/hardswish_x86_avx.h" 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 #include "layer/noop.h" 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 #include "layer/pixelshuffle.h" 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 #include "layer/deepcopy.h" 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 #include "layer/mish.h" #include "layer/x86/mish_x86.h" 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 #include "layer/mish.h" #include "layer/x86/mish_x86_avx512.h" 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 #include "layer/mish.h" #include "layer/x86/mish_x86_fma.h" 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 #include "layer/mish.h" #include "layer/x86/mish_x86_avx.h" 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 #include "layer/statisticspooling.h" 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 #include "layer/swish.h" #include "layer/x86/swish_x86.h" 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 #include "layer/swish.h" #include "layer/x86/swish_x86_avx512.h" 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 #include "layer/swish.h" #include "layer/x86/swish_x86_fma.h" 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 #include "layer/swish.h" #include "layer/x86/swish_x86_avx.h" 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 #include "layer/gemm.h" #include "layer/x86/gemm_x86.h" 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 #include "layer/gemm.h" #include "layer/x86/gemm_x86_avx512.h" 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 #include "layer/gemm.h" #include "layer/x86/gemm_x86_fma.h" 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 #include "layer/gemm.h" #include "layer/x86/gemm_x86_avx.h" 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 #include "layer/groupnorm.h" #include "layer/x86/groupnorm_x86.h" 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 #include "layer/groupnorm.h" #include "layer/x86/groupnorm_x86_avx512.h" 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 #include "layer/groupnorm.h" #include "layer/x86/groupnorm_x86_fma.h" 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 #include "layer/groupnorm.h" #include "layer/x86/groupnorm_x86_avx.h" 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 #include "layer/layernorm.h" #include "layer/x86/layernorm_x86.h" 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 #include "layer/layernorm.h" #include "layer/x86/layernorm_x86_avx512.h" 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 #include "layer/layernorm.h" #include "layer/x86/layernorm_x86_fma.h" 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 #include "layer/layernorm.h" #include "layer/x86/layernorm_x86_avx.h" 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 #include "layer/softplus.h" 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 #include "layer/gru.h" 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 #include "layer/multiheadattention.h" #include "layer/x86/multiheadattention_x86.h" 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 #include "layer/multiheadattention.h" #include "layer/x86/multiheadattention_x86_avx512.h" 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 #include "layer/multiheadattention.h" #include "layer/x86/multiheadattention_x86_fma.h" 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 #include "layer/multiheadattention.h" #include "layer/x86/multiheadattention_x86_avx.h" 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 #include "layer/gelu.h" #include "layer/x86/gelu_x86.h" 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 #include "layer/gelu.h" #include "layer/x86/gelu_x86_avx512.h" 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 #include "layer/gelu.h" #include "layer/x86/gelu_x86_fma.h" 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 #include "layer/gelu.h" #include "layer/x86/gelu_x86_avx.h" 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 #include "layer/convolution1d.h" #include "layer/x86/convolution1d_x86.h" 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 #include "layer/convolution1d.h" #include "layer/x86/convolution1d_x86_avx512.h" 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 #include "layer/convolution1d.h" #include "layer/x86/convolution1d_x86_fma.h" 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 #include "layer/convolution1d.h" #include "layer/x86/convolution1d_x86_avx.h" 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 #include "layer/pooling1d.h" 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 #include "layer/convolutiondepthwise1d.h" 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 #include "layer/convolution3d.h" 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 #include "layer/convolutiondepthwise3d.h" 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 #include "layer/pooling3d.h" 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 #include "layer/matmul.h" #include "layer/x86/matmul_x86.h" 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 #include "layer/matmul.h" #include "layer/x86/matmul_x86_avx512.h" 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 #include "layer/matmul.h" #include "layer/x86/matmul_x86_fma.h" 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 #include "layer/matmul.h" #include "layer/x86/matmul_x86_avx.h" 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 #include "layer/deconvolution1d.h" 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 #include "layer/deconvolutiondepthwise1d.h" 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 #include "layer/deconvolution3d.h" 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 #include "layer/deconvolutiondepthwise3d.h" 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 #include "layer/einsum.h" 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 #include "layer/deformableconv2d.h" #include "layer/x86/deformableconv2d_x86.h" 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 #include "layer/deformableconv2d.h" #include "layer/x86/deformableconv2d_x86_avx512.h" 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 #include "layer/deformableconv2d.h" #include "layer/x86/deformableconv2d_x86_fma.h" 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 #include "layer/deformableconv2d.h" #include "layer/x86/deformableconv2d_x86_avx.h" 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 #include "layer/glu.h" 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 #include "layer/fold.h" 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 #include "layer/unfold.h" 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 #include "layer/gridsample.h" 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 #include "layer/cumulativesum.h" 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 #include "layer/copyto.h" 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 #include "layer/erf.h" 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 #include "layer/diag.h" 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 #include "layer/celu.h" 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