-
由 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