Skip to content

Commit a9de00a

Browse files
author
ranqiu
committed
Refine doc
1 parent 0e1f82f commit a9de00a

File tree

3 files changed

+43
-42
lines changed

3 files changed

+43
-42
lines changed

doc/v2/howto/capi/compile_paddle_lib_cn.md

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
1-
## 安装与编译C-API预测库
1+
## 安装、编译与链接C-API预测库
22

3-
### 概述
3+
### 直接下载安装
44

5-
使用 C-API 进行预测依赖于将 PaddlePaddle 核心代码编译成链接库,只需在编译时需配制下面这些编译选项
5+
从CI系统中下载最新的C-API开发包进行安装,用户可以从下面的表格中找到需要的版本
66

7-
必须配置选项:
8-
- `WITH_C_API`,必须配置为`ON`
7+
| 版本说明 |C-API|
8+
|-------|-----|
9+
| cpu\_avx\_mkl | [paddle.tgz](https://guest:@paddleci.ngrok.io/repository/download/Manylinux1_CpuAvxCp27cp27mu/.lastSuccessful/paddle.tgz) |
10+
| cpu\_avx\_openblas | 暂无 |
11+
| cpu\_noavx\_openblas | 暂无 |
12+
| cuda7.5\_cudnn5\_avx\_mkl | [paddle.tgz](https://guest:@paddleci.ngrok.io/repository/download/Manylinux1_Cuda75cudnn5cp27cp27mu/.lastSuccessful/paddle.tgz) |
13+
| cuda8.0\_cudnn5\_avx\_mkl | [paddle.tgz](https://guest:@paddleci.ngrok.io/repository/download/Manylinux1_Cuda80cudnn5cp27cp27mu/.lastSuccessful/paddle.tgz) |
14+
| cuda8.0\_cudnn7\_avx\_mkl | [paddle.tgz](https://guest:@paddleci.ngrok.io/repository/download/Manylinux1_Cuda8cudnn7cp27cp27mu/.lastSuccessful/paddle.tgz) |
915

10-
推荐配置选项:
11-
- `WITH_PYTHON`,推荐配置为`OFF`
12-
- `WITH_SWIG_PY`,推荐配置为`OFF`
13-
- `WITH_GOLANG`,推荐设置为`OFF`
16+
### 从源码编译
1417

15-
可选配置选项:
16-
- `WITH_GPU`,可配置为`ON/OFF`
17-
- `WITH_MKL`,可配置为`ON/OFF`
18+
用户也可以从 PaddlePaddle 核心代码编译C-API链接库,只需在编译时配制下面这些编译选项:
1819

19-
对推荐配置中的选项建议按照设置,以避免链接不必要的库。其它可选编译选项按需进行设定。
20+
| 选项 ||
21+
|----------------|----|
22+
| WITH\_C\_API | ON |
23+
| WITH\_PYTHON | OFF(推荐) |
24+
| WITH\_SWIG\_PY | OFF(推荐) |
25+
| WITH\_GOLANG | OFF(推荐) |
26+
| WITH\_GPU | ON/OFF |
27+
| WITH\_MKL | ON/OFF |
28+
29+
建议按照推荐值设置,以避免链接不必要的库。其它可选编译选项按需进行设定。
2030

2131
下面的代码片段从github拉取最新代码,配制编译选项(需要将PADDLE_ROOT替换为PaddlePaddle预测库的安装路径):
2232

@@ -100,23 +110,19 @@ cmake -DCMAKE_INSTALL_PREFIX=$PADDLE_ROOT \
100110

101111
目前提供三种链接方式:
102112

103-
1. 链接`libpaddle_capi_shared.so` 动态库
104-
- 使用 PaddlePaddle C-API 开发预测程序链接`libpaddle_capi_shared.so`时,需注意:
105-
1. 如果编译时指定编译CPU版本,且使用`OpenBLAS`数学库,在使用C-API开发预测程序时,只需要链接`libpaddle_capi_shared.so`这一个库。
106-
1. 如果是用编译时指定CPU版本,且使用`MKL`数学库,由于`MKL`库有自己独立的动态库文件,在使用PaddlePaddle C-API开发预测程序时,需要自己链接MKL链接库。
107-
1. 如果编译时指定编译GPU版本,CUDA相关库会在预测程序运行时动态装载,需要将CUDA相关的库设置到`LD_LIBRARY_PATH`环境变量中。
108-
- 这种方式最为简便,链接相对容易,**在无特殊需求情况下,推荐使用此方式**
109-
110-
2. 链接静态库 `libpaddle_capi_whole.a`
111-
- 使用PaddlePaddle C-API 开发预测程序链接`libpaddle_capi_whole.a`时,需注意:
112-
1. 需要指定`-Wl,--whole-archive`链接选项。
113-
1. 需要显式地链接 `gflags``glog``libz``protobuf` 等第三方库,可在`PADDLE_ROOT/third_party`下找到。
114-
1. 如果在编译 C-API 时使用OpenBLAS数学库,需要显示地链接`libopenblas.a`
115-
1. 如果在编译 C-API 是使用MKL数学库,需要显示地链接MKL的动态库。
116-
117-
3. 链接静态库 `libpaddle_capi_layers.a``libpaddle_capi_engine.a`
118-
- 使用PaddlePaddle C-API 开发预测程序链接`libpaddle_capi_whole.a`时,需注意:
119-
1. 这种链接方式主要用于移动端预测。
120-
1. 为了减少生成链接库的大小把`libpaddle_capi_whole.a`拆成以上两个静态链接库。
121-
1. 需指定`-Wl,--whole-archive -lpaddle_capi_layers` 和 `-Wl,--no-whole-archive -lpaddle_capi_engine` 进行链接。
122-
1. 第三方依赖库需要按照与方式2同样方法显示地进行链接。
113+
1. 链接`libpaddle_capi_shared.so` 动态库(这种方式最为简便,链接相对容易,**在无特殊需求情况下,推荐使用此方式**),需注意:
114+
1. 如果编译时指定编译CPU版本,且使用`OpenBLAS`数学库,在使用C-API开发预测程序时,只需要链接`libpaddle_capi_shared.so`这一个库。
115+
1. 如果是用编译时指定CPU版本,且使用`MKL`数学库,由于`MKL`库有自己独立的动态库文件,在使用PaddlePaddle C-API开发预测程序时,需要自己链接MKL链接库。
116+
1. 如果编译时指定编译GPU版本,CUDA相关库会在预测程序运行时动态装载,需要将CUDA相关的库设置到`LD_LIBRARY_PATH`环境变量中。
117+
118+
2. 链接静态库 `libpaddle_capi_whole.a`,需注意:
119+
1. 需要指定`-Wl,--whole-archive`链接选项。
120+
1. 需要显式地链接 `gflags``glog``libz``protobuf` 等第三方库,可在`PADDLE_ROOT/third_party`下找到。
121+
1. 如果在编译 C-API 时使用OpenBLAS数学库,需要显示地链接`libopenblas.a`
122+
1. 如果在编译 C-API 是使用MKL数学库,需要显示地链接MKL的动态库。
123+
124+
3. 链接静态库 `libpaddle_capi_layers.a``libpaddle_capi_engine.a`,需注意:
125+
1. 这种链接方式主要用于移动端预测。
126+
1. 为了减少生成链接库的大小把`libpaddle_capi_whole.a`拆成以上两个静态链接库。
127+
1. 需指定`-Wl,--whole-archive -lpaddle_capi_layers` 和 `-Wl,--no-whole-archive -lpaddle_capi_engine` 进行链接。
128+
1. 第三方依赖库需要按照与方式2同样方法显示地进行链接。

doc/v2/howto/rnn/hierarchical_layer_cn.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
pooling
2323
========
2424

25-
pooling 的使用示例如下,详细见 :ref:`api_v2.layer_pooling` 配置API
25+
pooling 的使用示例如下。
2626

2727
.. code-block:: bash
2828
@@ -47,7 +47,7 @@ pooling 的使用示例如下,详细见 :ref:`api_v2.layer_pooling` 配置API
4747
last_seq 和 first_seq
4848
=====================
4949

50-
last_seq 的使用示例如下( :ref:`api_v2.layer_first_seq` 类似),详细见 :ref:`api_v2.layer_last_seq` 配置API
50+
last_seq 的使用示例如下(first_seq 类似)。
5151

5252
.. code-block:: bash
5353
@@ -68,7 +68,7 @@ last_seq 的使用示例如下( :ref:`api_v2.layer_first_seq` 类似),详
6868
expand
6969
======
7070

71-
expand 的使用示例如下,详细见 :ref:`api_v2.layer_expand` 配置API
71+
expand 的使用示例如下。
7272

7373
.. code-block:: bash
7474

doc/v2/howto/rnn/hrnn_rnn_api_compare_cn.rst

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
单双层RNN API对比介绍
55
#####################
66

7-
本文以PaddlePaddle的双层RNN单元测试为示例,用多对效果完全相同的、分别使用单双层RNN作为网络配置的模型,来讲解如何使用双层RNN。本文中所有的例子,都只是介绍双层RNN的API接口,并不是使用双层RNN解决实际的问题。如果想要了解双层RNN在具体问题中的使用,请参考\ :ref:`algo_hrnn_demo`\ 。本文中示例所使用的单元测试文件是\ `test_RecurrentGradientMachine.cpp <https://github.com/reyoung/Paddle/blob/develop/paddle/gserver/tests/test_RecurrentGradientMachine.cpp>`_\
7+
本文以PaddlePaddle的双层RNN单元测试为示例,用多对效果完全相同的、分别使用单双层RNN作为网络配置的模型,来讲解如何使用双层RNN。本文中所有的例子,都只是介绍双层RNN的API接口,并不是使用双层RNN解决实际的问题。如果想要了解双层RNN在具体问题中的使用,请参考\ :ref:`algo_hrnn_demo`\ 。本文中示例所使用的单元测试文件是\ `test_RecurrentGradientMachine.cpp <https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/gserver/tests/test_RecurrentGradientMachine.cpp>`_\
88

99
示例1:双层RNN,子序列间无Memory
1010
================================
@@ -166,11 +166,6 @@
166166

167167
在上面代码中,单层和双层序列的使用和示例2中的示例类似,区别是同时处理了两个输入。而对于双层序列,两个输入的子序列长度也并不相同。但是,我们使用了\ :code:`targetInlink`\ 参数设置了外层\ :code:`recurrent_group`\ 的输出格式。所以外层输出的序列形状,和\ :code:`emb2`\ 的序列形状一致。
168168

169-
示例4:beam_search的生成
170-
========================
171-
172-
TBD
173-
174169

175170
词汇表
176171
======

0 commit comments

Comments
 (0)