Skip to content

Commit 52a45fe

Browse files
committed
Issue/887 - Add abs,acos,acosh,asin,asinh,atan,atanh,ceil,cos,cosh,erf,floor,log,neg,reciprocal,round,sign,sinh,sqrt,tan operator with CPU and NVIDIA implementations.
1 parent 72c06b3 commit 52a45fe

File tree

162 files changed

+10467
-0
lines changed

Some content is hidden

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

162 files changed

+10467
-0
lines changed

include/infiniop.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,21 @@
22
#define __INFINIOP_API_H__
33

44
#include "infiniop/handle.h"
5+
#include "infiniop/ops/abs.h"
6+
#include "infiniop/ops/acos.h"
7+
#include "infiniop/ops/acosh.h"
58
#include "infiniop/ops/add.h"
69
#include "infiniop/ops/add_rms_norm.h"
10+
#include "infiniop/ops/asin.h"
11+
#include "infiniop/ops/asinh.h"
12+
#include "infiniop/ops/atan.h"
13+
#include "infiniop/ops/atanh.h"
714
#include "infiniop/ops/attention.h"
15+
#include "infiniop/ops/ceil.h"
16+
#include "infiniop/ops/cos.h"
17+
#include "infiniop/ops/cosh.h"
18+
#include "infiniop/ops/erf.h"
19+
#include "infiniop/ops/floor.h"
820
#include "infiniop/ops/causal_softmax.h"
921
#include "infiniop/ops/clip.h"
1022
#include "infiniop/ops/conv.h"
@@ -13,17 +25,24 @@
1325
#include "infiniop/ops/gelu.h"
1426
#include "infiniop/ops/gemm.h"
1527
#include "infiniop/ops/layer_norm.h"
28+
#include "infiniop/ops/log.h"
1629
#include "infiniop/ops/logsoftmax.h"
1730
#include "infiniop/ops/lp_norm.h"
1831
#include "infiniop/ops/max.h"
1932
#include "infiniop/ops/min.h"
2033
#include "infiniop/ops/mul.h"
34+
#include "infiniop/ops/neg.h"
2135
#include "infiniop/ops/ones.h"
2236
#include "infiniop/ops/paged_attention.h"
2337
#include "infiniop/ops/paged_attention_prefill.h"
2438
#include "infiniop/ops/paged_caching.h"
2539
#include "infiniop/ops/random_sample.h"
40+
#include "infiniop/ops/reciprocal.h"
2641
#include "infiniop/ops/rearrange.h"
42+
#include "infiniop/ops/round.h"
43+
#include "infiniop/ops/sign.h"
44+
#include "infiniop/ops/sinh.h"
45+
#include "infiniop/ops/sqrt.h"
2746
#include "infiniop/ops/relu.h"
2847
#include "infiniop/ops/rms_norm.h"
2948
#include "infiniop/ops/rope.h"
@@ -33,6 +52,7 @@
3352
#include "infiniop/ops/softplus.h"
3453
#include "infiniop/ops/sub.h"
3554
#include "infiniop/ops/swiglu.h"
55+
#include "infiniop/ops/tan.h"
3656
#include "infiniop/ops/tanh.h"
3757
#include "infiniop/ops/topkrouter.h"
3858
#include "infiniop/ops/topksoftmax.h"

include/infiniop/ops/abs.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ABS_API_H__
2+
#define __INFINIOP_ABS_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAbsDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAbsDescriptor(infiniopHandle_t handle,
9+
infiniopAbsDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAbsWorkspaceSize(infiniopAbsDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAbs(infiniopAbsDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAbsDescriptor(infiniopAbsDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/acos.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ACOS_API_H__
2+
#define __INFINIOP_ACOS_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAcosDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAcosDescriptor(infiniopHandle_t handle,
9+
infiniopAcosDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAcosWorkspaceSize(infiniopAcosDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAcos(infiniopAcosDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAcosDescriptor(infiniopAcosDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/acosh.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ACOSH_API_H__
2+
#define __INFINIOP_ACOSH_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAcoshDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAcoshDescriptor(infiniopHandle_t handle,
9+
infiniopAcoshDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAcoshWorkspaceSize(infiniopAcoshDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAcosh(infiniopAcoshDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAcoshDescriptor(infiniopAcoshDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/asin.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ASIN_API_H__
2+
#define __INFINIOP_ASIN_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAsinDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAsinDescriptor(infiniopHandle_t handle,
9+
infiniopAsinDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAsinWorkspaceSize(infiniopAsinDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAsin(infiniopAsinDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAsinDescriptor(infiniopAsinDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/asinh.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ASINH_API_H__
2+
#define __INFINIOP_ASINH_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAsinhDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAsinhDescriptor(infiniopHandle_t handle,
9+
infiniopAsinhDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAsinhWorkspaceSize(infiniopAsinhDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAsinh(infiniopAsinhDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAsinhDescriptor(infiniopAsinhDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/atan.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ATAN_API_H__
2+
#define __INFINIOP_ATAN_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAtanDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAtanDescriptor(infiniopHandle_t handle,
9+
infiniopAtanDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAtanWorkspaceSize(infiniopAtanDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAtan(infiniopAtanDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAtanDescriptor(infiniopAtanDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/atanh.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ATANH_API_H__
2+
#define __INFINIOP_ATANH_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAtanhDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateAtanhDescriptor(infiniopHandle_t handle,
9+
infiniopAtanhDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetAtanhWorkspaceSize(infiniopAtanhDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopAtanh(infiniopAtanhDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyAtanhDescriptor(infiniopAtanhDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/ceil.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_CEIL_API_H__
2+
#define __INFINIOP_CEIL_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopCeilDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateCeilDescriptor(infiniopHandle_t handle,
9+
infiniopCeilDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetCeilWorkspaceSize(infiniopCeilDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopCeil(infiniopCeilDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyCeilDescriptor(infiniopCeilDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/cos.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_COS_API_H__
2+
#define __INFINIOP_COS_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopCosDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateCosDescriptor(infiniopHandle_t handle,
9+
infiniopCosDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetCosWorkspaceSize(infiniopCosDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopCos(infiniopCosDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroyCosDescriptor(infiniopCosDescriptor_t desc);
23+
24+
#endif

0 commit comments

Comments
 (0)