• F
    Add basic functionalities to support Scalar & Scalars in op attr (#51984) · 2e9fd5e4
    Feiyu Chan 提交于
    Add basic functionalities to support Scalar & Scalars in operator attribute.
    
    1. extend allowed types in operator's attribute type, add `paddle::experimental::Scalar`, add corresponding protobuf Message types;
    2. Scalar enhancement, add formatting, equality;
    3. add code to handle Scalar & Scalars in opmaker, conversion from  paddle operator to phi kernel, opdesc construction and manipulation,  tensorrt converter, tracer, operator construction, etc;
    4. bind `paddle::experimental::Scalar` to python, as `libpaddle.Scalar`;
    5. add functionality to canonicalize attribute map according to OpProto(if the op the attribute map used for has an OpProto);
    6. add code to manipulate Scalar proto message via protobuffer python API;
    
    Add unittests.
    
    1. add test cases for formatting, equality for Scalars, and WrapAsScalars;
    2. add test cases for 'casting' between different morphs of attributes;
    3. add test cases for extracting scalar & scalars from attribute;
    4. add test cases for CanonicalizeScalarAttrs(and fix a bug in type index offset);
    5. fix gmock's library filename on windows platform.
    6. clean code: use canonicalize_attrs instead of inlining the function;
    7. add test cases for libpaddle.Scalar in python code.
    8. add test cases for `make_scalar_proto`, which manipulate proto message `Scalar` via protobuffer python API.
    2e9fd5e4
op_function_common.cc 38.8 KB