Data Type¶
C_Status¶
Definition¶
typedef enum {
C_SUCCESS = 0,
C_WARNING,
C_FAILED,
C_ERROR,
C_INTERNAL_ERROR
} C_Status;
Description¶
C_SUCCESS - The returned value when the execution of the function is a success
C_WARNING - The returned value when the performance of the funtion falls short of expectations. For example, the asynchronous API is actually synchronous.
C_FAILED - Resources runs out or the request fails.
C_ERROR - Parameter error, incorrect usage, or not initialized.
C_INTERNAL_ERROR - Plug-in internal error
C_Device¶
Definition¶
typedef struct C_Device_st { int id; } * C_Device;
Description¶
It describes a device.
C_Stream¶
Definition¶
typedef struct C_Stream_st* C_Stream;
Description¶
It describes a stream, which is used to execute asynchronous tasks within the framework. In the stream, tasks are executed in order.
C_Event¶
Definition¶
typedef struct C_Event_st* C_Event;
Description¶
It describes an event, which is used to synchronize tasks from different streams within the framework.
C_Callback¶
Definition¶
typedef void (*C_Callback)(C_Device device,
C_Stream stream,
void* user_data,
C_Status* status);
Description¶
It is the callback function offered by the host and has four parameters: device, stream, user data, and returned value.
CustomRuntimeParams¶
Definition¶
struct CustomRuntimeParams {
size_t size;
C_DeviceInterface* interface;
CustomRuntimeVersion version;
char* device_type;
char* sub_device_type;
char reserved[32];
};
Description¶
They are function parameters of InitPlugin.
size - the size of CustomRuntimeParams. The size of the framework and the plug-in may be different. You need to first check the size of the plug-in and ensure that memory access does not cross the boundary. It is feasible to use the macro of PADDLE_CUSTOM_RUNTIME_CHECK_VERSION in the check.
interface - the device callback interface. It is necessary for the plug-in to implement essential APIs and fill the parameter in to finish registration.
version - the custom runtime version defined in the device_ext.h, which is used to check the version compatibility by the framework.
device_type - the appellation of the device type, used by the framework to distinguish devices and exposed to the user layer to specify the hardware back end, such as “CustomCPU”.
sub_device_type - the appellation of the sub-device type, used to interpret the plug-in version, such as “V1.0”.
CustomRuntimeVersion¶
Definition¶
struct CustomRuntimeVersion {
size_t major, minor, patch;
};
Description¶
It is the custom runtime version used by the plug-in. It is used to check the version compatibility by the framework and can be filled up by the macro of PADDLE_CUSTOM_RUNTIME_CHECK_VERSION.
C_DeviceInterface¶
Definition¶
For detailed definitions of the types of C_DeviceInterface, please refer to device_ext.h.
Description¶
It collects the custom runtime callback APIs.