# 增加数据并行数之后模型占用显存增加

**1. 报错信息**

增加数据并行数，同时按比例增加卡数，理论上每张卡上的模型大小不变，占用显存也应该不变，但是这里增加数据并行数之后显存OOM了，使用export MS\_MEMORY\_STATISTIC=1环境变量查看显存分配情况发现显存占用有明显提升。

```
dp=2
max static mem:1125453824 bytes,
peak used:1124418048 bytes,

dp=1
max static mem:973373440 bytes,
peak used:973373440 bytes,
```

**2. 解决方案**

-   参考文档[MindSpore静态图模式内存分析优化方法](https://wiki.huawei.com/domains/53421/wiki/72013/WIKI202312152563937?title=3.3+%25E5%2588%2586%25E6%259E%2590%25E4%25B8%258E%25E4%25BC%2598%25E5%258C%2596)进行定位，对dp=1和dp=2的情况分别跑dry run，并用脚本分析日志，得到每个内存块的生命周期、大小、传递关系等信息（blocks.csv）。
-   对比两个场景，发现sigmoid算子显存占用显著增加。分别保存ir图，发现dp=2时sigmoid算子处做了重排布。

