Skip to content

Commit c5eac0a

Browse files
committed
Rename API
1 parent 0afd5c3 commit c5eac0a

File tree

11 files changed

+310
-270
lines changed

11 files changed

+310
-270
lines changed

paddle/capi/Arguments.cpp

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
See the License for the specific language governing permissions and
1313
limitations under the License. */
1414

15-
#include "PaddleCAPI.h"
1615
#include "PaddleCAPIPrivate.h"
16+
#include "arguments.h"
1717

1818
using paddle::capi::cast;
1919

@@ -92,50 +92,26 @@ paddle_error paddle_arguments_set_ids(paddle_arguments args,
9292

9393
paddle_error paddle_arguments_set_sequence_start_pos(paddle_arguments args,
9494
uint64_t ID,
95+
uint32_t nestedLevel,
9596
paddle_ivector seqPos) {
9697
if (args == nullptr || seqPos == nullptr) return kPD_NULLPTR;
9798
auto iv = paddle::capi::cast<paddle::capi::CIVector>(seqPos);
9899
if (iv->vec == nullptr) return kPD_NULLPTR;
99100
auto a = castArg(args);
100-
if (ID >= a->args.size()) return kPD_OUT_OF_RANGE;
101-
a->args[ID].sequenceStartPositions =
102-
std::make_shared<paddle::ICpuGpuVector>(iv->vec);
103-
return kPD_NO_ERROR;
104-
}
105-
106-
paddle_error paddle_arguments_set_sub_sequence_start_pos(
107-
paddle_arguments args, uint64_t ID, paddle_ivector subSeqPos) {
108-
if (args == nullptr || subSeqPos == nullptr) return kPD_NULLPTR;
109-
auto iv = paddle::capi::cast<paddle::capi::CIVector>(subSeqPos);
110-
if (iv->vec == nullptr) return kPD_NULLPTR;
111-
auto a = castArg(args);
112-
if (ID >= a->args.size()) return kPD_OUT_OF_RANGE;
113-
a->args[ID].subSequenceStartPositions =
114-
std::make_shared<paddle::ICpuGpuVector>(iv->vec);
115-
return kPD_NO_ERROR;
101+
return a->accessSeqPos(ID, nestedLevel, [&iv](paddle::ICpuGpuVectorPtr& ptr) {
102+
ptr = std::make_shared<paddle::ICpuGpuVector>(iv->vec);
103+
});
116104
}
117105

118106
paddle_error paddle_arguments_sequence_start_pos(paddle_arguments args,
119107
uint64_t ID,
108+
uint32_t nestedLevel,
120109
paddle_ivector seqPos) {
121110
if (args == nullptr || seqPos == nullptr) return kPD_NULLPTR;
122-
auto iv = castIVec(seqPos);
123-
auto a = castArg(args);
124-
if (ID >= a->args.size()) return kPD_OUT_OF_RANGE;
125-
paddle::Argument& arg = a->args[ID];
126-
iv->vec = arg.sequenceStartPositions->getMutableVector(false);
127-
return kPD_NO_ERROR;
128-
}
129-
130-
paddle_error paddle_arguments_sub_sequence_start_pos(paddle_arguments args,
131-
uint64_t ID,
132-
paddle_ivector subSeqPos) {
133-
if (args == nullptr || subSeqPos == nullptr) return kPD_NULLPTR;
134-
auto iv = castIVec(subSeqPos);
111+
auto iv = paddle::capi::cast<paddle::capi::CIVector>(seqPos);
135112
auto a = castArg(args);
136-
if (ID >= a->args.size()) return kPD_OUT_OF_RANGE;
137-
paddle::Argument& arg = a->args[ID];
138-
iv->vec = arg.subSequenceStartPositions->getMutableVector(false);
139-
return kPD_NO_ERROR;
113+
return a->accessSeqPos(ID, nestedLevel, [&iv](paddle::ICpuGpuVectorPtr& ptr) {
114+
iv->vec = ptr->getMutableVector(false);
115+
});
140116
}
141117
}

paddle/capi/Main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ static void initPaddle(int argc, char** argv) {
2929
}
3030

