提交 9d0514bd 编写于 作者: X Xin Pan

add doc

上级 caf10b47
# 如何使用timeline工具做性能分析 # 如何使用timeline工具做性能分析
1. 在训练的主循环外加上`with profiler.profiler(...)`。运行之后,代码会在`/tmp/profile`目录下生成一个profile的记录文件。 1. 在训练的主循环外加上`profiler.start_profiler(...)``profiler.start_profiler(...)`。运行之后,代码会在`/tmp/profile`目录下生成一个profile的记录文件。
**提示:** **提示:**
请不要在timeline记录信息时运行太多次迭代,因为timeline中的记录数量和迭代次数是成正比的。 请不要在timeline记录信息时运行太多次迭代,因为timeline中的记录数量和迭代次数是成正比的。
```python ```python
with profiler.profiler('All', 'total', '/tmp/profile') as prof: for pass_id in range(pass_num):
for pass_id in range(pass_num): for batch_id, data in enumerate(train_reader()):
for batch_id, data in enumerate(train_reader()): if pass_id == 0 and batch_id == 5:
exe.run(fluid.default_main_program(), profiler.start_profiler("All")
feed=feeder.feed(data), elif pass_id == 0 and batch_id == 10:
fetch_list=[]) profiler.stop_profiler("total", "/tmp/profile")
exe.run(fluid.default_main_program(),
feed=feeder.feed(data),
fetch_list=[])
... ...
``` ```
1. 运行`python paddle/tools/timeline.py`来处理`/tmp/profile`,这个程序默认会生成一个`/tmp/timeline`文件,你也可以用命令行参数来修改这个路径,请参考[timeline.py](https://github.com/PaddlePaddle/Paddle/blob/develop/tools/timeline.py) 1. 运行`python paddle/tools/timeline.py`来处理`/tmp/profile`,这个程序默认会生成一个`/tmp/timeline`文件,你也可以用命令行参数来修改这个路径,请参考[timeline.py](https://github.com/PaddlePaddle/Paddle/blob/develop/tools/timeline.py)
```python
python Paddle/tools/timeline.py --profile_path=/tmp/profile --timeline_path=timeline
```
1. 打开chrome浏览器,访问<chrome://tracing/>,用`load`按钮来加载生成的`timeline`文件。 1. 打开chrome浏览器,访问<chrome://tracing/>,用`load`按钮来加载生成的`timeline`文件。
......
# how to use timeline tool to do profile # how to use timeline tool to do profile
1. Add `with profiler.profiler(...)` to the main training loop. After run, the code will generate a profile record file `/tmp/profile`. **Warning**: Please do not run too many batches when use profiler to record timeline information, for the profile record will grow with the batch number. 1. Add `profiler.start_profiler(...)``profiler.start_profiler(...)` to the main training loop. After run, the code will generate a profile record file `/tmp/profile`. **Warning**: Please do not run too many batches when use profiler to record timeline information, for the profile record will grow with the batch number.
```python ```python
with profiler.profiler('All', 'total', '/tmp/profile') as prof: for pass_id in range(pass_num):
for pass_id in range(pass_num): for batch_id, data in enumerate(train_reader()):
for batch_id, data in enumerate(train_reader()): if pass_id == 0 and batch_id == 5:
exe.run(fluid.default_main_program(), profiler.start_profiler("All")
feed=feeder.feed(data), elif pass_id == 0 and batch_id == 10:
fetch_list=[], profiler.stop_profiler("total", "/tmp/profile")
use_program_cache=True) exe.run(fluid.default_main_program(),
feed=feeder.feed(data),
fetch_list=[])
... ...
``` ```
...@@ -17,6 +19,10 @@ ...@@ -17,6 +19,10 @@
file `/tmp/timeline` by default. You can change the path by cmd parameter, please take a look at file `/tmp/timeline` by default. You can change the path by cmd parameter, please take a look at
[timeline.py](https://github.com/PaddlePaddle/Paddle/blob/develop/tools/timeline.py) for details. [timeline.py](https://github.com/PaddlePaddle/Paddle/blob/develop/tools/timeline.py) for details.
```python
python Paddle/tools/timeline.py --profile_path=/tmp/profile --timeline_path=timeline
```
1. Open chrome and visit <chrome://tracing/>, use `load` button to load the generated `timeline` file. 1. Open chrome and visit <chrome://tracing/>, use `load` button to load the generated `timeline` file.
![chrome tracing](./tracing.jpeg) ![chrome tracing](./tracing.jpeg)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册