Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jerrrrry
infinicore
Commits
2f2a74b6
Commit
2f2a74b6
authored
Mar 24, 2025
by
Zimin Li
Browse files
Merge remote-tracking branch 'upstream/main'
parents
1d95ddf3
70806eed
Changes
80
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
59 additions
and
73 deletions
+59
-73
.github/workflows/build.yml
.github/workflows/build.yml
+6
-1
.gitignore
.gitignore
+3
-0
include/infinicore.h
include/infinicore.h
+1
-0
include/infiniop.h
include/infiniop.h
+1
-1
include/infiniop/handle.h
include/infiniop/handle.h
+1
-1
include/infiniop/operator_descriptor.h
include/infiniop/operator_descriptor.h
+2
-2
include/infiniop/ops/add.h
include/infiniop/ops/add.h
+1
-1
include/infiniop/ops/attention.h
include/infiniop/ops/attention.h
+2
-2
include/infiniop/ops/avg_pool.h
include/infiniop/ops/avg_pool.h
+1
-1
include/infiniop/ops/causal_softmax.h
include/infiniop/ops/causal_softmax.h
+1
-1
include/infiniop/ops/conv.h
include/infiniop/ops/conv.h
+1
-1
include/infiniop/ops/expand.h
include/infiniop/ops/expand.h
+1
-1
include/infiniop/ops/gemm.h
include/infiniop/ops/gemm.h
+10
-13
include/infiniop/ops/global_avg_pool.h
include/infiniop/ops/global_avg_pool.h
+1
-1
include/infiniop/ops/matmul.h
include/infiniop/ops/matmul.h
+0
-28
include/infiniop/ops/max_pool.h
include/infiniop/ops/max_pool.h
+1
-1
include/infiniop/ops/mlp.h
include/infiniop/ops/mlp.h
+2
-2
include/infiniop/ops/random_sample.h
include/infiniop/ops/random_sample.h
+22
-14
include/infiniop/ops/rearrange.h
include/infiniop/ops/rearrange.h
+1
-1
include/infiniop/ops/relu.h
include/infiniop/ops/relu.h
+1
-1
No files found.
.github/workflows/build.yml
View file @
2f2a74b6
...
...
@@ -41,9 +41,14 @@ jobs:
if
:
matrix.os != 'windows-latest'
run
:
xmake install
-
name
:
build infiniop-test
if
:
matrix.os != 'windows-latest'
run
:
xmake build infiniop-test
-
name
:
python test
if
:
matrix.os != 'windows-latest'
run
:
|
pip install torch
LD_LIBRARY_PATH=$HOME/.infini/lib python test/infiniop/
matmul
.py --cpu
LD_LIBRARY_PATH=$HOME/.infini/lib python test/infiniop/
gemm
.py --cpu
LD_LIBRARY_PATH=$HOME/.infini/lib python test/infiniop/rms_norm.py --cpu
LD_LIBRARY_PATH=$HOME/.infini/lib python test/infiniop/random_sample.py --cpu
.gitignore
View file @
2f2a74b6
...
...
@@ -19,3 +19,6 @@ cache/
# JSON
*.json
#GGUF
*.gguf
include/infinicore.h
View file @
2f2a74b6
...
...
@@ -28,6 +28,7 @@ typedef enum {
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
=
5
,
INFINI_STATUS_DEVICE_NOT_FOUND
=
6
,
INFINI_STATUS_DEVICE_NOT_INITIALIZED
=
7
,
INFINI_STATUS_DEVICE_ARCHITECTURE_NOT_SUPPORTED
=
8
,
// Op Errors
INFINI_STATUS_BAD_TENSOR_DTYPE
=
10
,
INFINI_STATUS_BAD_TENSOR_SHAPE
=
11
,
...
...
include/infiniop.h
View file @
2f2a74b6
...
...
@@ -10,7 +10,7 @@
#include "infiniop/ops/expand.h"
#include "infiniop/ops/gemm.h"
#include "infiniop/ops/global_avg_pool.h"
#include "infiniop/ops/
matmul
.h"
#include "infiniop/ops/
gemm
.h"
#include "infiniop/ops/max_pool.h"
#include "infiniop/ops/mlp.h"
#include "infiniop/ops/random_sample.h"
...
...
include/infiniop/handle.h
View file @
2f2a74b6
...
...
@@ -5,7 +5,7 @@
struct
InfiniopHandle
;
typedef
InfiniopHandle
*
infiniopHandle_t
;
typedef
struct
InfiniopHandle
*
infiniopHandle_t
;
__C
__export
infiniStatus_t
infiniopCreateHandle
(
infiniopHandle_t
*
handle_ptr
);
...
...
include/infiniop/operator_descriptor.h
View file @
2f2a74b6
...
...
@@ -7,7 +7,7 @@
// Base descriptor for all operators
struct
InfiniopDescriptor
;
__C
__export
infiniStatus_t
infiniopGetDescriptorDeviceType
(
const
InfiniopDescriptor
*
desc_ptr
,
infiniDevice_t
*
device_type
);
__C
__export
infiniStatus_t
infiniopGetDescriptorDeviceId
(
const
InfiniopDescriptor
*
desc_ptr
,
int
*
device_id
);
__C
__export
infiniStatus_t
infiniopGetDescriptorDeviceType
(
const
struct
InfiniopDescriptor
*
desc_ptr
,
infiniDevice_t
*
device_type
);
__C
__export
infiniStatus_t
infiniopGetDescriptorDeviceId
(
const
struct
InfiniopDescriptor
*
desc_ptr
,
int
*
device_id
);
#endif //__INFINIOP_OPERATOR_DESCRIPTOR_API_H__
include/infiniop/ops/add.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopAddDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopAddDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateAddDescriptor
(
infiniopHandle_t
handle
,
infiniopAddDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/attention.h
View file @
2f2a74b6
...
...
@@ -2,10 +2,10 @@
#define __INFINIOP_ATTENTION_API_H__
#include "../operator_descriptor.h"
#include "
matmul
.h"
#include "
gemm
.h"
#include "swiglu.h"
typedef
InfiniopDescriptor
*
infiniopAttentionDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopAttentionDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateAttentionDescriptor
(
infiniopHandle_t
handle
,
infiniopAttentionDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/avg_pool.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopAvgPoolDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopAvgPoolDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateAvgPoolDescriptor
(
infiniopHandle_t
handle
,
infiniopAvgPoolDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/causal_softmax.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopCausalSoftmaxDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopCausalSoftmaxDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateCausalSoftmaxDescriptor
(
infiniopHandle_t
handle
,
infiniopCausalSoftmaxDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/conv.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopConvDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopConvDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateConvDescriptor
(
infiniopHandle_t
handle
,
infiniopConvDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/expand.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopExpandDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopExpandDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateExpandDescriptor
(
infiniopHandle_t
handle
,
infiniopExpandDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/gemm.h
View file @
2f2a74b6
...
...
@@ -3,29 +3,26 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopG
EMM
Descriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopG
emm
Descriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateGEMMDescriptor
(
infiniopHandle_t
handle
,
infiniopGEMMDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
y_desc
,
infiniopTensorDescriptor_t
a_desc
,
infiniopTensorDescriptor_t
b_desc
,
__C
__export
infiniStatus_t
infiniopCreateGemmDescriptor
(
infiniopHandle_t
handle
,
infiniopGemmDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
c_desc
,
char
transA
,
char
transB
);
infiniopTensorDescriptor_t
a_desc
,
infiniopTensorDescriptor_t
b_desc
);
__C
__export
infiniStatus_t
infiniopGetG
EMM
WorkspaceSize
(
infiniopG
EMM
Descriptor_t
desc
,
size_t
*
size
);
__C
__export
infiniStatus_t
infiniopGetG
emm
WorkspaceSize
(
infiniopG
emm
Descriptor_t
desc
,
size_t
*
size
);
__C
__export
infiniStatus_t
infiniopG
EMM
(
infiniopG
EMM
Descriptor_t
desc
,
__C
__export
infiniStatus_t
infiniopG
emm
(
infiniopG
emm
Descriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
y
,
void
*
c
,
void
const
*
a
,
void
const
*
b
,
void
const
*
c
,
float
alpha
,
float
beta
,
void
*
stream
);
__C
__export
infiniStatus_t
infiniopDestroyGEMMDescriptor
(
infiniopGEMMDescriptor_t
desc
);
__C
__export
infiniStatus_t
infiniopDestroyGemmDescriptor
(
infiniopGemmDescriptor_t
desc
);
#endif
include/infiniop/ops/global_avg_pool.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopGlobalAvgPoolDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopGlobalAvgPoolDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateGlobalAvgPoolDescriptor
(
infiniopHandle_t
handle
,
infiniopGlobalAvgPoolDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/matmul.h
deleted
100644 → 0
View file @
1d95ddf3
#ifndef __INFINIOP_MATMUL_API_H__
#define __INFINIOP_MATMUL_API_H__
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopMatmulDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateMatmulDescriptor
(
infiniopHandle_t
handle
,
infiniopMatmulDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
c_desc
,
infiniopTensorDescriptor_t
a_desc
,
infiniopTensorDescriptor_t
b_desc
);
__C
__export
infiniStatus_t
infiniopGetMatmulWorkspaceSize
(
infiniopMatmulDescriptor_t
desc
,
size_t
*
size
);
__C
__export
infiniStatus_t
infiniopMatmul
(
infiniopMatmulDescriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
c
,
void
const
*
a
,
void
const
*
b
,
float
alpha
,
float
beta
,
void
*
stream
);
__C
__export
infiniStatus_t
infiniopDestroyMatmulDescriptor
(
infiniopMatmulDescriptor_t
desc
);
#endif
include/infiniop/ops/max_pool.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopMaxPoolDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopMaxPoolDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateMaxPoolDescriptor
(
infiniopHandle_t
handle
,
infiniopMaxPoolDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/mlp.h
View file @
2f2a74b6
...
...
@@ -2,10 +2,10 @@
#define __INFINIOP_MLP_API_H__
#include "../operator_descriptor.h"
#include "
matmul
.h"
#include "
gemm
.h"
#include "swiglu.h"
typedef
InfiniopDescriptor
*
infiniopMLPDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopMLPDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateMLPDescriptor
(
infiniopHandle_t
handle
,
infiniopMLPDescriptor_t
*
desc_ptr
,
...
...
include/infiniop/ops/random_sample.h
View file @
2f2a74b6
...
...
@@ -3,23 +3,31 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopRandomSampleDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopRandomSampleDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateRandomSampleDescriptor
(
infiniopHandle_t
handle
,
infiniopRandomSampleDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
result
,
infiniopTensorDescriptor_t
probs
);
__C
__export
infiniStatus_t
infiniopCreateRandomSampleDescriptor
(
infiniopHandle_t
handle
,
infiniopRandomSampleDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
result
,
infiniopTensorDescriptor_t
probs
);
__C
__export
infiniStatus_t
infiniopGetRandomSampleWorkspaceSize
(
infiniopRandomSampleDescriptor_t
desc
,
size_t
*
size
);
__C
__export
infiniStatus_t
infiniopGetRandomSampleWorkspaceSize
(
infiniopRandomSampleDescriptor_t
desc
,
size_t
*
size
);
__C
__export
infiniStatus_t
infiniopRandomSample
(
infiniopRandomSampleDescriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
result
,
void
const
*
probs
,
float
random_val
,
float
topp
,
int
topk
,
float
temperature
,
void
*
stream
);
__C
__export
infiniStatus_t
infiniopRandomSample
(
infiniopRandomSampleDescriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
result
,
const
void
*
probs
,
float
random_val
,
float
topp
,
int
topk
,
float
temperature
,
void
*
stream
);
__C
__export
infiniStatus_t
infiniopDestroyRandomSampleDescriptor
(
infiniopRandomSampleDescriptor_t
desc
);
__C
__export
infiniStatus_t
infiniopDestroyRandomSampleDescriptor
(
infiniopRandomSampleDescriptor_t
desc
);
#endif
include/infiniop/ops/rearrange.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopRearrangeDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopRearrangeDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateRearrangeDescriptor
(
infiniopHandle_t
handle
,
...
...
include/infiniop/ops/relu.h
View file @
2f2a74b6
...
...
@@ -3,7 +3,7 @@
#include "../operator_descriptor.h"
typedef
InfiniopDescriptor
*
infiniopReluDescriptor_t
;
typedef
struct
InfiniopDescriptor
*
infiniopReluDescriptor_t
;
__C
__export
infiniStatus_t
infiniopCreateReluDescriptor
(
infiniopHandle_t
handle
,
infiniopReluDescriptor_t
*
desc_ptr
,
...
...
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment