mindspore.graph.register_custom_pass

View Source On AtomGit
mindspore.graph.register_custom_pass(pass_name, plugin_so_path, device='all', pass_type=CustomPassType.PATTERN)[source]

Register a custom pass to modify graph structure for default "ms_backend" backend.

Note

Windows and MacOS systems are not supported yet.

Warning

This is an experimental API that is subject to change or deletion.

Parameters
  • pass_name (str) – Name of the pass expected to be provided by the plugin.

  • plugin_so_path (str) – Absolute path to the plugin shared library (.so file).

  • device (str, optional) – Target device for the pass. Supported values: "cpu" , "gpu" , "ascend" , or "all" . Default: "all" .

  • pass_type (CustomPassType, optional) –

    Type of the custom pass. Default: CustomPassType.PATTERN. It can be CustomPassType.PATTERN, CustomPassType.FULL_GRAPH.

    • CustomPassType.PATTERN: rewrites the graph structure based on a user-defined pattern to match,

      such as replacing an Add operator and a Neg operator with a Sub operator. This is applied in the backend optimization process.

    • CustomPassType.FULL_GRAPH: rewrites the graph based on the information of the entire graph.

      This is applied in the frontend optimization process.

Returns

bool. Returns True if the custom pass is registered successfully, otherwise returns False.

Raises

TypeError – If pass_type is not of type mindspore.graph.CustomPassType .

Examples

>>> import mindspore.graph as graph
>>> # Register a custom optimization pass
>>> success = graph.register_custom_pass(
...     pass_name="my_fusion_pass",
...     plugin_so_path="/path/to/my_plugin.so",
...     device="ascend"
... )
>>> print(f"Registration successful: {success}")