ax_interpreter_external_advanced_api.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /***************************************************************************
  2. *
  3. * Copyright (c) 2019-2020 Aichip Technology Co., Ltd. All Rights Reserved.
  4. *
  5. * This source file is the property of Aichip Technology Co., Ltd. and
  6. * may not be copied or distributed in any isomorphic form without the prior
  7. * written consent of Aichip Technology Co., Ltd.
  8. *
  9. ****************************************************************************/
  10. #ifndef __AX_AX_S32ERPRETER_ADVANCED_API_EXTERNAL_H
  11. #define __AX_AX_S32ERPRETER_ADVANCED_API_EXTERNAL_H
  12. #include "ax_interpreter_external_api.h"
  13. #include "ax_interpreter_external2_api.h"
  14. #ifdef __cplusplus
  15. #if __cplusplus
  16. extern "C" {
  17. #endif
  18. #endif /* __cplusplus */
  19. typedef struct {
  20. AX_NPU_SDK_EX_BUF_T *pBuf;
  21. AX_U64 u64Reserved[7];
  22. } AX_NPU_SDK_EX_ADV_BUF_T;
  23. typedef struct {
  24. AX_NPU_SDK_EX_ADV_BUF_T *pInputs;
  25. AX_U32 nInputSize;
  26. AX_NPU_SDK_EX_ADV_BUF_T *pOutputs;
  27. AX_U32 nOutputSize;
  28. AX_U32 nWbtIndex;
  29. AX_NPU_SDK_EX_RUNTIME_VAR_T pRuntimeVar;
  30. AX_U32 nRuntimeVarSize;
  31. #if defined(__aarch64__)
  32. AX_U64 u64Reserved[10];
  33. #elif defined(__arm__)
  34. AX_U64 u64Reserved[12];
  35. #endif
  36. } AX_NPU_SDK_EX_ADV_IO_T;
  37. typedef struct {
  38. AX_NPU_SDK_EX_ADV_IO_T tIo;
  39. AX_NPU_SDK_EX_FINISH_FUNC fnFinishFunc;
  40. AX_VOID *pUserData;
  41. #if defined(__aarch64__)
  42. AX_U64 u64Reserved[14];
  43. #elif defined(__arm__)
  44. AX_U64 u64Reserved[15];
  45. #endif
  46. } AX_NPU_SDK_EX_ADV_RESOURCE_T;
  47. typedef enum {
  48. AX_NPU_TDT_BYTE = 0,
  49. AX_NPU_TDT_UINT8 = 1,
  50. AX_NPU_TDT_UINT16 = 2,
  51. AX_NPU_TDT_INT16 = 3,
  52. AX_NPU_TDT_INT32 = 4,
  53. AX_NPU_TDT_INT64 = 5,
  54. AX_NPU_TDT_FLOAT32 = 6,
  55. AX_NPU_TDT_FLOAT64 = 7,
  56. } AX_NPU_SDK_EX_ADV_TENSOR_DTYPE;
  57. typedef struct {
  58. AX_NPU_SDK_EX_TENSOR_META_T *pTensorMeta;
  59. AX_NPU_SDK_EX_ADV_TENSOR_DTYPE eDType;
  60. #if defined(__aarch64__)
  61. AX_U64 u64Reserved[6];
  62. #elif defined(__arm__)
  63. AX_U64 u64Reserved[7];
  64. #endif
  65. } AX_NPU_SDK_EX_ADV_TENSOR_META_T;
  66. typedef struct {
  67. AX_NPU_SDK_EX_ADV_TENSOR_META_T *pInputs;
  68. AX_U32 nInputSize;
  69. AX_NPU_SDK_EX_ADV_TENSOR_META_T *pOutputs;
  70. AX_U32 nOutputSize;
  71. AX_S8** pWbtNames;
  72. AX_U32 nWbtNum;
  73. AX_BOOL bHasRuntimeVar;
  74. #if defined(__aarch64__)
  75. AX_U64 u64Reserved[10];
  76. #elif defined(__arm__)
  77. AX_U64 u64Reserved[12];
  78. #endif
  79. } AX_NPU_SDK_EX_ADV_IO_INFO_T;
  80. AX_S32 AX_NPU_SDK_EX_ADV_Run_task_async(AX_NPU_SDK_EX_HANDLE_T handle, AX_NPU_SDK_EX_ADV_RESOURCE_T *resource, AX_NPU_SDK_EX_TASK_ID_T *taskId);
  81. AX_S32 AX_NPU_SDK_EX_ADV_Run_task_sync(AX_NPU_SDK_EX_HANDLE_T handle, AX_NPU_SDK_EX_ADV_IO_T *io);
  82. AX_S32 AX_NPU_SDK_EX2_ADV_RunTaskSync(AX_NPU_SDK_EX2_EXECUTION_CONTEXT_T hContext, AX_NPU_SDK_EX_ADV_IO_T *pIO);
  83. const AX_NPU_SDK_EX_ADV_IO_INFO_T* AX_NPU_SDK_EX_ADV_Get_io_info(AX_NPU_SDK_EX_HANDLE_T handle);
  84. AX_S32 AX_NPU_SDK_EX_ADV_Make_io_buffer(AX_ADDR phyAddr, AX_VOID *pVirAddr, AX_U32 nSize,
  85. AX_ADDR innerPhyAddr, AX_VOID *pInnerVirAddr, AX_U32 nInnerSize, AX_NPU_SDK_EX_BUF_T *buf);
  86. #ifdef __cplusplus
  87. #if __cplusplus
  88. }
  89. #endif
  90. #endif /* __cplusplus */
  91. #endif