载入中...
搜索中...
未找到
CpuKernels.h
浏览该文件的文档.
1#ifndef EVE_TENSOR_CPUKERNELS_H
2#define EVE_TENSOR_CPUKERNELS_H
3
4#include "tensor/Graph.h"
5
6#include <cstddef>
7
8namespace eve::tensor {
9
18namespace kernels {
19
21float applyUnary(OpType type, float x, float s0, float s1);
22
25
27bool broadcastShape(const int *aDims, int aRank, const int *bDims, int bRank, int *outDims,
28 int &outRank);
29
31void binaryOp(OpType type, const float *a, const int *aDims, int aRank, const float *b,
32 const int *bDims, int bRank, float *out, const int *outDims, int outRank);
33
35void unaryOp(OpType type, const float *in, int count, float *out, float s0, float s1);
36
37void softmax(const float *in, const int *dims, int rank, int axis, bool logMode, float *out);
38void layernorm(const float *in, int rows, int cols, const float *scale, const float *bias,
39 float eps, float *out);
40void rmsnorm(const float *in, int rows, int cols, const float *scale, float eps, float *out);
41
42void conv1d(const float *x, const int *xDims, const float *w, const int *wDims,
43 const float *bias, int stride, int pad, float *out);
44void conv2d(const float *x, const int *xDims, const float *w, const int *wDims,
45 const float *bias, int stride, int pad, float *out);
46void maxpool2d(const float *in, const int *dims, int ksize, int stride, int pad, float *out);
47void avgpool2d(const float *in, const int *dims, int ksize, int stride, int pad, float *out);
48
50void embedding(const float *table, int vocab, int dim, const float *indices, int count,
51 float *out);
52
54void concat(const float *const *ins, const int *const *inDims, const int *inRanks, int n,
55 int axis, float *out, const int *outDims, int outRank);
56
57void sliceOp(const float *in, const int *inDims, int inRank, int axis, int begin, int end,
58 float *out, const int *outDims, int outRank);
59void permute(const float *in, const int *inDims, int rank, const int *order, float *out,
60 const int *outDims);
61
63void reduceAxis(OpType type, const float *in, const int *dims, int rank, int axis, float *out,
64 const int *outDims, int outRank);
65void argmax(const float *in, const int *dims, int rank, int axis, float *out,
66 const int *outDims, int outRank);
67
72void sdpa(const float *q, const float *k, const float *v, const float *mask, int B, int H,
73 int T, int S, int D, float scale, float *out);
74
76void resize2d(const float *in, const int *inDims, int outW, int outH, int mode, float *out);
77
78} // namespace kernels
79} // namespace eve::tensor
80
81#endif // EVE_TENSOR_CPUKERNELS_H
std::string type
int x
Definition Grass.cpp:135
glm::vec3 n
Definition Grass.cpp:64
int w
uint32_t a
uint32_t b
int v
float scale
Definition TreeMesh.cpp:122
void maxpool2d(const float *in, const int *dims, int ksize, int stride, int pad, float *out)
void softmax(const float *in, const int *dims, int rank, int axis, bool logMode, float *out)
void conv2d(const float *x, const int *xDims, const float *w, const int *wDims, const float *bias, int stride, int pad, float *out)
void sdpa(const float *q, const float *k, const float *v, const float *mask, int B, int H, int T, int S, int D, float scale, float *out)
void sliceOp(const float *in, const int *inDims, int inRank, int axis, int begin, int end, float *out, const int *outDims, int outRank)
void embedding(const float *table, int vocab, int dim, const float *indices, int count, float *out)
void avgpool2d(const float *in, const int *dims, int ksize, int stride, int pad, float *out)
void binaryOp(OpType type, const float *a, const int *aDims, int aRank, const float *b, const int *bDims, int bRank, float *out, const int *outDims, int outRank)
void permute(const float *in, const int *inDims, int rank, const int *order, float *out, const int *outDims)
void reduceAxis(OpType type, const float *in, const int *dims, int rank, int axis, float *out, const int *outDims, int outRank)
bool broadcastShape(const int *aDims, int aRank, const int *bDims, int bRank, int *outDims, int &outRank)
bool isElementwiseOp(OpType t)
void argmax(const float *in, const int *dims, int rank, int axis, float *out, const int *outDims, int outRank)
void layernorm(const float *in, int rows, int cols, const float *scale, const float *bias, float eps, float *out)
void rmsnorm(const float *in, int rows, int cols, const float *scale, float eps, float *out)
void concat(const float *const *ins, const int *const *inDims, const int *inRanks, int n, int axis, float *out, const int *outDims, int outRank)
float applyUnary(OpType t, float x, float s0, float s1)
void conv1d(const float *x, const int *xDims, const float *w, const int *wDims, const float *bias, int stride, int pad, float *out)
void unaryOp(OpType type, const float *in, int count, float *out, float s0, float s1)
void resize2d(const float *in, const int *inDims, int outW, int outH, int mode, float *out)