infinicore.h 1.98 KB
Newer Older
PanZezhong's avatar
PanZezhong committed
1
2
#ifndef __INFINICORE_API_H__
#define __INFINICORE_API_H__
PanZezhongQY's avatar
PanZezhongQY committed
3
4
5

#if defined(_WIN32)
#define __export __declspec(dllexport)
6
#elif defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
PanZezhongQY's avatar
PanZezhongQY committed
7
8
9
10
11
12
#define __export __attribute__((visibility("default")))
#else
#define __export
#endif

#ifdef __cplusplus
13
#define __INFINI_C extern "C"
PanZezhongQY's avatar
PanZezhongQY committed
14
15
#include <cstddef>
#else
16
#define __INFINI_C
17
#include <stddef.h>
PanZezhongQY's avatar
PanZezhongQY committed
18
#endif
19
20
21
22
23
24
25
26
27
28
29

typedef enum {
    // Success
    INFINI_STATUS_SUCCESS = 0,
    // General Errors
    INFINI_STATUS_INTERNAL_ERROR = 1,
    INFINI_STATUS_NOT_IMPLEMENTED = 2,
    INFINI_STATUS_BAD_PARAM = 3,
    INFINI_STATUS_NULL_POINTER = 4,
    INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED = 5,
    INFINI_STATUS_DEVICE_NOT_FOUND = 6,
PanZezhong's avatar
PanZezhong committed
30
    INFINI_STATUS_DEVICE_NOT_INITIALIZED = 7,
31
    INFINI_STATUS_DEVICE_ARCHITECTURE_NOT_SUPPORTED = 8,
32
33
34
35
36
37
    // Op Errors
    INFINI_STATUS_BAD_TENSOR_DTYPE = 10,
    INFINI_STATUS_BAD_TENSOR_SHAPE = 11,
    INFINI_STATUS_BAD_TENSOR_STRIDES = 12,
    INFINI_STATUS_INSUFFICIENT_WORKSPACE = 13,
} infiniStatus_t;
PanZezhongQY's avatar
PanZezhongQY committed
38

PanZezhong's avatar
PanZezhong committed
39
typedef enum {
PanZezhongQY's avatar
PanZezhongQY committed
40
41
42
43
44
45
46
47
    INFINI_DEVICE_CPU = 0,
    INFINI_DEVICE_NVIDIA = 1,
    INFINI_DEVICE_CAMBRICON = 2,
    INFINI_DEVICE_ASCEND = 3,
    INFINI_DEVICE_METAX = 4,
    INFINI_DEVICE_MOORE = 5,
    INFINI_DEVICE_ILUVATAR = 6,
    INFINI_DEVICE_KUNLUN = 7,
48
    INFINI_DEVICE_HYGON = 8,
49
    INFINI_DEVICE_QY = 9,
wooway777's avatar
wooway777 committed
50
    INFINI_DEVICE_ALI = 10,
51
    INFINI_DEVICE_TYPE_COUNT
PanZezhongQY's avatar
PanZezhongQY committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
} infiniDevice_t;

typedef enum {
    INFINI_DTYPE_INVALID = 0,
    INFINI_DTYPE_BYTE = 1,
    INFINI_DTYPE_BOOL = 2,
    INFINI_DTYPE_I8 = 3,
    INFINI_DTYPE_I16 = 4,
    INFINI_DTYPE_I32 = 5,
    INFINI_DTYPE_I64 = 6,
    INFINI_DTYPE_U8 = 7,
    INFINI_DTYPE_U16 = 8,
    INFINI_DTYPE_U32 = 9,
    INFINI_DTYPE_U64 = 10,
    INFINI_DTYPE_F8 = 11,
    INFINI_DTYPE_F16 = 12,
    INFINI_DTYPE_F32 = 13,
    INFINI_DTYPE_F64 = 14,
70
71
72
73
    INFINI_DTYPE_C16 = 15,
    INFINI_DTYPE_C32 = 16,
    INFINI_DTYPE_C64 = 17,
    INFINI_DTYPE_C128 = 18,
PanZezhongQY's avatar
PanZezhongQY committed
74
75
76
    INFINI_DTYPE_BF16 = 19,
} infiniDtype_t;

PanZezhong's avatar
PanZezhong committed
77
#endif // __INFINICORE_API_H__