mindspore/docs/api/api_python/ops/mindspore.ops.CustomOpBuild...

75 lines
4.4 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.ops.CustomOpBuilder
=============================
.. py:class:: mindspore.ops.CustomOpBuilder(name, sources, backend=None, include_paths=None, cflags=None, ldflags=None, **kwargs)
`CustomOpBuilder` 用于初始化和配置MindSpore的自定义算子。用户可以通过该类定义和加载自定义算子模块并将其应用到网络中。
一般情况下,用户仅需在类的构造函数中传入源文件和额外的编译选项,并调用 `load` 接口即可完成算子的编译和加载。但如果用户有特殊的定制需求,也可以通过继承该类并重写部分接口来实现。需要注意的是,重写接口后,构造函数中传入的部分参数可能会被忽略。
.. warning::
这是一个实验性API后续可能修改或删除。
参数:
- **name** (str) - 自定义算子模块的唯一名称,用于标识算子。
- **sources** (Union[list[str], tuple[str], str]) - 自定义算子的源文件,可以是单个文件路径或文件路径列表。
- **backend** (str, 可选) - 自定义算子的目标后端,例如 "CPU" 或 "Ascend"。默认值: ``None``
- **include_paths** (Union[list[str], tuple[str], str], 可选) - 编译过程中需要的额外包含路径。默认值: ``None``
- **cflags** (str, 可选) - 编译过程中使用的额外C++编译选项。默认值: ``None``
- **ldflags** (str, 可选) - 链接过程中使用的额外链接选项。默认值: ``None``
- **kwargs** (dict, 可选) - 额外的关键字参数,用于扩展功能或自定义需求。
- **build_dir** (str, 可选) - 用于生成算子构建文件的目录。如果设置了该参数,将直接使用提供的路径。如果未设置,则会在环境变量 `MS_COMPILER_CACHE_PATH` 指定的路径下(默认为 ``./kernel_meta`` ),创建一个以算子的 `name` 命名的子目录,并将文件放置在该子目录中。默认值: ``None``
- **enable_atb** (bool, 可选) - 是否调用 ATB (Ascend Transformer Boost) 算子。如果设置为 ``True`` ,则 `backend` 必须为 ``Ascend`` 或留空。默认值: ``False``
- **enable_asdsip** (bool, 可选) - 是否调用 ASDSIP (Ascend Sip Boost) 算子。如果设置为 ``True`` ,则 `backend` 必须为 ``Ascend`` 或留空。默认值: ``False``
- **op_def** (Union[list[str], tuple[str], str], 可选) - 自定义算子定义文件YAML 格式)的路径,可以是单个文件路径或文件路径列表。在图模式下使用自定义算子时,此参数必须提供。默认值: ``None``
- **op_doc** (Union[list[str], tuple[str], str], 可选) - 自定义算子文档文件YAML 格式)的路径,可以是单个文件路径或文件路径列表,用于为算子提供额外说明。默认值: ``None``
.. note::
- 如果提供了 `backend` 参数,编译和链接步骤中会自动添加支持目标后端的默认编译和链接选项。默认选项可参考 `CustomOpBuilder <https://gitee.com/mindspore/mindspore/blob/master/mindspore/python/mindspore/ops/operations/custom_ops.py>`_ 代码中 `get_cflags``get_ldflags` 接口的实现。
- `sources` 参数必须指向有效的自定义算子源文件。
.. py:method:: build()
编译自定义算子模块。
该方法会根据提供的源文件、包含路径、编译选项和链接选项,生成自定义算子的动态库文件。
返回:
str编译生成的模块文件路径。
.. py:method:: get_cflags()
获取编译自定义算子时的C++编译选项。
返回:
list[str]C++编译选项列表。
.. py:method:: get_include_paths()
获取编译自定义算子时所需的头文件包含路径。
返回:
list[str],包含路径的列表。
.. py:method:: get_ldflags()
获取链接自定义算子时的链接选项。
返回:
list[str],链接选项列表。
.. py:method:: get_sources()
返回自定义算子的源文件路径。
返回:
Union[str, list[str]],自定义算子的源文件路径,可能是字符串或字符串列表。
.. py:method:: load()
编译并加载自定义算子模块。
返回:
Module加载的自定义算子模块。