Skip to content

Commit 2e23a63

Browse files
authored
新增映射规则文档 (#7183)
* update docs * update docs * update P2POp * fix docs * fix bugs * update docs
1 parent 26532a5 commit 2e23a63

File tree

9 files changed

+166
-16
lines changed

9 files changed

+166
-16
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## [torch 参数更多]torch.distributed.P2POp
2+
3+
### [torch.distributed.P2POp](https://pytorch.org/docs/stable/distributed.html#torch.distributed.P2POp)
4+
5+
```python
6+
torch.distributed.P2POp(op, tensor, peer, group=None, tag=0)
7+
```
8+
9+
### [paddle.distributed.P2POp](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/distributed/Overview_cn.html#paddle-distributed)
10+
11+
```python
12+
paddle.distributed.P2POp(op, tensor, peer, group=None)
13+
```
14+
15+
PyTorch 相比 Paddle 支持更多其他参数,具体如下:
16+
17+
### 参数映射
18+
19+
| PyTorch | PaddlePaddle | 备注 |
20+
| ------- | --------------- | ----------------------------------------------------------------- |
21+
| op | op | 表示操作类型。 |
22+
| tensor | tensor | 表示发送或接收的 Tensor。 |
23+
| peer | peer | 表示目标进程的 rank。 |
24+
| group | group | 指定通信的进程组。 |
25+
| tag | - | 表示匹配接收标签,Paddle 无此参数,暂无转写方式。 |
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_ceil_
2+
3+
### [torch.\_foreach_ceil_](https://pytorch.org/docs/stable/generated/torch._foreach_ceil_.html#torch-foreach-ceil)
4+
5+
```python
6+
torch._foreach_ceil_(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_ceil_(tensors)
16+
17+
# Paddle 写法
18+
[paddle.assign(paddle.ceil(x), x) for x in tensors]
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_erfc
2+
3+
### [torch.\_foreach_erfc](https://pytorch.org/docs/stable/generated/torch._foreach_erfc.html#torch-foreach-erfc)
4+
5+
```python
6+
torch._foreach_erfc(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_erfc(tensors)
16+
17+
# Paddle 写法
18+
tuple([(1-paddle.erf(x)) for x in tensors])
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_erfc_
2+
3+
### [torch.\_foreach_erfc_](https://pytorch.org/docs/stable/generated/torch._foreach_erfc_.html#torch-foreach-erfc)
4+
5+
```python
6+
torch._foreach_erfc_(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_erfc_(tensors)
16+
17+
# Paddle 写法
18+
[paddle.assign(1-paddle.erf(x), x) for x in tensors]
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_exp_
2+
3+
### [torch.\_foreach_exp_](https://pytorch.org/docs/stable/generated/torch._foreach_exp_.html#torch._foreach_exp_)
4+
5+
```python
6+
torch._foreach_exp_(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_exp_(tensors)
16+
17+
# Paddle 写法
18+
[paddle.assign(paddle.exp(x), x) for x in tensors]
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_floor_
2+
3+
### [torch.\_foreach_floor_](https://pytorch.org/docs/stable/generated/torch._foreach_floor_.html#torch-foreach-floor)
4+
5+
```python
6+
torch._foreach_floor_(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_floor_(tensors)
16+
17+
# Paddle 写法
18+
[paddle.assign(paddle.floor(x), x) for x in tensors]
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_log
2+
3+
### [torch.\_foreach_log](https://pytorch.org/docs/stable/generated/torch._foreach_log.html#torch-foreach-log)
4+
5+
```python
6+
torch._foreach_log(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_log(tensors)
16+
17+
# Paddle 写法
18+
[paddle.log(x) for x in tensors]
19+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## [组合替代实现]torch.\_foreach_log_
2+
3+
### [torch.\_foreach_log_](https://pytorch.org/docs/stable/generated/torch._foreach_log_.html#torch-foreach-log)
4+
5+
```python
6+
torch._foreach_log_(self)
7+
```
8+
9+
Paddle 无此 API,需要组合实现。
10+
11+
### 转写示例
12+
13+
```python
14+
# PyTorch 写法
15+
torch._foreach_log_(tensors)
16+
17+
# Paddle 写法
18+
[paddle.log_(x) for x in tensors]
19+
```

docs/guides/model_convert/convert_from_pytorch/pytorch_api_mapping_cn.md

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,22 +1042,20 @@
10421042
| NOT-IMPLEMENTED-ITEM(`torch.jit.trace`, https://pytorch.org/docs/stable/generated/torch.jit.trace.html#torch-jit-trace, 可新增,但框架底层无相关设计,成本高) |
10431043
| NOT-IMPLEMENTED-ITEM(`torch.jit.unused`, https://pytorch.org/docs/stable/generated/torch.jit.unused.html#torch-jit-unused, 可新增,但框架底层无相关设计,成本高) |
10441044
| NOT-IMPLEMENTED-ITEM(`torch.utils.checkpoint.checkpoint_sequential`, https://pytorch.org/docs/stable/checkpoint.html#torch.utils.checkpoint.checkpoint_sequential, 可新增,但框架底层无相关设计,成本高) |
1045+
| NOT-IMPLEMENTED-ITEM(`torch.nn.parameter.UninitializedBuffer`, https://pytorch.org/docs/stable/generated/torch.nn.parameter.UninitializedBuffer.html#torch.nn.parameter.UninitializedBuffer, 可新增,且框架底层有相关设计,成本低) |
1046+
| NOT-IMPLEMENTED-ITEM(`torch.autograd.Function.jvp`, https://pytorch.org/docs/stable/generated/torch.autograd.Function.jvp.html#torch-autograd-function-jvp, 可新增,且框架底层有相关设计,成本低) |
1047+
| NOT-IMPLEMENTED-ITEM(`torch.memory_format`, https://pytorch.org/docs/stable/tensor_attributes.html#torch.memory_format, 可新增,但框架底层无相关设计,成本高) |
1048+
| NOT-IMPLEMENTED-ITEM(`torch.distributed.is_gloo_available`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.is_gloo_available, 可新增,且框架底层有相关设计,成本低) |
1049+
| NOT-IMPLEMENTED-ITEM(`torch.distributed.get_group_rank`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.get_group_rank, 可新增,且框架底层有相关设计,成本低) |
1050+
| NOT-IMPLEMENTED-ITEM(`torch.distributed.get_global_rank`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.get_process_group_ranks, 可新增,且框架底层有相关设计,成本低) |
1051+
| NOT-IMPLEMENTED-ITEM(`torch.set_deterministic_debug_mode`, https://pytorch.org/docs/stable/generated/torch.set_deterministic_debug_mode.html#torch-set-deterministic-debug-mode, 可新增,但框架底层无相关设计,成本高) |
1052+
| NOT-IMPLEMENTED-ITEM(`torch.get_deterministic_debug_mode`, https://pytorch.org/docs/stable/generated/torch.get_deterministic_debug_mode.html#torch-get-deterministic-debug-mode, 可新增,但框架底层无相关设计,成本高) |
10451053

10461054
## <span id="id26">映射关系开发中的 API 列表</span>
10471055

10481056
| 序号 | Pytorch 最新 release | Paddle develop | 映射关系分类 | 备注 |
10491057
| ----- | ----------- | ----------------- | ----------- | ------- |
10501058
| IN-DEVELOPMENT-PATTERN(`torch.utils.tensorboard.writer.SummaryWriter`, https://pytorch.org/docs/stable/tensorboard.html#torch.utils.tensorboard.writer.SummaryWriter) |
1051-
| IN-DEVELOPMENT-PATTERN(`torch.nn.parameter.UninitializedBuffer`, https://pytorch.org/docs/stable/generated/torch.nn.parameter.UninitializedBuffer.html#torch.nn.parameter.UninitializedBuffer) |
1052-
| IN-DEVELOPMENT-PATTERN(`torch.autograd.Function.jvp`, https://pytorch.org/docs/stable/generated/torch.autograd.Function.jvp.html#torch-autograd-function-jvp) |
1053-
| IN-DEVELOPMENT-PATTERN(`torch.memory_format`, https://pytorch.org/docs/stable/tensor_attributes.html#torch.memory_format) |
1054-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_ceil_`, https://pytorch.org/docs/stable/generated/torch._foreach_ceil_.html#torch-foreach-ceil) |
1055-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_erfc`, https://pytorch.org/docs/stable/generated/torch._foreach_erfc.html#torch-foreach-erfc) |
1056-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_erfc_`, https://pytorch.org/docs/stable/generated/torch._foreach_erfc_.html#torch-foreach-erfc) |
1057-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_exp_`, https://pytorch.org/docs/stable/generated/torch._foreach_exp_.html#torch-foreach-exp) |
1058-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_floor_`, https://pytorch.org/docs/stable/generated/torch._foreach_floor_.html#torch-foreach-floor) |
1059-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_log`, https://pytorch.org/docs/stable/generated/torch._foreach_log.html#torch-foreach-log) |
1060-
| IN-DEVELOPMENT-PATTERN(`torch._foreach_log_`, https://pytorch.org/docs/stable/generated/torch._foreach_log_.html#torch-foreach-log) |
10611059
| IN-DEVELOPMENT-PATTERN(`torch._foreach_log10`, https://pytorch.org/docs/stable/generated/torch._foreach_log10.html#torch-foreach-log10) |
10621060
| IN-DEVELOPMENT-PATTERN(`torch._foreach_log10_`, https://pytorch.org/docs/stable/generated/torch._foreach_log10_.html#torch-foreach-log10) |
10631061
| IN-DEVELOPMENT-PATTERN(`torch._foreach_log1p`, https://pytorch.org/docs/stable/generated/torch._foreach_log1p.html#torch-foreach-log1p) |
@@ -1094,10 +1092,6 @@
10941092
| IN-DEVELOPMENT-PATTERN(`torch.autograd.graph.Node.register_prehook`, https://pytorch.org/docs/stable/generated/torch.autograd.graph.Node.register_prehook.html#torch-autograd-graph-node-register-prehook) |
10951093
| IN-DEVELOPMENT-PATTERN(`torch.cuda.OutOfMemoryError`, https://pytorch.org/docs/stable/generated/torch.cuda.OutOfMemoryError.html#torch-cuda-outofmemoryerror) |
10961094
| IN-DEVELOPMENT-PATTERN(`torch.backends.cpu.get_cpu_capability`, https://pytorch.org/docs/stable/backends.html#torch.backends.cpu.get_cpu_capability) |
1097-
| IN-DEVELOPMENT-PATTERN(`torch.distributed.P2POp`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.P2POp) |
1098-
| IN-DEVELOPMENT-PATTERN(`torch.distributed.is_gloo_available`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.is_gloo_available) |
1099-
| IN-DEVELOPMENT-PATTERN(`torch.distributed.get_group_rank`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.get_group_rank) |
1100-
| IN-DEVELOPMENT-PATTERN(`torch.distributed.get_global_rank`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.get_global_rank) |
11011095
| IN-DEVELOPMENT-PATTERN(`torch.distributed.get_process_group_ranks`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.get_process_group_ranks) |
11021096
| IN-DEVELOPMENT-PATTERN(`torch.distributed.batch_isend_irecv`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.batch_isend_irecv) |
11031097
| IN-DEVELOPMENT-PATTERN(`torch.distributed.all_gather_into_tensor`, https://pytorch.org/docs/stable/distributed.html#torch.distributed.all_gather_into_tensor) |
@@ -1119,5 +1113,3 @@
11191113
| IN-DEVELOPMENT-PATTERN(`torch.distributions.continuous_bernoulli.ContinuousBernoulli`, https://pytorch.org/docs/stable/distributions.html#torch.distributions.continuous_bernoulli.ContinuousBernoulli) |
11201114
| IN-DEVELOPMENT-PATTERN(`torch.distributions.exponential.Exponential`, https://pytorch.org/docs/stable/distributions.html#torch.distributions.exponential.Exponential) |
11211115
| IN-DEVELOPMENT-PATTERN(`torch.cuda.StreamContext`, https://pytorch.org/docs/stable/generated/torch.cuda.StreamContext.html#torch.cuda.StreamContext) |
1122-
| IN-DEVELOPMENT-PATTERN(`torch.set_deterministic_debug_mode`, https://pytorch.org/docs/stable/generated/torch.set_deterministic_debug_mode.html#torch-set-deterministic-debug-mode) |
1123-
| IN-DEVELOPMENT-PATTERN(`torch.get_deterministic_debug_mode`, https://pytorch.org/docs/stable/generated/torch.get_deterministic_debug_mode.html#torch-get-deterministic-debug-mode) |

0 commit comments

Comments
 (0)