liblarod  3.1.28
larod.h
Go to the documentation of this file.
1 
11 #ifndef COM_AXIS_LAROD_H
12 #define COM_AXIS_LAROD_H
13 
14 #include <limits.h>
15 #include <stdbool.h>
16 #include <stdint.h>
17 #include <stdlib.h>
18 
19 #include "larod-version.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #if defined(LAROD_API_VERSION_1) && defined(LAROD_API_VERSION_2)
26 #error API version ambiguous, specify at most one version \
27  (#define LAROD_API_VERSION_*) before including larod.h
28 #endif
29 
33 #define LAROD_TENSOR_MAX_LEN 12
34 
38 #define LAROD_INVALID_MODEL_ID UINT64_MAX
39 
43 #define LAROD_INVALID_FD (INT_MIN)
44 
66 #define LAROD_FD_PROP_READWRITE (1UL << 0)
68 #define LAROD_FD_PROP_MAP (1UL << 1)
70 #define LAROD_FD_PROP_DMABUF (1UL << 2)
73 
82 #define LAROD_FD_TYPE_DMA (LAROD_FD_PROP_DMABUF | LAROD_FD_PROP_MAP)
84 #define LAROD_FD_TYPE_DISK (LAROD_FD_PROP_READWRITE | LAROD_FD_PROP_MAP)
87 
102 typedef struct larodDevice larodDevice;
103 
104 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2) || \
105  defined(LAROD_DOXYGEN)
106 
115 typedef enum {
140 } larodChip;
141 #endif
142 
149 typedef enum {
153 } larodAccess;
154 
166 typedef enum {
171 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
176 #endif
206 
217 typedef enum {
234 
270 typedef enum {
290 
298 typedef struct {
300  const char* msg;
301 } larodError;
302 
320 typedef struct {
321  size_t dims[LAROD_TENSOR_MAX_LEN];
322  size_t len;
324 
374 typedef struct {
375  size_t pitches[LAROD_TENSOR_MAX_LEN];
376  size_t len;
378 
388 typedef struct larodModel larodModel;
389 
406 typedef void (*larodLoadModelCallback)(larodModel* model, void* userData,
407  larodError* error);
408 
423 typedef void (*larodRunJobCallback)(void* userData, larodError* error);
424 
432 
439 
447 typedef struct larodTensor larodTensor;
448 
458 typedef struct larodMap larodMap;
459 
460 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
461 
479 typedef void (*larodRunInferenceCallback)(void* userData, larodError* error);
480 #endif
481 
482 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
483 
493 #endif
494 
505 void larodClearError(larodError** error);
506 
520 bool larodConnect(larodConnection** conn, larodError** error);
521 
538 bool larodDisconnect(larodConnection** conn, larodError** error);
539 
550 bool larodGetNumSessions(larodConnection* conn, uint64_t* numSessions,
551  larodError** error);
552 
573 const larodDevice* larodGetDevice(const larodConnection* conn, const char* name,
574  const uint32_t instance, larodError** error);
575 
586 const char* larodGetDeviceName(const larodDevice* dev, larodError** error);
587 
606 bool larodGetDeviceInstance(const larodDevice* dev, uint32_t* instance,
607  larodError** error);
608 
609 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2)
610 
624 const char* larodGetChipName(const larodChip chip);
625 #endif
626 
627 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2) || \
628  defined(LAROD_DOXYGEN)
629 
653 bool larodListChips(larodConnection* conn, larodChip** chips, size_t* numChips,
654  larodError** error);
655 #endif
656 
672 const larodDevice** larodListDevices(larodConnection* conn, size_t* numDevices,
673  larodError** error);
674 
675 #if defined(LAROD_API_VERSION_1)
676 larodModel* larodLoadModel_API_VERSION_1(larodConnection* conn, const int fd,
677  const larodAccess access,
678  const char* name, larodError** error);
679 #define larodLoadModel larodLoadModel_API_VERSION_1
680 #elif defined(LAROD_API_VERSION_2)
681 larodModel* larodLoadModel_API_VERSION_2(larodConnection* conn, const int fd,
682  const larodChip chip,
683  const larodAccess access,
684  const char* name,
685  const larodMap* params,
686  larodError** error);
687 #define larodLoadModel larodLoadModel_API_VERSION_2
688 #else
689 
713 larodModel* larodLoadModel(larodConnection* conn, const int fd,
714  const larodDevice* dev, const larodAccess access,
715  const char* name, const larodMap* params,
716  larodError** error);
717 
718 #endif
719 
720 #if defined(LAROD_API_VERSION_1)
721 bool larodLoadModelAsync_API_VERSION_1(larodConnection* conn, const int fd,
722  const larodAccess access,
723  const char* name,
724  larodLoadModelCallback callback,
725  void* userData, larodError** error);
726 #define larodLoadModelAsync larodLoadModelAsync_API_VERSION_1
727 #elif defined(LAROD_API_VERSION_2)
728 bool larodLoadModelAsync_API_VERSION_2(larodConnection* conn, const int fd,
729  const larodChip chip,
730  const larodAccess access,
731  const char* name, const larodMap* params,
732  larodLoadModelCallback callback,
733  void* userData, larodError** error);
734 #define larodLoadModelAsync larodLoadModelAsync_API_VERSION_2
735 #else
736 
758 bool larodLoadModelAsync(larodConnection* conn, const int inFd,
759  const larodDevice* dev, const larodAccess access,
760  const char* name, const larodMap* params,
761  larodLoadModelCallback callback, void* userData,
762  larodError** error);
763 
764 #endif
765 
780 larodModel* larodGetModel(larodConnection* conn, const uint64_t modelId,
781  larodError** error);
782 
805 larodModel** larodGetModels(larodConnection* conn, size_t* numModels,
806  larodError** error);
807 
819 void larodDestroyModel(larodModel** model);
820 
832 void larodDestroyModels(larodModel*** models, size_t numModels);
833 
852 bool larodDeleteModel(larodConnection* conn, larodModel* model,
853  larodError** error);
854 
868 uint64_t larodGetModelId(const larodModel* model, larodError** error);
869 
870 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
871 
886 larodChip larodGetModelChip(const larodModel* model, larodError** error);
887 #endif
888 
905 const larodDevice* larodGetModelDevice(const larodModel* model,
906  larodError** error);
907 
919 size_t larodGetModelSize(const larodModel* model, larodError** error);
920 
934 const char* larodGetModelName(const larodModel* model, larodError** error);
935 
948 
958 size_t larodGetModelNumInputs(const larodModel* model, larodError** error);
959 
969 size_t larodGetModelNumOutputs(const larodModel* model, larodError** error);
970 
990 size_t* larodGetModelInputByteSizes(const larodModel* model, size_t* numInputs,
991  larodError** error);
992 
1013 size_t* larodGetModelOutputByteSizes(const larodModel* model,
1014  size_t* numOutputs, larodError** error);
1015 
1046  size_t* numTensors, larodError** error);
1047 
1078  size_t* numTensors, larodError** error);
1079 
1126  const larodModel* model,
1127  const uint32_t fdPropFlags,
1128  size_t* numTensors, larodMap* params,
1129  larodError** error);
1130 
1177  const larodModel* model,
1178  const uint32_t fdPropFlags,
1179  size_t* numTensors, larodMap* params,
1180  larodError** error);
1181 
1209 larodTensor** larodCreateTensors(size_t numTensors, larodError** error);
1210 
1211 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2)
1212 void larodDestroyTensors_API_VERSION_1(larodTensor*** tensors,
1213  size_t numTensors);
1214 #define larodDestroyTensors larodDestroyTensors_API_VERSION_1
1215 #else
1216 
1243 bool larodDestroyTensors(larodConnection* conn, larodTensor*** tensors,
1244  size_t numTensors, larodError** error);
1245 #endif
1246 
1267 bool larodSetTensorDims(larodTensor* tensor, const larodTensorDims* dims,
1268  larodError** error);
1269 
1284 const larodTensorDims* larodGetTensorDims(const larodTensor* tensor,
1285  larodError** error);
1286 
1303 bool larodSetTensorPitches(larodTensor* tensor,
1304  const larodTensorPitches* pitches,
1305  larodError** error);
1306 
1321  larodError** error);
1322 
1337 bool larodSetTensorDataType(larodTensor* tensor,
1338  const larodTensorDataType dataType,
1339  larodError** error);
1340 
1352 larodTensorDataType larodGetTensorDataType(const larodTensor* tensor,
1353  larodError** error);
1354 
1369 bool larodSetTensorLayout(larodTensor* tensor, const larodTensorLayout layout,
1370  larodError** error);
1371 
1383 larodTensorLayout larodGetTensorLayout(const larodTensor* tensor,
1384  larodError** error);
1385 
1396 bool larodSetTensorFd(larodTensor* tensor, const int fd, larodError** error);
1397 
1409 int larodGetTensorFd(const larodTensor* tensor, larodError** error);
1410 
1432 bool larodSetTensorFdSize(larodTensor* tensor, const size_t size,
1433  larodError** error);
1434 
1450 bool larodGetTensorFdSize(const larodTensor* tensor, size_t* size,
1451  larodError** error);
1452 
1468 bool larodSetTensorFdOffset(larodTensor* tensor, const int64_t offset,
1469  larodError** error);
1470 
1484 int64_t larodGetTensorFdOffset(const larodTensor* tensor, larodError** error);
1485 
1511 bool larodTrackTensor(larodConnection* conn, larodTensor* tensor,
1512  larodError** error);
1513 
1538 bool larodSetTensorFdProps(larodTensor* tensor, const uint32_t fdPropFlags,
1539  larodError** error);
1540 
1554 bool larodGetTensorFdProps(const larodTensor* tensor, uint32_t* fdPropFlags,
1555  larodError** error);
1556 
1570 const char* larodGetTensorName(const larodTensor* tensor, larodError** error);
1571 
1586 bool larodGetTensorByteSize(const larodTensor* tensor, size_t* byteSize,
1587  larodError** error);
1588 
1616 
1625 void larodDestroyMap(larodMap** map);
1626 
1645 bool larodMapSetStr(larodMap* map, const char* key, const char* value,
1646  larodError** error);
1647 
1666 bool larodMapSetInt(larodMap* map, const char* key, const int64_t value,
1667  larodError** error);
1668 
1688 bool larodMapSetIntArr2(larodMap* map, const char* key, const int64_t value0,
1689  const int64_t value1, larodError** error);
1690 
1712 bool larodMapSetIntArr4(larodMap* map, const char* key, const int64_t value0,
1713  const int64_t value1, const int64_t value2,
1714  const int64_t value3, larodError** error);
1715 
1732 const char* larodMapGetStr(larodMap* map, const char* key, larodError** error);
1733 
1752 bool larodMapGetInt(larodMap* map, const char* key, int64_t* value,
1753  larodError** error);
1754 
1771 const int64_t* larodMapGetIntArr2(larodMap* map, const char* key,
1772  larodError** error);
1773 
1790 const int64_t* larodMapGetIntArr4(larodMap* map, const char* key,
1791  larodError** error);
1792 
1823  larodTensor** inputTensors,
1824  size_t numInputs,
1825  larodTensor** outputTensors,
1826  size_t numOutputs, larodMap* params,
1827  larodError** error);
1828 
1839 
1854 bool larodSetJobRequestModel(larodJobRequest* jobReq, const larodModel* model,
1855  larodError** error);
1856 
1871 bool larodSetJobRequestInputs(larodJobRequest* jobReq, larodTensor** tensors,
1872  const size_t numTensors, larodError** error);
1873 
1888 bool larodSetJobRequestOutputs(larodJobRequest* jobReq, larodTensor** tensors,
1889  const size_t numTensors, larodError** error);
1890 
1925 bool larodSetJobRequestPriority(larodJobRequest* jobReq, const uint8_t priority,
1926  larodError** error);
1927 
1943 bool larodSetJobRequestParams(larodJobRequest* jobReq, const larodMap* params,
1944  larodError** error);
1945 
1973 bool larodRunJob(larodConnection* conn, const larodJobRequest* jobReq,
1974  larodError** error);
1975 
2013 bool larodRunJobAsync(larodConnection* conn, const larodJobRequest* jobReq,
2014  larodRunJobCallback callback, void* userData,
2015  larodError** error);
2016 
2017 #ifdef LAROD_DOXYGEN
2018 // The following declaration is only for documentation purposes. Not to be used
2019 // in actual code.
2044 larodModel* larodLoadModel(larodConnection* conn, const int fd,
2045  const larodAccess access, const char* name,
2046  larodError** error);
2047 #endif
2048 
2049 #ifdef LAROD_DOXYGEN
2050 // The following declaration is only for documentation purposes. Not to be used
2051 // in actual code.
2080 larodModel* larodLoadModel(larodConnection* conn, const int fd,
2081  const larodChip chip, const larodAccess access,
2082  const char* name, const larodMap* params,
2083  larodError** error);
2084 #endif
2085 
2086 #ifdef LAROD_DOXYGEN
2087 // The following declaration is only for documentation purposes. Not to be used
2088 // in actual code.
2110 bool larodLoadModelAsync(larodConnection* conn, const int fd,
2111  const larodAccess access, const char* name,
2112  larodLoadModelCallback callback, void* userData,
2113  larodError** error);
2114 #endif
2115 
2116 #ifdef LAROD_DOXYGEN
2117 // The following declaration is only for documentation purposes. Not to be used
2118 // in actual code.
2145 bool larodLoadModelAsync(larodConnection* conn, const int fd,
2146  const larodChip chip, const larodAccess access,
2147  const char* name, const larodMap* params,
2148  larodLoadModelCallback callback, void* userData,
2149  larodError** error);
2150 #endif
2151 
2152 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2153 
2186  const larodModel* model, larodTensor** inputTensors, size_t numInputs,
2187  larodTensor** outputTensors, size_t numOutputs, larodError** error);
2188 #endif
2189 
2190 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2191 
2205 #define larodDestroyInferenceRequest larodDestroyJobRequest
2206 #endif
2207 
2208 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2209 
2229  const larodModel* model, larodError** error);
2230 #define larodSetInferenceRequestModel larodSetJobRequestModel
2231 #endif
2232 
2233 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2234 
2254  larodTensor** tensors,
2255  const size_t numTensors,
2256  larodError** error);
2257 #define larodSetInferenceRequestInputs larodSetJobRequestInputs
2258 #endif
2259 
2260 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2261 
2281  larodTensor** tensors,
2282  const size_t numTensors,
2283  larodError** error);
2284 #define larodSetInferenceRequestOutputs larodSetJobRequestOutputs
2285 #endif
2286 
2287 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2288 
2327  const uint8_t priority,
2328  larodError** error);
2329 #define larodSetInferenceRequestPriority larodSetJobRequestPriority
2330 #endif
2331 
2332 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2333 
2363  const larodInferenceRequest* infReq, larodError** error);
2364 #endif
2365 
2366 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2367 
2407  const larodInferenceRequest* infReq,
2408  larodRunInferenceCallback callback, void* userData,
2409  larodError** error);
2410 #endif
2411 
2412 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
2413 bool larodRunJobAsync_API_VERSION_2(larodConnection* conn,
2414  const larodJobRequest* jobReq,
2415  larodRunJobCallback callback,
2416  void* userData, larodError** error);
2417 #define larodRunJobAsync larodRunJobAsync_API_VERSION_2
2418 #endif
2419 
2420 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
2421 bool larodRunJob_API_VERSION_2(larodConnection* conn,
2422  const larodJobRequest* jobReq,
2423  larodError** error);
2424 #define larodRunJob larodRunJob_API_VERSION_2
2425 #endif
2426 
2427 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2428 
2442 bool larodGetChipId(larodConnection* conn, uint64_t* chipId,
2443  larodError** error);
2444 #endif
2445 
2446 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2447 
2461 bool larodSetChipId(larodConnection* conn, const uint64_t chipId,
2462  larodError** error);
2463 #endif
2464 
2465 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2466 
2483 bool larodSetChip(larodConnection* conn, const larodChip chip,
2484  larodError** error);
2485 #endif
2486 
2487 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2488 
2502 bool larodGetChipType(larodConnection* conn, larodChip* chipType,
2503  larodError** error);
2504 #endif
2505 
2506 #if defined(LAROD_DOXYGEN)
2507 
2524 void larodDestroyTensors(larodTensor*** tensors, size_t numTensors);
2525 #endif
2526 
2527 #ifdef __cplusplus
2528 }
2529 #endif
2530 
2531 #endif // COM_AXIS_LAROD_H
const larodTensorDims * larodGetTensorDims(const larodTensor *tensor, larodError **error)
Get dimensions of a tensor.
64-bit unsigned integer.
Definition: larod.h:227
bool larodSetJobRequestInputs(larodJobRequest *jobReq, larodTensor **tensors, const size_t numTensors, larodError **error)
Set input tensor array in a request.
Dummy chip for debugging.
Definition: larod.h:119
Tensor mismatch.
Definition: larod.h:198
Max errno value (dummy value).
Definition: larod.h:204
int larodGetTensorFd(const larodTensor *tensor, larodError **error)
Get file descriptor of a tensor.
size_t larodGetModelNumInputs(const larodModel *model, larodError **error)
Get number of input tensors for a model.
Public access.
Definition: larod.h:152
Error while allocating.
Definition: larod.h:202
const larodDevice * larodGetDevice(const larodConnection *conn, const char *name, const uint32_t instance, larodError **error)
Get an available device.
void larodDestroyMap(larodMap **map)
Destroy a larodMap.
bool larodGetChipType(larodConnection *conn, larodChip *chipType, larodError **error)
Get current chip type in use for the session in larod.
size_t * larodGetModelOutputByteSizes(const larodModel *model, size_t *numOutputs, larodError **error)
Get output tensor byte sizes for a model.
Insufficient permissions.
Definition: larod.h:184
bool larodSetTensorFdSize(larodTensor *tensor, const size_t size, larodError **error)
Set file descriptor maximum capacity (bytes) for a tensor.
64-bit signed integer.
Definition: larod.h:228
16-bit unsigned integer.
Definition: larod.h:223
const char * larodMapGetStr(larodMap *map, const char *key, larodError **error)
Get string type value tied to given key.
size_t larodGetModelSize(const larodModel *model, larodError **error)
Get model size.
larodMap * larodCreateMap(larodError **error)
Create new larodMap.
bool larodSetInferenceRequestModel(larodInferenceRequest *infReq, const larodModel *model, larodError **error)
Set model in an inference request.
size_t len
Length of pitches array.
Definition: larod.h:376
bool larodDeleteModel(larodConnection *conn, larodModel *model, larodError **error)
Delete a loaded model.
larodTensorDataType larodGetTensorDataType(const larodTensor *tensor, larodError **error)
Get data type of a tensor.
larodTensor ** larodCreateModelOutputs(const larodModel *model, size_t *numTensors, larodError **error)
Create output tensors from a model.
bool larodRunInference(larodConnection *conn, const larodInferenceRequest *infReq, larodError **error)
Run inference on a loaded model.
Private access.
Definition: larod.h:151
16-bit floating point.
Definition: larod.h:229
larodTensor ** larodCreateTensors(size_t numTensors, larodError **error)
Create a list of empty larodTensor handles.
Invalid chip.
Definition: larod.h:117
bool larodSetTensorDims(larodTensor *tensor, const larodTensorDims *dims, larodError **error)
Set the dimensions of a tensor.
uint64_t larodGetModelId(const larodModel *model, larodError **error)
Get model ID.
Definition: larod.h:273
32-bit signed integer.
Definition: larod.h:226
larodErrorCode code
Error code.
Definition: larod.h:299
size_t len
Length of dims array.
Definition: larod.h:322
bool larodSetJobRequestPriority(larodJobRequest *jobReq, const uint8_t priority, larodError **error)
Set an priority of a job request.
Invalid access specifier.
Definition: larod.h:194
8-bit unsigned integer.
Definition: larod.h:221
bool larodSetChip(larodConnection *conn, const larodChip chip, larodError **error)
Set current chip using larodChip in use for the session in larod.
bool larodListChips(larodConnection *conn, larodChip **chips, size_t *numChips, larodError **error)
List available chips.
bool larodMapGetInt(larodMap *map, const char *key, int64_t *value, larodError **error)
Get an integer type value tied to given key.
bool larodSetChipId(larodConnection *conn, const uint64_t chipId, larodError **error)
Set current chip using ID in use for the session in larod.
bool larodMapSetIntArr4(larodMap *map, const char *key, const int64_t value0, const int64_t value1, const int64_t value2, const int64_t value3, larodError **error)
Add an integer array of four elements to a larodMap object.
bool larodDisconnect(larodConnection **conn, larodError **error)
Disconnect from larod.
Version mismatch.
Definition: larod.h:200
Definition: larod.h:286
16-bit signed integer.
Definition: larod.h:224
void(* larodLoadModelCallback)(larodModel *model, void *userData, larodError *error)
Callback used in larodLoadModelAsync().
Definition: larod.h:406
larodTensorLayout
Enum type for specifying tensor layout.
Definition: larod.h:270
bool larodSetTensorFdOffset(larodTensor *tensor, const int64_t offset, larodError **error)
Set file offset for a tensor.
bool larodLoadModelAsync(larodConnection *conn, const int inFd, const larodDevice *dev, const larodAccess access, const char *name, const larodMap *params, larodLoadModelCallback callback, void *userData, larodError **error)
Load a new model asynchronously.
Axis Compute Engine.
Definition: larod.h:132
General error for loading model.
Definition: larod.h:178
bool larodSetTensorDataType(larodTensor *tensor, const larodTensorDataType dataType, larodError **error)
Set data type of a tensor.
larodTensor ** larodAllocModelOutputs(larodConnection *conn, const larodModel *model, const uint32_t fdPropFlags, size_t *numTensors, larodMap *params, larodError **error)
Create and allocate output tensors from a model.
void(* larodRunInferenceCallback)(void *userData, larodError *error)
Callback used in larodRunInferenceAsync().
Definition: larod.h:479
bool larodGetTensorFdSize(const larodTensor *tensor, size_t *size, larodError **error)
Get file descriptor maximum capacity (bytes) for a tensor.
#define LAROD_TENSOR_MAX_LEN
Maximum number of dimensions of a larodTensor.
Definition: larod.h:33
bool larodMapSetIntArr2(larodMap *map, const char *key, const int64_t value0, const int64_t value1, larodError **error)
Add an integer array of two elements to a larodMap object.
bool larodSetTensorLayout(larodTensor *tensor, const larodTensorLayout layout, larodError **error)
Set layout of a tensor.
Max enum (dummy value).
Definition: larod.h:288
General error for job.
Definition: larod.h:170
Invalid access.
Definition: larod.h:150
const char * larodGetTensorName(const larodTensor *tensor, larodError **error)
Get name of tensor.
Image processing using OpenCL.
Definition: larod.h:139
const int64_t * larodMapGetIntArr4(larodMap *map, const char *key, larodError **error)
Get an integer array of four elements tied to given key.
Invalid chip ID.
Definition: larod.h:192
struct larodDevice larodDevice
A type for representing a device.
Definition: larod.h:102
bool larodSetInferenceRequestPriority(larodInferenceRequest *infReq, const uint8_t priority, larodError **error)
Set an priority of an inference request.
Definition: larod.h:175
larodTensor ** larodCreateModelInputs(const larodModel *model, size_t *numTensors, larodError **error)
Create input tensors from a model.
larodTensor ** larodAllocModelInputs(larodConnection *conn, const larodModel *model, const uint32_t fdPropFlags, size_t *numTensors, larodMap *params, larodError **error)
Create and allocate input tensors from a model.
larodJobRequest * larodCreateJobRequest(const larodModel *model, larodTensor **inputTensors, size_t numInputs, larodTensor **outputTensors, size_t numOutputs, larodMap *params, larodError **error)
Create and initialize a job request handle.
A type containing information about a tensor&#39;s dimensions.
Definition: larod.h:320
Ambarella CVFlow (NN).
Definition: larod.h:125
struct larodModel larodModel
A type representing a model.
Definition: larod.h:388
larodTensorDataType
Enum type for specifying tensor data type.
Definition: larod.h:217
bool larodSetJobRequestParams(larodJobRequest *jobReq, const larodMap *params, larodError **error)
Set additional parameters to a job request.
larodErrorCode
Enum type for error codes.
Definition: larod.h:166
const char * msg
Error message.
Definition: larod.h:300
32-bit floating point.
Definition: larod.h:230
larodTensorLayout larodGetTensorLayout(const larodTensor *tensor, larodError **error)
Get layout of a tensor.
struct larodJobRequest larodInferenceRequest
Type describing a job request.
Definition: larod.h:492
bool larodSetTensorFdProps(larodTensor *tensor, const uint32_t fdPropFlags, larodError **error)
Set the properties for a file descriptor of a tensor.
Type containing error information.
Definition: larod.h:298
larodAccess
Enum type for specifying access.
Definition: larod.h:149
bool larodSetJobRequestOutputs(larodJobRequest *jobReq, larodTensor **tensors, const size_t numTensors, larodError **error)
Set output tensor array in a job request.
larodChip
Enum type with supported chips.
Definition: larod.h:115
void larodDestroyInferenceRequest(larodInferenceRequest **infReq)
Destroy an inference request handle.
Definition: larod.h:137
bool larodGetTensorFdProps(const larodTensor *tensor, uint32_t *fdPropFlags, larodError **error)
Get the properties of a file descriptor of a tensor.
64-bit floating point.
Definition: larod.h:231
const int64_t * larodMapGetIntArr2(larodMap *map, const char *key, larodError **error)
Get an integer array of two elements tied to given key.
bool larodRunJobAsync(larodConnection *conn, const larodJobRequest *jobReq, larodRunJobCallback callback, void *userData, larodError **error)
Run a job on a loaded model asynchronously.
larodAccess larodGetModelAccess(const larodModel *model, larodError **error)
Get model access mode.
bool larodSetJobRequestModel(larodJobRequest *jobReq, const larodModel *model, larodError **error)
Set model in a request.
bool larodTrackTensor(larodConnection *conn, larodTensor *tensor, larodError **error)
Start tracking a tensor in the service.
bool larodRunInferenceAsync(larodConnection *conn, const larodInferenceRequest *infReq, larodRunInferenceCallback callback, void *userData, larodError **error)
Run inference on a loaded model asynchronously.
struct larodTensor larodTensor
A type representing a tensor.
Definition: larod.h:447
const larodDevice * larodGetModelDevice(const larodModel *model, larodError **error)
Get device for a model.
bool larodGetChipId(larodConnection *conn, uint64_t *chipId, larodError **error)
Get current chip ID in use for the session in larod.
void larodClearError(larodError **error)
Deallocate an error handle.
bool larodMapSetInt(larodMap *map, const char *key, const int64_t value, larodError **error)
Add an integer to a larodMap object.
const char * larodGetDeviceName(const larodDevice *dev, larodError **error)
Get the name of a device.
larodModel * larodGetModel(larodConnection *conn, const uint64_t modelId, larodError **error)
Get handle to a model by model ID.
struct larodMap larodMap
A type containing key-value pairs.
Definition: larod.h:458
No layout is specified.
Definition: larod.h:272
bool larodMapSetStr(larodMap *map, const char *key, const char *value, larodError **error)
Add a string to a larodMap object.
const char * larodGetModelName(const larodModel *model, larodError **error)
Get model name.
Error regarding file descriptors.
Definition: larod.h:180
Invalid layout.
Definition: larod.h:271
32-bit unsigned integer.
Definition: larod.h:225
larodInferenceRequest * larodCreateInferenceRequest(const larodModel *model, larodTensor **inputTensors, size_t numInputs, larodTensor **outputTensors, size_t numOutputs, larodError **error)
Create and initialize an inference request handle.
bool larodDestroyTensors(larodConnection *conn, larodTensor ***tensors, size_t numTensors, larodError **error)
Destroy a list of larodTensor.
void larodDestroyModel(larodModel **model)
Free an allocated larodModel handle.
bool larodSetInferenceRequestInputs(larodInferenceRequest *infReq, larodTensor **tensors, const size_t numTensors, larodError **error)
Set input tensor array in an inference request.
Error while deleting model.
Definition: larod.h:196
Failed killing session.
Definition: larod.h:190
bool larodSetInferenceRequestOutputs(larodInferenceRequest *infReq, larodTensor **tensors, const size_t numTensors, larodError **error)
Set output tensor array in an inference request.
size_t larodGetModelNumOutputs(const larodModel *model, larodError **error)
Get number of output tensors for a model.
Definition: larod.h:279
void larodDestroyModels(larodModel ***models, size_t numModels)
Destroy a list of model objects.
Definition: larod.h:128
larodModel * larodLoadModel(larodConnection *conn, const int fd, const larodDevice *dev, const larodAccess access, const char *name, const larodMap *params, larodError **error)
Load a new model.
bool larodConnect(larodConnection **conn, larodError **error)
Connect to larod.
void(* larodRunJobCallback)(void *userData, larodError *error)
Callback used in larodRunJobAsync().
Definition: larod.h:423
bool larodGetTensorByteSize(const larodTensor *tensor, size_t *byteSize, larodError **error)
Get byte size of tensor.
Invalid data type.
Definition: larod.h:218
struct larodConnection larodConnection
Connection handle type for the larod service.
Definition: larod.h:431
Max enum (dummy value).
Definition: larod.h:232
bool larodSetTensorFd(larodTensor *tensor, const int fd, larodError **error)
Set file descriptor of a tensor.
1-bit boolean.
Definition: larod.h:220
bool larodGetDeviceInstance(const larodDevice *dev, uint32_t *instance, larodError **error)
Get the instance number of a device.
int64_t larodGetTensorFdOffset(const larodTensor *tensor, larodError **error)
Get file offset for a tensor.
bool larodGetNumSessions(larodConnection *conn, uint64_t *numSessions, larodError **error)
Get number of currently active sessions in larod.
bool larodSetTensorPitches(larodTensor *tensor, const larodTensorPitches *pitches, larodError **error)
Set pitches of a tensor.
No errors.
Definition: larod.h:168
Model was not found.
Definition: larod.h:182
bool larodRunJob(larodConnection *conn, const larodJobRequest *jobReq, larodError **error)
Run a job on a loaded model.
CPU with TensorFlow Lite.
Definition: larod.h:121
Google TPU.
Definition: larod.h:123
larodModel ** larodGetModels(larodConnection *conn, size_t *numModels, larodError **error)
Get all loaded models.
CPU with libyuv.
Definition: larod.h:134
Could not create session.
Definition: larod.h:188
void larodDestroyJobRequest(larodJobRequest **jobReq)
Destroy a request handle.
size_t * larodGetModelInputByteSizes(const larodModel *model, size_t *numInputs, larodError **error)
Get input tensor byte sizes for a model.
const larodDevice ** larodListDevices(larodConnection *conn, size_t *numDevices, larodError **error)
List available devices.
larodChip larodGetModelChip(const larodModel *model, larodError **error)
Get chip for a model.
8-bit signed integer.
Definition: larod.h:222
Ambarella CVFlow (proc).
Definition: larod.h:130
Invalid connection.
Definition: larod.h:186
A type containing information about a tensor&#39;s pitches.
Definition: larod.h:374
No data type is specified.
Definition: larod.h:219
struct larodJobRequest larodJobRequest
Type describing a job request.
Definition: larod.h:438
const larodTensorPitches * larodGetTensorPitches(const larodTensor *tensor, larodError **error)
Get pitches of a tensor.