liblarod  3.2.181-dirty
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 #ifdef LAROD_API_VERSION_1
26 #warning "API version 1 is deprecated and will be removed soon. " \
27  "Please update to a newer API version."
28 #endif
29 
30 #if defined(LAROD_API_VERSION_1) && defined(LAROD_API_VERSION_2)
31 #error API version ambiguous, specify at most one version \
32  (#define LAROD_API_VERSION_*) before including larod.h
33 #endif
34 
38 #define LAROD_TENSOR_MAX_LEN 12
39 
43 #define LAROD_INVALID_MODEL_ID UINT64_MAX
44 
48 #define LAROD_INVALID_FD (INT_MIN)
49 
71 #define LAROD_FD_PROP_READWRITE (UINT32_C(1) << 0)
73 #define LAROD_FD_PROP_MAP (UINT32_C(1) << 1)
75 #define LAROD_FD_PROP_DMABUF (UINT32_C(1) << 2)
78 
87 #define LAROD_FD_TYPE_DMA (LAROD_FD_PROP_DMABUF | LAROD_FD_PROP_MAP)
89 #define LAROD_FD_TYPE_DISK (LAROD_FD_PROP_READWRITE | LAROD_FD_PROP_MAP)
92 
107 typedef struct larodDevice larodDevice;
108 
109 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2) || \
110  defined(LAROD_DOXYGEN)
111 
120 typedef enum {
144 } larodChip;
145 #endif
146 
154 typedef enum {
159 } larodAccess;
160 
172 typedef enum {
177 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
182 #endif
214 
225 typedef enum {
242 
278 typedef enum {
298 
306 typedef struct {
308  const char* msg;
309 } larodError;
310 
328 typedef struct {
329  size_t dims[LAROD_TENSOR_MAX_LEN];
330  size_t len;
332 
382 typedef struct {
383  size_t pitches[LAROD_TENSOR_MAX_LEN];
384  size_t len;
386 
396 typedef struct larodModel larodModel;
397 
420 typedef void (*larodLoadModelCallback)(larodModel* model, void* userData,
421  larodError* error);
422 
443 typedef void (*larodRunJobCallback)(void* userData, larodError* error);
444 
452 
459 
467 typedef struct larodTensor larodTensor;
468 
478 typedef struct larodMap larodMap;
479 
480 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
481 
499 typedef void (*larodRunInferenceCallback)(void* userData, larodError* error);
500 #endif
501 
502 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
503 
513 #endif
514 
525 void larodClearError(larodError** error);
526 
540 bool larodConnect(larodConnection** conn, larodError** error);
541 
558 bool larodDisconnect(larodConnection** conn, larodError** error);
559 
570 bool larodGetNumSessions(larodConnection* conn, uint64_t* numSessions,
571  larodError** error);
572 
593 const larodDevice* larodGetDevice(const larodConnection* conn, const char* name,
594  const uint32_t instance, larodError** error);
595 
606 const char* larodGetDeviceName(const larodDevice* dev, larodError** error);
607 
626 bool larodGetDeviceInstance(const larodDevice* dev, uint32_t* instance,
627  larodError** error);
628 
629 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2)
630 
644 const char* larodGetChipName(const larodChip chip);
645 #endif
646 
647 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2) || \
648  defined(LAROD_DOXYGEN)
649 
673 bool larodListChips(larodConnection* conn, larodChip** chips, size_t* numChips,
674  larodError** error);
675 #endif
676 
692 const larodDevice** larodListDevices(larodConnection* conn, size_t* numDevices,
693  larodError** error);
694 
695 #if defined(LAROD_API_VERSION_1)
696 larodModel* larodLoadModel_API_VERSION_1(larodConnection* conn, const int fd,
697  const larodAccess access,
698  const char* name, larodError** error);
699 #define larodLoadModel larodLoadModel_API_VERSION_1
700 #elif defined(LAROD_API_VERSION_2)
701 larodModel* larodLoadModel_API_VERSION_2(larodConnection* conn, const int fd,
702  const larodChip chip,
703  const larodAccess access,
704  const char* name,
705  const larodMap* params,
706  larodError** error);
707 #define larodLoadModel larodLoadModel_API_VERSION_2
708 #else
709 
736 larodModel* larodLoadModel(larodConnection* conn, const int fd,
737  const larodDevice* dev, const larodAccess access,
738  const char* name, const larodMap* params,
739  larodError** error);
740 
741 #endif
742 
743 #if defined(LAROD_API_VERSION_1)
744 bool larodLoadModelAsync_API_VERSION_1(larodConnection* conn, const int fd,
745  const larodAccess access,
746  const char* name,
747  larodLoadModelCallback callback,
748  void* userData, larodError** error);
749 #define larodLoadModelAsync larodLoadModelAsync_API_VERSION_1
750 #elif defined(LAROD_API_VERSION_2)
751 bool larodLoadModelAsync_API_VERSION_2(larodConnection* conn, const int fd,
752  const larodChip chip,
753  const larodAccess access,
754  const char* name, const larodMap* params,
755  larodLoadModelCallback callback,
756  void* userData, larodError** error);
757 #define larodLoadModelAsync larodLoadModelAsync_API_VERSION_2
758 #else
759 
790 bool larodLoadModelAsync(larodConnection* conn, const int inFd,
791  const larodDevice* dev, const larodAccess access,
792  const char* name, const larodMap* params,
793  larodLoadModelCallback callback, void* userData,
794  larodError** error);
795 
796 #endif
797 
812 larodModel* larodGetModel(larodConnection* conn, const uint64_t modelId,
813  larodError** error);
814 
837 larodModel** larodGetModels(larodConnection* conn, size_t* numModels,
838  larodError** error);
839 
851 void larodDestroyModel(larodModel** model);
852 
864 void larodDestroyModels(larodModel*** models, size_t numModels);
865 
884 bool larodDeleteModel(larodConnection* conn, larodModel* model,
885  larodError** error);
886 
900 uint64_t larodGetModelId(const larodModel* model, larodError** error);
901 
902 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
903 
918 larodChip larodGetModelChip(const larodModel* model, larodError** error);
919 #endif
920 
937 const larodDevice* larodGetModelDevice(const larodModel* model,
938  larodError** error);
939 
951 size_t larodGetModelSize(const larodModel* model, larodError** error);
952 
966 const char* larodGetModelName(const larodModel* model, larodError** error);
967 
980 
990 size_t larodGetModelNumInputs(const larodModel* model, larodError** error);
991 
1001 size_t larodGetModelNumOutputs(const larodModel* model, larodError** error);
1002 
1022 size_t* larodGetModelInputByteSizes(const larodModel* model, size_t* numInputs,
1023  larodError** error);
1024 
1045 size_t* larodGetModelOutputByteSizes(const larodModel* model,
1046  size_t* numOutputs, larodError** error);
1047 
1078  size_t* numTensors, larodError** error);
1079 
1110  size_t* numTensors, larodError** error);
1111 
1157  const larodModel* model,
1158  const uint32_t fdPropFlags,
1159  size_t* numTensors, larodMap* params,
1160  larodError** error);
1161 
1207  const larodModel* model,
1208  const uint32_t fdPropFlags,
1209  size_t* numTensors, larodMap* params,
1210  larodError** error);
1211 
1239 larodTensor** larodCreateTensors(size_t numTensors, larodError** error);
1240 
1241 #if defined(LAROD_API_VERSION_1) || defined(LAROD_API_VERSION_2)
1242 void larodDestroyTensors_API_VERSION_1(larodTensor*** tensors,
1243  size_t numTensors);
1244 #define larodDestroyTensors larodDestroyTensors_API_VERSION_1
1245 #else
1246 
1273 bool larodDestroyTensors(larodConnection* conn, larodTensor*** tensors,
1274  size_t numTensors, larodError** error);
1275 #endif
1276 
1297 bool larodSetTensorDims(larodTensor* tensor, const larodTensorDims* dims,
1298  larodError** error);
1299 
1314 const larodTensorDims* larodGetTensorDims(const larodTensor* tensor,
1315  larodError** error);
1316 
1333 bool larodSetTensorPitches(larodTensor* tensor,
1334  const larodTensorPitches* pitches,
1335  larodError** error);
1336 
1351  larodError** error);
1352 
1367 bool larodSetTensorDataType(larodTensor* tensor,
1368  const larodTensorDataType dataType,
1369  larodError** error);
1370 
1382 larodTensorDataType larodGetTensorDataType(const larodTensor* tensor,
1383  larodError** error);
1384 
1399 bool larodSetTensorLayout(larodTensor* tensor, const larodTensorLayout layout,
1400  larodError** error);
1401 
1413 larodTensorLayout larodGetTensorLayout(const larodTensor* tensor,
1414  larodError** error);
1415 
1426 bool larodSetTensorFd(larodTensor* tensor, const int fd, larodError** error);
1427 
1439 int larodGetTensorFd(const larodTensor* tensor, larodError** error);
1440 
1462 bool larodSetTensorFdSize(larodTensor* tensor, const size_t size,
1463  larodError** error);
1464 
1480 bool larodGetTensorFdSize(const larodTensor* tensor, size_t* size,
1481  larodError** error);
1482 
1498 bool larodSetTensorFdOffset(larodTensor* tensor, const int64_t offset,
1499  larodError** error);
1500 
1514 int64_t larodGetTensorFdOffset(const larodTensor* tensor, larodError** error);
1515 
1541 bool larodTrackTensor(larodConnection* conn, larodTensor* tensor,
1542  larodError** error);
1543 
1568 bool larodSetTensorFdProps(larodTensor* tensor, const uint32_t fdPropFlags,
1569  larodError** error);
1570 
1584 bool larodGetTensorFdProps(const larodTensor* tensor, uint32_t* fdPropFlags,
1585  larodError** error);
1586 
1600 const char* larodGetTensorName(const larodTensor* tensor, larodError** error);
1601 
1616 bool larodGetTensorByteSize(const larodTensor* tensor, size_t* byteSize,
1617  larodError** error);
1618 
1646 
1655 void larodDestroyMap(larodMap** map);
1656 
1675 bool larodMapSetStr(larodMap* map, const char* key, const char* value,
1676  larodError** error);
1677 
1696 bool larodMapSetInt(larodMap* map, const char* key, const int64_t value,
1697  larodError** error);
1698 
1718 bool larodMapSetIntArr2(larodMap* map, const char* key, const int64_t value0,
1719  const int64_t value1, larodError** error);
1720 
1742 bool larodMapSetIntArr4(larodMap* map, const char* key, const int64_t value0,
1743  const int64_t value1, const int64_t value2,
1744  const int64_t value3, larodError** error);
1745 
1762 const char* larodMapGetStr(larodMap* map, const char* key, larodError** error);
1763 
1782 bool larodMapGetInt(larodMap* map, const char* key, int64_t* value,
1783  larodError** error);
1784 
1801 const int64_t* larodMapGetIntArr2(larodMap* map, const char* key,
1802  larodError** error);
1803 
1820 const int64_t* larodMapGetIntArr4(larodMap* map, const char* key,
1821  larodError** error);
1822 
1853  larodTensor** inputTensors,
1854  size_t numInputs,
1855  larodTensor** outputTensors,
1856  size_t numOutputs, larodMap* params,
1857  larodError** error);
1858 
1869 
1884 bool larodSetJobRequestModel(larodJobRequest* jobReq, const larodModel* model,
1885  larodError** error);
1886 
1901 bool larodSetJobRequestInputs(larodJobRequest* jobReq, larodTensor** tensors,
1902  const size_t numTensors, larodError** error);
1903 
1918 bool larodSetJobRequestOutputs(larodJobRequest* jobReq, larodTensor** tensors,
1919  const size_t numTensors, larodError** error);
1920 
1955 bool larodSetJobRequestPriority(larodJobRequest* jobReq, const uint8_t priority,
1956  larodError** error);
1957 
1973 bool larodSetJobRequestParams(larodJobRequest* jobReq, const larodMap* params,
1974  larodError** error);
1975 
2003 bool larodRunJob(larodConnection* conn, const larodJobRequest* jobReq,
2004  larodError** error);
2005 
2045 bool larodRunJobAsync(larodConnection* conn, const larodJobRequest* jobReq,
2046  larodRunJobCallback callback, void* userData,
2047  larodError** error);
2048 
2049 #ifdef LAROD_DOXYGEN
2050 // The following declaration is only for documentation purposes. Not to be used
2051 // in actual code.
2076 larodModel* larodLoadModel(larodConnection* conn, const int fd,
2077  const larodAccess access, const char* name,
2078  larodError** error);
2079 #endif
2080 
2081 #ifdef LAROD_DOXYGEN
2082 // The following declaration is only for documentation purposes. Not to be used
2083 // in actual code.
2112 larodModel* larodLoadModel(larodConnection* conn, const int fd,
2113  const larodChip chip, const larodAccess access,
2114  const char* name, const larodMap* params,
2115  larodError** error);
2116 #endif
2117 
2118 #ifdef LAROD_DOXYGEN
2119 // The following declaration is only for documentation purposes. Not to be used
2120 // in actual code.
2142 bool larodLoadModelAsync(larodConnection* conn, const int fd,
2143  const larodAccess access, const char* name,
2144  larodLoadModelCallback callback, void* userData,
2145  larodError** error);
2146 #endif
2147 
2148 #ifdef LAROD_DOXYGEN
2149 // The following declaration is only for documentation purposes. Not to be used
2150 // in actual code.
2177 bool larodLoadModelAsync(larodConnection* conn, const int fd,
2178  const larodChip chip, const larodAccess access,
2179  const char* name, const larodMap* params,
2180  larodLoadModelCallback callback, void* userData,
2181  larodError** error);
2182 #endif
2183 
2184 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2185 
2218  const larodModel* model, larodTensor** inputTensors, size_t numInputs,
2219  larodTensor** outputTensors, size_t numOutputs, larodError** error);
2220 #endif
2221 
2222 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2223 
2237 #define larodDestroyInferenceRequest larodDestroyJobRequest
2238 #endif
2239 
2240 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2241 
2261  const larodModel* model, larodError** error);
2262 #define larodSetInferenceRequestModel larodSetJobRequestModel
2263 #endif
2264 
2265 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2266 
2286  larodTensor** tensors,
2287  const size_t numTensors,
2288  larodError** error);
2289 #define larodSetInferenceRequestInputs larodSetJobRequestInputs
2290 #endif
2291 
2292 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2293 
2313  larodTensor** tensors,
2314  const size_t numTensors,
2315  larodError** error);
2316 #define larodSetInferenceRequestOutputs larodSetJobRequestOutputs
2317 #endif
2318 
2319 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2320 
2359  const uint8_t priority,
2360  larodError** error);
2361 #define larodSetInferenceRequestPriority larodSetJobRequestPriority
2362 #endif
2363 
2364 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2365 
2395  const larodInferenceRequest* infReq, larodError** error);
2396 #endif
2397 
2398 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2399 
2439  const larodInferenceRequest* infReq,
2440  larodRunInferenceCallback callback, void* userData,
2441  larodError** error);
2442 #endif
2443 
2444 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
2445 bool larodRunJobAsync_API_VERSION_2(larodConnection* conn,
2446  const larodJobRequest* jobReq,
2447  larodRunJobCallback callback,
2448  void* userData, larodError** error);
2449 #define larodRunJobAsync larodRunJobAsync_API_VERSION_2
2450 #endif
2451 
2452 #if defined(LAROD_API_VERSION_2) || defined(LAROD_DOXYGEN)
2453 bool larodRunJob_API_VERSION_2(larodConnection* conn,
2454  const larodJobRequest* jobReq,
2455  larodError** error);
2456 #define larodRunJob larodRunJob_API_VERSION_2
2457 #endif
2458 
2459 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2460 
2474 bool larodGetChipId(larodConnection* conn, uint64_t* chipId,
2475  larodError** error);
2476 #endif
2477 
2478 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2479 
2493 bool larodSetChipId(larodConnection* conn, const uint64_t chipId,
2494  larodError** error);
2495 #endif
2496 
2497 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2498 
2515 bool larodSetChip(larodConnection* conn, const larodChip chip,
2516  larodError** error);
2517 #endif
2518 
2519 #if defined(LAROD_API_VERSION_1) || defined(LAROD_DOXYGEN)
2520 
2534 bool larodGetChipType(larodConnection* conn, larodChip* chipType,
2535  larodError** error);
2536 #endif
2537 
2538 #if defined(LAROD_DOXYGEN)
2539 
2556 void larodDestroyTensors(larodTensor*** tensors, size_t numTensors);
2557 #endif
2558 
2559 #ifdef __cplusplus
2560 }
2561 #endif
2562 
2563 #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:235
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:124
Tensor mismatch.
Definition: larod.h:204
Max errno value (dummy value).
Definition: larod.h:212
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.
Definition: larod.h:158
Error while allocating.
Definition: larod.h:208
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:190
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:236
16-bit unsigned integer.
Definition: larod.h:231
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:384
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.
Definition: larod.h:156
16-bit floating point.
Definition: larod.h:237
larodTensor ** larodCreateTensors(size_t numTensors, larodError **error)
Create a list of empty larodTensor handles.
Invalid chip.
Definition: larod.h:122
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:281
32-bit signed integer.
Definition: larod.h:234
larodErrorCode code
Error code.
Definition: larod.h:307
size_t len
Length of dims array.
Definition: larod.h:330
bool larodSetJobRequestPriority(larodJobRequest *jobReq, const uint8_t priority, larodError **error)
Set an priority of a job request.
Invalid access specifier.
Definition: larod.h:200
8-bit unsigned integer.
Definition: larod.h:229
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:206
Definition: larod.h:294
16-bit signed integer.
Definition: larod.h:232
void(* larodLoadModelCallback)(larodModel *model, void *userData, larodError *error)
Callback used in larodLoadModelAsync().
Definition: larod.h:420
larodTensorLayout
Enum type for specifying tensor layout.
Definition: larod.h:278
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:137
Power not available.
Definition: larod.h:210
General error for loading model.
Definition: larod.h:184
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:499
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:38
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:296
General error for job.
Definition: larod.h:176
Invalid access.
Definition: larod.h:155
const char * larodGetTensorName(const larodTensor *tensor, larodError **error)
Get name of tensor.
Image processing using OpenCL.
Definition: larod.h:143
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:198
struct larodDevice larodDevice
A type for representing a device.
Definition: larod.h:107
bool larodSetInferenceRequestPriority(larodInferenceRequest *infReq, const uint8_t priority, larodError **error)
Set an priority of an inference request.
Definition: larod.h:181
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:328
Ambarella CVFlow (NN).
Definition: larod.h:130
struct larodModel larodModel
A type representing a model.
Definition: larod.h:396
larodTensorDataType
Enum type for specifying tensor data type.
Definition: larod.h:225
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:172
const char * msg
Error message.
Definition: larod.h:308
32-bit floating point.
Definition: larod.h:238
larodTensorLayout larodGetTensorLayout(const larodTensor *tensor, larodError **error)
Get layout of a tensor.
struct larodJobRequest larodInferenceRequest
Type describing a job request.
Definition: larod.h:512
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:306
larodAccess
Enum type for specifying access.
Definition: larod.h:154
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:120
void larodDestroyInferenceRequest(larodInferenceRequest **infReq)
Destroy an inference request handle.
ARTPEC-8 DLPU with TensorFlow Lite.
Definition: larod.h:141
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:239
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:467
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:478
No layout is specified.
Definition: larod.h:280
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:186
Invalid layout.
Definition: larod.h:279
32-bit unsigned integer.
Definition: larod.h:233
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:202
Failed killing session.
Definition: larod.h:196
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:287
void larodDestroyModels(larodModel ***models, size_t numModels)
Destroy a list of model objects.
Definition: larod.h:133
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:443
bool larodGetTensorByteSize(const larodTensor *tensor, size_t *byteSize, larodError **error)
Get byte size of tensor.
Invalid data type.
Definition: larod.h:226
struct larodConnection larodConnection
Connection handle type for the larod service.
Definition: larod.h:451
Max enum (dummy value).
Definition: larod.h:240
bool larodSetTensorFd(larodTensor *tensor, const int fd, larodError **error)
Set file descriptor of a tensor.
1-bit boolean.
Definition: larod.h:228
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:174
Model was not found.
Definition: larod.h:188
bool larodRunJob(larodConnection *conn, const larodJobRequest *jobReq, larodError **error)
Run a job on a loaded model.
CPU with TensorFlow Lite.
Definition: larod.h:126
Google TPU.
Definition: larod.h:128
larodModel ** larodGetModels(larodConnection *conn, size_t *numModels, larodError **error)
Get all loaded models.
CPU with libyuv.
Definition: larod.h:139
Could not create session.
Definition: larod.h:194
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:230
Ambarella CVFlow (proc).
Definition: larod.h:135
Invalid connection.
Definition: larod.h:192
A type containing information about a tensor&#39;s pitches.
Definition: larod.h:382
No data type is specified.
Definition: larod.h:227
struct larodJobRequest larodJobRequest
Type describing a job request.
Definition: larod.h:458
const larodTensorPitches * larodGetTensorPitches(const larodTensor *tensor, larodError **error)
Get pitches of a tensor.