| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef LAYER_CONVOLUTION_X86_H |
| #define LAYER_CONVOLUTION_X86_H |
|
|
| #include "convolution.h" |
|
|
| namespace ncnn { |
|
|
| class Convolution_x86 : virtual public Convolution |
| { |
| public: |
| Convolution_x86(); |
|
|
| virtual int create_pipeline(const Option& opt); |
| virtual int destroy_pipeline(const Option& opt); |
|
|
| virtual int forward(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const; |
|
|
| virtual int forward(const std::vector<Mat>& bottom_blobs, std::vector<Mat>& top_blobs, const Option& opt) const; |
|
|
| protected: |
| #if NCNN_INT8 |
| int create_pipeline_int8_x86(const Option& opt); |
| int forward_int8_x86(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const; |
| #endif |
| int forwardDilation_x86(const Mat& bottom_blob, Mat& top_blob, const Option& opt) const; |
|
|
| public: |
| Layer* activation; |
|
|
| int nT; |
| Mat weight_data_tm; |
| Mat weight_sgemm_data; |
| Mat weight_winograd23_data; |
| Mat weight_winograd43_data; |
| Mat weight_winograd63_data; |
|
|
| |
| Layer* convolution_dilation1; |
|
|
| Layer* gemm; |
|
|
| #if NCNN_INT8 |
| Mat scale_in_data; |
| #endif |
| }; |
|
|
| } |
|
|
| #endif |
|
|