3131
extern "C" {
32-
paddle_error PDInit(int argc, char** argv) {
32+
paddle_error paddle_init(int argc, char** argv) {
3333
std::vector<char*> realArgv;
3434
realArgv.reserve(argc + 1);
3535
realArgv.push_back(strdup(""));

paddle/capi/PaddleCAPI.h

Lines changed: 7 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -14,220 +14,19 @@ limitations under the License. */
1414

1515
#ifndef PADDLECAPI_H_
1616
#define PADDLECAPI_H_
17-
#include <stdbool.h>
18-
#include <stdint.h>
19-
#include "config.h"
20-
#include "error.h"
21-
#include "matrix.h"
22-
#include "vector.h"
23-
24-
#ifdef __cplusplus
25-
extern "C" {
26-
#endif
2717

2818
/**
2919
* Paddle C API. It will replace SWIG as Multiple Language API for model
3020
* training & inference. Currently it is only used in model infernece.
3121
*
3222
* NOTE: This is an experimental API, it could be changed.
3323
*/
34-
35-
/**
36-
* Arguments functions. Each argument means layer output. Arguments means a
37-
* array of arguemnt.
38-
*/
39-
typedef void* paddle_arguments;
40-
41-
/**
42-
* @brief paddle_arguments_create_none Create a array of arguments, which size
43-
* is zero.
44-
* @return Arguemnts
45-
*/
46-
PD_API paddle_arguments paddle_arguments_create_none();
47-
48-
/**
49-
* @brief paddle_arguments_destroy Destroy the arguments
50-
* @param args arguments to destroy
51-
* @return paddle_error
52-
*/
53-
PD_API paddle_error paddle_arguments_destroy(paddle_arguments args);
54-
55-
/**
56-
* @brief PDArgsGetSize Get size of arguments array
57-
* @param [in] args arguments array
58-
* @param [out] size array size
59-
* @return paddle_error
60-
*/
61-
PD_API paddle_error paddle_arguments_size(paddle_arguments args,
62-
uint64_t* size);
63-
64-
/**
65-
* @brief PDArgsResize Resize a arguments array.
66-
* @param args arguments array.
67-
* @param size target size of array
68-
* @return paddle_error
69-
*/
70-
PD_API paddle_error paddle_arguments_resize(paddle_arguments args,
71-
uint64_t size);
72-
73-
/**
74-
* @brief PDArgsSetValue Set value matrix of one argument in array, which index
75-
* is `ID`.
76-
* @param args arguments array
77-
* @param ID array index
78-
* @param mat matrix pointer
79-
* @return paddle_error
80-
*/
81-
PD_API paddle_error paddle_arguments_set_value(paddle_arguments args,
82-
uint64_t ID,
83-
paddle_matrix mat);
84-
85-
/**
86-
* @brief PDArgsGetValue Get value matrix of one argument in array, which index
87-
* is `ID`.
88-
* @param [in] args arguments array
89-
* @param [in] ID array index
90-
* @param [out] mat matrix pointer
91-
* @return paddle_error
92-
*/
93-
PD_API paddle_error paddle_arguments_value(paddle_arguments args,
94-
uint64_t ID,
95-
paddle_matrix mat);
96-
97-
/**
98-
* @brief PDArgsGetIds Get the integer vector of one argument in array, which
99-
* index is `ID`.
100-
* @param args arguments array
101-
* @param ID array index
102-
* @param ids integer vector pointer
103-
* @return paddle_error
104-
*/
105-
PD_API paddle_error paddle_arguments_ids(paddle_arguments args,
106-
uint64_t ID,
107-
paddle_ivector ids);
108-
109-
/**
110-
* @brief PDArgsSetIds Set the integer vector of one argument in array, which
111-
* index is `ID`.
112-
* @param [in] args arguments array
113-
* @param [in] ID array index
114-
* @param [out] ids integer vector pointer
115-
* @return paddle_error
116-
*/
117-
PD_API paddle_error paddle_arguments_set_ids(paddle_arguments args,
118-
uint64_t ID,
119-
paddle_ivector ids);
120-
121-
/**
122-
* @brief PDArgsSetSequenceStartPos Set sequence start position vector of one
123-
* argument in array, which index is `ID`.
124-
* @param args arguments array
125-
* @param ID array index
126-
* @param seqPos sequence position array.
127-
* @return paddle_error
128-
*/
129-
PD_API paddle_error paddle_arguments_set_sequence_start_pos(
130-
paddle_arguments args, uint64_t ID, paddle_ivector seqPos);
131-
/**
132-
* @brief PDArgsGetSequenceStartPos Get sequence start position vector of one
133-
* argument in array, which index is `ID`.
134-
* @param [in] args arguments array
135-
* @param [in] ID array index
136-
* @param [out] seqPos sequence position array
137-
* @return paddle_error
138-
*/
139-
PD_API paddle_error paddle_arguments_sequence_start_pos(paddle_arguments args,
140-
uint64_t ID,
141-
paddle_ivector seqPos);
142-
143-
/**
144-
* @brief PDArgsSetSubSequenceStartPos Set sub-sequence start position vector of
145-
* one argument in array, which index is `ID`.
146-
* @param args arguments array
147-
* @param ID array index
148-
* @param subSeqPos sub-sequence start position array.
149-
* @return paddle_error
150-
*/
151-
PD_API paddle_error paddle_arguments_set_sub_sequence_start_pos(
152-
paddle_arguments args, uint64_t ID, paddle_ivector subSeqPos);
153-
154-
/**
155-
* @brief PDArgsGetSubSequenceStartPos Get sub-sequence start position vector of
156-
* one argument in array, which index is `ID`.
157-
* @param args arguments array
158-
* @param ID array index
159-
* @param subSeqPos sub-sequence start position array
160-
* @return paddle_error
161-
*/
162-
PD_API paddle_error paddle_arguments_sub_sequence_start_pos(
163-
paddle_arguments args, uint64_t ID, paddle_ivector subSeqPos);
164-
/**
165-
* @brief GradientMachine means a neural network.
166-
*/
167-
typedef void* PD_GradientMachine;
168-
169-
/**
170-
* @brief PDGradientMachineCreateForPredict Create a gradient machine used for
171-
* model inference.
172-
* @param [out] machine that used for model inference.
173-
* @param [in] modelConfigProtobuf
174-
* @param [in] size
175-
* @return paddle_error
176-
*/
177-
PD_API paddle_error PDGradientMachineCreateForPredict(
178-
PD_GradientMachine* machine, void* modelConfigProtobuf, int size);
179-
180-
/**
181-
* @brief PDGradientMachineLoadParameterFromDisk Load parameter from disk.
182-
* @param machine Gradient Machine.
183-
* @param path local directory path.
184-
* @return paddle_error
185-
*/
186-
PD_API paddle_error PDGradientMachineLoadParameterFromDisk(
187-
PD_GradientMachine machine, const char* path);
188-
189-
/**
190-
* @brief PDGradientMachineForward Forward a gradient machine
191-
* @param machine Gradient machine
192-
* @param inArgs input arguments
193-
* @param outArgs output arguments
194-
* @param isTrain is train or not
195-
* @return paddle_error
196-
*/
197-
PD_API paddle_error PDGradientMachineForward(PD_GradientMachine machine,
198-
paddle_arguments inArgs,
199-
paddle_arguments outArgs,
200-
bool isTrain);
201-
202-
/**
203-
* @brief PDGradientMachineCreateSharedParam Create a gradient machine, which
204-
* parameters are shared from another gradient machine.
205-
* @param [in] origin gradient machine
206-
* @param [in] modelConfigProtobuf model config protobuf
207-
* @param [in] size of model config buffer.
208-
* @param [out] slave gradient machine, the output value.
209-
* @return paddle_error
210-
*/
211-
PD_API paddle_error
212-
PDGradientMachineCreateSharedParam(PD_GradientMachine origin,
213-
void* modelConfigProtobuf,
214-
int size,
215-
PD_GradientMachine* slave);
216-
217-
/**
218-
* @brief PDGradientMachineDestroy Destroy a gradient machine
219-
* @param machine that need to destroy
220-
* @return paddle_error
221-
*/
222-
PD_API paddle_error PDGradientMachineDestroy(PD_GradientMachine machine);
223-
224-
/**
225-
* Initialize Paddle.
226-
*/
227-
PD_API paddle_error PDInit(int argc, char** argv);
228-
229-
#ifdef __cplusplus
230-
}
231-
#endif
24+
#include "arguments.h"
25+
#include "config.h"
26+
#include "error.h"
27+
#include "gradient_machine.h"
28+
#include "main.h"
29+
#include "matrix.h"
30+
#include "vector.h"
23231

23332
#endif // PADDLECAPI_H_

paddle/capi/PaddleCAPIPrivate.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,22 @@ struct CArguments {
4949
std::vector<paddle::Argument> args;
5050

5151
CArguments() : type(kARGUMENTS) {}
52+
53+
template <typename T>
54+
paddle_error accessSeqPos(uint64_t ID, uint32_t nestedLevel, T callback) {
55+
if (ID >= args.size()) return kPD_OUT_OF_RANGE;
56+
switch (nestedLevel) {
57+
case 0:
58+
callback(args[ID].sequenceStartPositions);
59+
break;
60+
case 1:
61+
callback(args[ID].subSequenceStartPositions);
62+
break;
63+
default:
64+
return kPD_OUT_OF_RANGE;
65+
}
66+
return kPD_NO_ERROR;
67+
}
5268
};
5369

5470
struct CGradientMachine {

0 commit comments

Comments
 (0)