int8_gemm.h 1.77 KB
Newer Older
1
2
3
4
5
6
7
#ifndef __INFINIOP_I8GEMM_API_H__
#define __INFINIOP_I8GEMM_API_H__

#include "../operator_descriptor.h"

typedef InfiniopDescriptor *infiniopI8GemmDescriptor_t;

8
__INFINI_C __export infiniStatus_t infiniopCreateI8GemmDescriptor(infiniopHandle_t handle,
9
10
11
12
13
14
15
16
                                                           infiniopI8GemmDescriptor_t *desc_ptr,
                                                           infiniopTensorDescriptor_t out_desc,
                                                           infiniopTensorDescriptor_t bias_desc,
                                                           infiniopTensorDescriptor_t x_desc,
                                                           infiniopTensorDescriptor_t x_scale_desc,
                                                           infiniopTensorDescriptor_t weights_desc,
                                                           infiniopTensorDescriptor_t weights_scale_desc);

17
__INFINI_C __export infiniStatus_t infiniopGetI8GemmWorkspaceSize(infiniopI8GemmDescriptor_t desc, size_t *size);
18

19
__INFINI_C __export infiniStatus_t infiniopI8Gemm(infiniopI8GemmDescriptor_t desc,
20
21
22
23
24
25
26
27
28
29
                                           void *workspace,
                                           size_t workspace_size,
                                           void *out,
                                           const void *bias,
                                           const void *x,
                                           const void *x_scale,
                                           const void *weights,
                                           const void *weights_scale,
                                           void *stream);

30
__INFINI_C __export infiniStatus_t infiniopDestroyI8GemmDescriptor(infiniopI8GemmDescriptor_t desc);
31
32

#endif