XName.h 5.42 KB
Newer Older
xiaotong committed
1
/* NiuTrans.Tensor - an open-source tensor library
liyinqiao committed
2
 * Copyright (C) 2018, Natural Language Processing Lab, Northeastern University. 
xiaotong committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 *
 * We define various names here
 *
 * $Created by: XIAO Tong (xiaotong@mail.neu.edu.cn) 2018-07-05
xiaotong committed
23
 * It was really HOT these days. I can't imagine it is SO hot here in Shenyang!
xiaotong committed
24 25 26 27 28 29 30
*/

#ifndef __XNAME_H__
#define __XNAME_H__

namespace nts { // namespace nts(NiuTrans.Tensor)

31 32
/* math operations */
#define MATH_BASE               0x00001000
33

34
#define MATH_ABSOLUTE           MATH_BASE + 1
liyinqiao committed
35 36 37 38 39 40 41 42 43
#define MATH_CEIL               MATH_ABSOLUTE + 1
#define MATH_EXP                MATH_CEIL + 1
#define MATH_FLOOR              MATH_EXP + 1
#define MATH_ISNONZERO          MATH_FLOOR + 1
#define MATH_ISZERO             MATH_ISNONZERO + 1
#define MATH_LOG                MATH_ISZERO + 1
#define MATH_SQRT               MATH_LOG + 1
#define MATH_SQUARE             MATH_SQRT + 1
#define MATH_SIN                MATH_SQUARE + 1
44 45
#define MATH_COS                MATH_SIN + 1
#define MATH_TAN                MATH_COS + 1
46
#define MATH_ROUND              MATH_TAN + 1
liyinqiao committed
47
#define MATH_RECIPROCAL         MATH_ROUND + 1
48

liyinqiao committed
49 50 51 52
#define MATH_EQUAL              MATH_RECIPROCAL + 1
#define MATH_NOTEQUAL           MATH_EQUAL + 1

#define MATH_CLIP               MATH_NOTEQUAL + 1
53
#define MATH_DIV                MATH_CLIP + 1
54
#define MATH_DIVDIM             MATH_DIV + 1
liyinqiao committed
55 56
#define MATH_MASK               MATH_DIVDIM + 1
#define MATH_MATRIXMUL          MATH_MASK + 1
57
#define MATH_MATRIXMULBATCHED   MATH_MATRIXMUL + 1
liyinqiao committed
58 59 60
#define MATH_MAX                MATH_MATRIXMULBATCHED + 1
#define MATH_MIN                MATH_MAX + 1
#define MATH_MULTIPLY           MATH_MIN + 1
61
#define MATH_MULTIPLYDIM        MATH_MULTIPLY + 1
liyinqiao committed
62 63 64 65
#define MATH_MULTIPLY_INPLACE           MATH_MULTIPLYDIM + 1
#define MATH_MULTIPLYDIM_INPLACE        MATH_MULTIPLY_INPLACE + 1
#define MATH_MULTIPLYBROADCAST  MATH_MULTIPLYDIM_INPLACE + 1
#define MATH_NEGATE             MATH_MULTIPLYBROADCAST + 1
66 67 68
#define MATH_NORMALIZE          MATH_NEGATE + 1
#define MATH_POWER              MATH_NORMALIZE + 1
#define MATH_SCALEANDSHIFT      MATH_POWER + 1
liyinqiao committed
69 70 71 72 73 74 75
#define MATH_MULANDSHIFT        MATH_SCALEANDSHIFT + 1
#define MATH_MLP                MATH_MULANDSHIFT + 1
#define MATH_SCALE              MATH_MLP + 1
#define MATH_DESCALE            MATH_SCALE + 1
#define MATH_SHIFT              MATH_DESCALE + 1
#define MATH_MOD                MATH_SHIFT + 1
#define MATH_SIGN               MATH_MOD + 1
76 77 78 79
#define MATH_SUB                MATH_SIGN + 1
#define MATH_SUBDIM             MATH_SUB + 1
#define MATH_SUM                MATH_SUBDIM + 1
#define MATH_SUMDIM             MATH_SUM + 1
liyinqiao committed
80
#define MATH_SUMBROADCAST       MATH_SUMDIM + 1
81

liyinqiao committed
82
#define REDUCE                  MATH_SUMBROADCAST + 1
83 84 85
#define REDUCE_REDUCEMAX        REDUCE + 1
#define REDUCE_REDUCEMEAN       REDUCE_REDUCEMAX + 1
#define REDUCE_REDUCESUM        REDUCE_REDUCEMEAN + 1
liyinqiao committed
86 87
#define REDUCE_REDUCESUMALL     REDUCE_REDUCESUM + 1
#define REDUCE_REDUCESUMSQUARED REDUCE_REDUCESUMALL + 1
88 89
#define REDUCE_REDUCEVARIANCE   REDUCE_REDUCESUMSQUARED + 1

90 91 92
/* data and shape related operations */
#define DATA_BASE               MATH_BASE * 2
#define GETANDSET               DATA_BASE + 1
liyinqiao committed
93 94
#define GETANDSET_CONVERTDATATYPE GETANDSET + 1
#define GETANDSET_SELECT        GETANDSET_CONVERTDATATYPE + 1
95 96 97 98

#define MOVEMENT                GETANDSET_SELECT + 1
#define MOVEMENT_COPYINDEXED    MOVEMENT + 1
#define MOVEMENT_COPYVALUES     MOVEMENT_COPYINDEXED + 1
liyinqiao committed
99 100
#define MOVEMENT_GATHER         MOVEMENT_COPYVALUES + 1
#define MOVEMENT_DROPOUTWITHINDEX         MOVEMENT_GATHER + 1
101

liyinqiao committed
102
#define SHAPE                   MOVEMENT_DROPOUTWITHINDEX + 1
103 104
#define SHAPE_CONCATENATE       SHAPE + 1
#define SHAPE_MERGE             SHAPE_CONCATENATE + 1
105 106
#define SHAPE_MERGE_LIST        SHAPE_MERGE + 1
#define SHAPE_PERMUTE           SHAPE_MERGE_LIST + 1
liyinqiao committed
107 108
#define SHAPE_RESHAPE           SHAPE_PERMUTE + 1
#define SHAPE_SPLIT             SHAPE_RESHAPE + 1
109
#define SHAPE_SPLIT_LIST        SHAPE_SPLIT + 1
liyinqiao committed
110 111 112
#define SHAPE_STACK             SHAPE_SPLIT_LIST + 1
#define SHAPE_SQUEEZE           SHAPE_STACK + 1
#define SHAPE_TRANSPOSE         SHAPE_SQUEEZE + 1
113
#define SHAPE_UNSQUEEZE         SHAPE_TRANSPOSE + 1
xiaotong committed
114

115 116 117 118 119 120
#define SORT                    SHAPE_UNSQUEEZE + 1
#define SORT_SORT               SORT + 1
#define SORT_TOPK               SORT_SORT + 1

/* activation functions */
#define FUNCTION_BASE           DATA_BASE * 2
liyinqiao committed
121 122
#define FUNC_DROPOUT            FUNCTION_BASE + 1
#define FUNC_HARDTANH           FUNC_DROPOUT + 1
123 124 125 126 127 128
#define FUNC_IDENTITY           FUNC_HARDTANH + 1
#define FUNC_LOGSOFTMAX         FUNC_IDENTITY + 1
#define FUNC_RECTIFY            FUNC_LOGSOFTMAX + 1
#define FUNC_SIGMOID            FUNC_RECTIFY + 1
#define FUNC_SOFTMAX            FUNC_SIGMOID + 1

liyinqiao committed
129 130 131
#define LOSS_BASE               FUNCTION_BASE * 2
#define LOSS_CROSSENTROPY       LOSS_BASE + 1

xiaotong committed
132 133
/* get operator name */
const char * GetOPName(int type);
xiaotong committed
134

xiaotong committed
135 136
} // namespace nts(NiuTrans.Tensor)

xiaotong committed
137
#endif // __XNAME_H__