|
|
|
@ -2,6 +2,21 @@
|
|
|
|
|
|
|
|
|
|
本文档描述Paddle C-API的实现细节。Paddle C-API是多语言API的基础部分。Paddle需要暴露的API很多。先实现模型推断的API,通过模型推断API的实现作为一个样例,来进行讨论。至于为什么需要C-API,请参考[这里](./00.why_plain_c.md)。
|
|
|
|
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
* [C-API 模型推断实现文档](#c-api-模型推断实现文档)
|
|
|
|
|
* [暴露接口原则](#暴露接口原则)
|
|
|
|
|
* [目录结构](#目录结构)
|
|
|
|
|
* [实现方式](#实现方式)
|
|
|
|
|
* [capi.h](#capih)
|
|
|
|
|
* [具体某种类型的头文件](#具体某种类型的头文件)
|
|
|
|
|
* [capi_private.h](#capi_privateh)
|
|
|
|
|
* [具体某种类型的实现文件](#具体某种类型的实现文件)
|
|
|
|
|
* [libpaddle_capi_shared.{so, dylib}](#libpaddle_capi_sharedso-dylib)
|
|
|
|
|
* [libpaddle_capi_whole.a](#libpaddle_capi_wholea)
|
|
|
|
|
* [examples](#examples)
|
|
|
|
|
* [编译选项](#编译选项)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 暴露接口原则
|
|
|
|
|
|
|
|
|
|
1. 所有的接口均为C接口。即使用`extern "C"`
|
|
|
|
@ -104,3 +119,13 @@ struct CMatrix {
|
|
|
|
|
### examples
|
|
|
|
|
|
|
|
|
|
在样例中,使用`C99`开发了模型预测的样例代码。具体请参考[example/README.md](../../../paddle/capi/examples/README.md)。
|
|
|
|
|
|
|
|
|
|
## 编译选项
|
|
|
|
|
|
|
|
|
|
C-API的编译选项默认关闭,打开这个编译选项,需要在cmake的时候,设置
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cmake ${YOUR_SOURCE_ROOT} -DWITH_C_API=ON -DWITH_PYTHON=OFF -DWITH_SWIG_PY=OFF
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
编译C-API的时候推荐Paddle不嵌入Python解释器,也不生成`SWIG`接口,具体原因参考[这里](./00.why_plain_c.md)。
|
|
|
|
|