Skip to content

Commit 6d47587

Browse files
committed
Issue/888 - Add gt,lt,ge,le,eq,ne,logical_and,logical_or,logical_xor,sin,bitwise_and, bitwise_or, bitwise_xor, bitwise_left_shift, bitwise_right_shift,floor_divide,atan2,exp2,log2,log10,rsqrt,square,hypot,copysign,remainder,isnan,isfinite,isinf,sinc,fmin,fmax,log1p binary operators.
1 parent 05096ea commit 6d47587

208 files changed

Lines changed: 5093 additions & 186 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

include/infiniop.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,22 @@
99
#include "infiniop/ops/add.h"
1010
#include "infiniop/ops/add_rms_norm.h"
1111
#include "infiniop/ops/attention.h"
12+
#include "infiniop/ops/averagepool.h"
13+
#include "infiniop/ops/batch_norm.h"
1214
#include "infiniop/ops/causal_softmax.h"
1315
#include "infiniop/ops/clip.h"
1416
#include "infiniop/ops/conv.h"
17+
#include "infiniop/ops/cross_entropy_loss.h"
1518
#include "infiniop/ops/dequantize_awq.h"
19+
#include "infiniop/ops/gather.h"
1620
#include "infiniop/ops/gelu.h"
1721
#include "infiniop/ops/gemm.h"
22+
#include "infiniop/ops/index_copy_inplace.h"
23+
#include "infiniop/ops/interpolate_nearest.h"
1824
#include "infiniop/ops/layer_norm.h"
1925
#include "infiniop/ops/logsoftmax.h"
2026
#include "infiniop/ops/lp_norm.h"
27+
#include "infiniop/ops/maxpool.h"
2128
#include "infiniop/ops/mul.h"
2229
#include "infiniop/ops/ones.h"
2330
#include "infiniop/ops/paged_attention.h"
@@ -28,6 +35,7 @@
2835
#include "infiniop/ops/relu.h"
2936
#include "infiniop/ops/rms_norm.h"
3037
#include "infiniop/ops/rope.h"
38+
#include "infiniop/ops/scatter.h"
3139
#include "infiniop/ops/sigmoid.h"
3240
#include "infiniop/ops/silu.h"
3341
#include "infiniop/ops/softmax.h"

include/infiniop/ops/averagepool.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
__C typedef struct InfiniopDescriptor *infiniopAvgPoolDescriptor_t;
77

