• Pruthvi's avatar
    pattern matcher for BatchnormFprop + mkldnn integration in the CPU emitter (#468) · 34b1322d
    Pruthvi authored
    * fuse dot(a,b) + c
    
    cblas_gemm working on mlp
    
    rebase & small fixes
    
    enable debug output
    
    support replacing function's outputs
    
    * WIP pattern matching for variance
    
    * - Added pattern matcher graph to look up variance(sub graph) in bn
    - Added test case to verify the variance graph pattern
    
    * added batch norm mean pattern matcher.
    
    * remove reshapes
    
    (cherry picked from commit ecad321fb1b1bc3f7facda229beb940118ca0701)
    
    * fixed mean test to use Matcher.
    
    * resolve merge conflict in test/pattern.cpp
    
    * WIP bn fprop pattern
    
    * fprop bn fusion working
    
    * - Added unit test case to read the bn serializeed *.json file and run bn fprop fusion pass
    - Added batchnorm header file and defined the bn class to emit the mkldnn kernel
    - Added pattern matcher for fprop bn in CPU graph_rewrite pass
    
    * WIP MKLDNN fprop bn emitter code
    
    * completed fprop batchnorm kernel in CPU emitter
    
    * fixed bug in the emitter code for fprop bn
    
    * - Fixed copilation issues
    - unit tests are passing for bn emitter fprop code
    
    * Added support to compute fprop bn with mean annd variance as input
    
    * resolved compilation issues
    
    * refactored bn fprop code
    
    * - added batchnorm src file to the CMakeFilelist
    - moved bn fusion under CPU runtime/pass/cpu_fusion
    - fixed compilation issue
    
    * Resolved compilation issues in bn emitted code
    
    * Addded debug statements in fprop bn emitted code
    
    * added batchnorm.cpp src file
    
    * - Added test case to test fprop batchnorm with known tensor values
    - fixed bug related to defining weights in fprop bn
    
    * - Added test case for fprop batchnorm Op
    - Added test case for mean and variance pattern matcher
    - Added fprop bn *.json file with input having 4dmis mb2c3h2w2
    - refactored fprop bn op class
    
    * Style fix
    
    * - Removed Debug symbols
    
    * - Fixed header template with correct year
    - appended mkldnn.hpp in the CPU generated code
    
    *  Addressed PR review comments
     -  added support for batchnorm op in serializer and de-serializer
     - added more sanity in bn constructor
     - renamed "BatchnormFprop" -> BatchNorm
    
    * - Addressed PR review comments
    - replaced auto with speicfic mkldnn::type in emitted bn kernel
    - modified function signature to take 'eps' as double instead of <Node> type
    
    * added missing header files, resolved compilation issue
    
    * style fix
    
    * Addressed PR comments
    1. initilized member variables for bn in the same order as they are defined
    2. renamed bn member variables to start with m_* as per coding convention
    3. moved bn fusion test to test/cpu_fusion.cpp
    4. style fix
    5. added more checks to evaluate type and shape of inputs to bn
    
    * Added support for EMITDECL macro for batchnorm
    
    * - made correction to batchnorm src file name batchnorm -> batch_norm as per coding guidelines
    - corrected bn copy_with_new_args() method
    
    * Removed redundant SqrtOp support in serializer
    34b1322d