Commit 2f2a74b6 authored by Zimin Li's avatar Zimin Li
Browse files

Merge remote-tracking branch 'upstream/main'

parents 1d95ddf3 70806eed
......@@ -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
......@@ -19,3 +19,6 @@ cache/
# JSON
*.json
#GGUF
*.gguf
......@@ -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,
......
......@@ -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"
......
......@@ -5,7 +5,7 @@
struct InfiniopHandle;
typedef InfiniopHandle *infiniopHandle_t;
typedef struct InfiniopHandle *infiniopHandle_t;
__C __export infiniStatus_t infiniopCreateHandle(infiniopHandle_t *handle_ptr);
......
......@@ -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__
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -3,29 +3,26 @@
#include "../operator_descriptor.h"
typedef InfiniopDescriptor *infiniopGEMMDescriptor_t;
typedef struct InfiniopDescriptor *infiniopGemmDescriptor_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 infiniopGetGEMMWorkspaceSize(infiniopGEMMDescriptor_t desc, size_t *size);
__C __export infiniStatus_t infiniopGetGemmWorkspaceSize(infiniopGemmDescriptor_t desc, size_t *size);
__C __export infiniStatus_t infiniopGEMM(infiniopGEMMDescriptor_t desc,
__C __export infiniStatus_t infiniopGemm(infiniopGemmDescriptor_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
......@@ -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,
......
#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
......@@ -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,
......
......@@ -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,
......
......@@ -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
......@@ -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,
......
......@@ -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,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment