Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IPU] add paddle.static.set_ipu_shard #4855

Merged
merged 5 commits into from
Jun 15, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs/api/paddle/static/ipu_shard_guard_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
ipu_shard_guard
-------------------------------

.. py:function:: paddle.static.ipu_shard_guard(index=None, stage=None)
.. py:function:: paddle.static.ipu_shard_guard(index=-1, stage=-1)


该接口用于对模型进行切分。用于指定Op在哪个ipu上进行计算以及模型被切分之后的计算顺序。

.. note:

仅支持当enable_manual_shard=True, index才能被置为非None。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
仅支持当enable_pipelining=True, stage才能被置为非None。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
仅支持当enable_manual_shard=True,index设置才有效。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
仅支持当enable_pipelining=True,stage设置才有效。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
一个index支持对应None stage或一个stage,一个stage仅支持对应一个新的index或者一个重复的index。

参数
:::::::::
- **index** (int, 可选) - 指定Op在哪个ipu上计算,(如‘0, 1, 2, 3’),默认值None,表示Op默认跑在IPU 0
- **stage** (int, 可选) – 指定被切分的模型的计算顺序,(如‘0, 1, 2, 3’),按照数值大小顺序对被切分的模型进行计算,默认值None,表示没有数据流水计算顺序并按照计算图顺序计算Op。
- **index** (int可选) - 指定Op在哪个ipu上计算,(如‘0, 1, 2, 3’),默认值-1,表示Op没有指定ipu
- **stage** (int可选) – 指定被切分的模型的计算顺序,(如‘0, 1, 2, 3’),按照数值大小顺序对被切分的模型进行计算,默认值-1,表示没有数据流水计算顺序并按照计算图顺序计算Op。

返回
:::::::::
Expand Down
30 changes: 30 additions & 0 deletions docs/api/paddle/static/set_ipu_shard_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.. _cn_api_fluid_set_ipu_shard:

set_ipu_shard
-------------------------------

.. py:function:: paddle.static.set_ipu_shard(call_func, index=-1, stage=-1)


该接口通过设置输入的函数或计算层内每个算子的流水线属性实现对模型的切分。

.. note:

仅支持当enable_manual_shard=True,index设置才有效。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
仅支持当enable_pipelining=True,stage设置才有效。请参阅 :ref:`cn_api_fluid_IpuStrategy` 。
一个index支持对应None stage或一个stage,一个stage仅支持对应一个新的index或者一个重复的index。

参数
:::::::::
- **call_func** (Layer|function) - 静态图下的函数或者计算层。
- **index** (int,可选) - 指定Op在哪个ipu上计算,(如‘0, 1, 2, 3’),默认值-1,表示不指定ipu。
- **stage** (int,可选) – 指定被切分的模型的计算顺序,(如‘0, 1, 2, 3’),按照数值大小顺序对被切分的模型进行计算,默认值-1,表示没有数据流水计算顺序并按照计算图顺序计算Op。

返回
:::::::::
无。

代码示例
::::::::::

COPY-FROM: paddle.static.set_ipu_shard
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里代码没有正确生成,建议这行代码之后再加一行空格试试

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里似乎是因为构建使用的 paddle 代码还没有合并 PaddlePaddle/Paddle#43164

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已添加空行