8-
__C infiniStatus_t infiniopCreateAvgPoolDescriptor(infiniopHandle_t handle,
8+
__C __export infiniStatus_t infiniopCreateAvgPoolDescriptor(infiniopHandle_t handle,
99
infiniopAvgPoolDescriptor_t *desc_ptr,
1010
infiniopTensorDescriptor_t output_desc,
1111
infiniopTensorDescriptor_t input_desc,
@@ -14,16 +14,16 @@ __C infiniStatus_t infiniopCreateAvgPoolDescriptor(infiniopHandle_t handle,
1414
void *pads,
1515
bool ceil_mode);
1616

17-
__C infiniStatus_t infiniopGetAvgPoolWorkspaceSize(infiniopAvgPoolDescriptor_t desc,
17+
__C __export infiniStatus_t infiniopGetAvgPoolWorkspaceSize(infiniopAvgPoolDescriptor_t desc,
1818
size_t *size);
1919

20-
__C infiniStatus_t infiniopAvgPool(infiniopAvgPoolDescriptor_t desc,
20+
__C __export infiniStatus_t infiniopAvgPool(infiniopAvgPoolDescriptor_t desc,
2121
void *workspace,
2222
size_t workspace_size,
2323
void *output,
2424
const void *input,
2525
void *stream);
2626

27-
__C infiniStatus_t infiniopDestroyAvgPoolDescriptor(infiniopAvgPoolDescriptor_t desc);
27+
__C __export infiniStatus_t infiniopDestroyAvgPoolDescriptor(infiniopAvgPoolDescriptor_t desc);
2828

2929
#endif // __INFINIOP_AVERAGEPOOL_H__

include/infiniop/ops/binary_ops_api.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,30 @@
1515

1616
// Declare all binary operator APIs
1717
BINARY_OP_API_DECLARE(div, Div)
18+
BINARY_OP_API_DECLARE(floor_divide, FloorDivide)
1819
BINARY_OP_API_DECLARE(pow, Pow)
20+
BINARY_OP_API_DECLARE(copysign, CopySign)
21+
BINARY_OP_API_DECLARE(hypot, Hypot)
22+
BINARY_OP_API_DECLARE(atan2, Atan2)
1923
BINARY_OP_API_DECLARE(mod, Mod)
24+
BINARY_OP_API_DECLARE(remainder, Remainder)
2025
BINARY_OP_API_DECLARE(max, Max)
2126
BINARY_OP_API_DECLARE(min, Min)
27+
BINARY_OP_API_DECLARE(fmax, Fmax)
28+
BINARY_OP_API_DECLARE(fmin, Fmin)
29+
BINARY_OP_API_DECLARE(gt, Gt)
30+
BINARY_OP_API_DECLARE(lt, Lt)
31+
BINARY_OP_API_DECLARE(ge, Ge)
32+
BINARY_OP_API_DECLARE(le, Le)
33+
BINARY_OP_API_DECLARE(eq, Eq)
34+
BINARY_OP_API_DECLARE(ne, Ne)
35+
BINARY_OP_API_DECLARE(logical_and, LogicalAnd)
36+
BINARY_OP_API_DECLARE(logical_or, LogicalOr)
37+
BINARY_OP_API_DECLARE(logical_xor, LogicalXor)
38+
BINARY_OP_API_DECLARE(bitwise_and, BitwiseAnd)
39+
BINARY_OP_API_DECLARE(bitwise_or, BitwiseOr)
40+
BINARY_OP_API_DECLARE(bitwise_xor, BitwiseXor)
41+
BINARY_OP_API_DECLARE(bitwise_left_shift, BitwiseLeftShift)
42+
BINARY_OP_API_DECLARE(bitwise_right_shift, BitwiseRightShift)
2243

2344
#endif // __INFINIOP_BINARY_OPS_API_H__

include/infiniop/ops/cross_entropy_loss.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55

66
typedef struct InfiniopDescriptor *infiniopCrossEntropyLossDescriptor_t;
77

8-
__C infiniStatus_t infiniopCreateCrossEntropyLossDescriptor(infiniopHandle_t handle,
8+
__C __export infiniStatus_t infiniopCreateCrossEntropyLossDescriptor(infiniopHandle_t handle,
99
infiniopCrossEntropyLossDescriptor_t *desc_ptr,
1010
infiniopTensorDescriptor_t loss_desc,
1111
infiniopTensorDescriptor_t logits_desc,
1212
infiniopTensorDescriptor_t target_desc);
1313

14-
__C infiniStatus_t infiniopGetCrossEntropyLossWorkspaceSize(infiniopCrossEntropyLossDescriptor_t desc,
14+
__C __export infiniStatus_t infiniopGetCrossEntropyLossWorkspaceSize(infiniopCrossEntropyLossDescriptor_t desc,
1515
size_t *size);
1616

17-
__C infiniStatus_t infiniopCrossEntropyLoss(infiniopCrossEntropyLossDescriptor_t desc,
17+
__C __export infiniStatus_t infiniopCrossEntropyLoss(infiniopCrossEntropyLossDescriptor_t desc,
1818
void *workspace,
1919
size_t workspace_size,
2020
void *loss,
2121
const void *logits,
2222
const void *target,
2323
void *stream);
2424

25-
__C infiniStatus_t infiniopDestroyCrossEntropyLossDescriptor(infiniopCrossEntropyLossDescriptor_t desc);
25+
__C __export infiniStatus_t infiniopDestroyCrossEntropyLossDescriptor(infiniopCrossEntropyLossDescriptor_t desc);
2626

2727
#endif // __INFINIOP_CROSS_ENTROPY_LOSS_API_H__

include/infiniop/ops/interpolate_nearest.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55

66
__C typedef struct InfiniopDescriptor *infiniopInterpolateNearestDescriptor_t;
77

8-
__C infiniStatus_t infiniopCreateInterpolateNearestDescriptor(infiniopHandle_t handle,
8+
__C __export infiniStatus_t infiniopCreateInterpolateNearestDescriptor(infiniopHandle_t handle,
99
infiniopInterpolateNearestDescriptor_t *desc_ptr,
1010
infiniopTensorDescriptor_t output_desc,
1111
infiniopTensorDescriptor_t input_desc);
1212

13-
__C infiniStatus_t infiniopGetInterpolateNearestWorkspaceSize(infiniopInterpolateNearestDescriptor_t desc,
13+
__C __export infiniStatus_t infiniopGetInterpolateNearestWorkspaceSize(infiniopInterpolateNearestDescriptor_t desc,
1414
size_t *size);
1515

16-
__C infiniStatus_t infiniopInterpolateNearest(infiniopInterpolateNearestDescriptor_t desc,
16+
__C __export infiniStatus_t infiniopInterpolateNearest(infiniopInterpolateNearestDescriptor_t desc,
1717
void *workspace,
1818
size_t workspace_size,
1919
void *output,
2020
const void *input,
2121
void *stream);
2222

23-
__C infiniStatus_t infiniopDestroyInterpolateNearestDescriptor(infiniopInterpolateNearestDescriptor_t desc);
23+
__C __export infiniStatus_t infiniopDestroyInterpolateNearestDescriptor(infiniopInterpolateNearestDescriptor_t desc);
2424

2525
#endif // __INFINIOP_INTERPOLATE_NEAREST_H__

include/infiniop/ops/maxpool.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
__C typedef struct InfiniopDescriptor *infiniopMaxPoolDescriptor_t;
77

8-
__C infiniStatus_t infiniopCreateMaxPoolDescriptor(infiniopHandle_t handle,
8+
__C __export infiniStatus_t infiniopCreateMaxPoolDescriptor(infiniopHandle_t handle,
99
infiniopMaxPoolDescriptor_t *desc_ptr,
1010
infiniopTensorDescriptor_t output_desc,
1111
infiniopTensorDescriptor_t input_desc,
@@ -14,16 +14,16 @@ __C infiniStatus_t infiniopCreateMaxPoolDescriptor(infiniopHandle_t handle,
1414
void *pads,
1515
bool ceil_mode);
1616

17-
__C infiniStatus_t infiniopGetMaxPoolWorkspaceSize(infiniopMaxPoolDescriptor_t desc,
17+
__C __export infiniStatus_t infiniopGetMaxPoolWorkspaceSize(infiniopMaxPoolDescriptor_t desc,
1818
size_t *size);
1919

20-
__C infiniStatus_t infiniopMaxPool(infiniopMaxPoolDescriptor_t desc,
20+
__C __export infiniStatus_t infiniopMaxPool(infiniopMaxPoolDescriptor_t desc,
2121
void *workspace,
2222
size_t workspace_size,
2323
void *output,
2424
const void *input,
2525
void *stream);
2626

27-
__C infiniStatus_t infiniopDestroyMaxPoolDescriptor(infiniopMaxPoolDescriptor_t desc);
27+
__C __export infiniStatus_t infiniopDestroyMaxPoolDescriptor(infiniopMaxPoolDescriptor_t desc);
2828

2929
#endif // __INFINIOP_MAX_POOL_H__

include/infiniop/ops/unary_ops_api.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@
1717
// Declare all unary operator APIs
1818
UNARY_OP_API_DECLARE(abs, Abs)
1919
UNARY_OP_API_DECLARE(log, Log)
20+
UNARY_OP_API_DECLARE(log2, Log2)
21+
UNARY_OP_API_DECLARE(log10, Log10)
22+
UNARY_OP_API_DECLARE(log1p, Log1p)
2023
UNARY_OP_API_DECLARE(sqrt, Sqrt)
24+
UNARY_OP_API_DECLARE(square, Square)
25+
UNARY_OP_API_DECLARE(rsqrt, Rsqrt)
2126
UNARY_OP_API_DECLARE(reciprocal, Reciprocal)
2227
UNARY_OP_API_DECLARE(neg, Neg)
2328
UNARY_OP_API_DECLARE(round, Round)
@@ -36,6 +41,12 @@ UNARY_OP_API_DECLARE(atan, Atan)
3641
UNARY_OP_API_DECLARE(acos, Acos)
3742
UNARY_OP_API_DECLARE(ceil, Ceil)
3843
UNARY_OP_API_DECLARE(exp, Exp)
44+
UNARY_OP_API_DECLARE(exp2, Exp2)
3945
UNARY_OP_API_DECLARE(hardswish, Hardswish)
46+
UNARY_OP_API_DECLARE(isnan, IsNan)
47+
UNARY_OP_API_DECLARE(isinf, IsInf)
48+
UNARY_OP_API_DECLARE(isfinite, IsFinite)
49+
UNARY_OP_API_DECLARE(sinc, Sinc)
50+
UNARY_OP_API_DECLARE(sin, Sin)
4051

4152
#endif // __INFINIOP_UNARY_OPS_API_H__

0 commit comments

Comments
 (0)