载入中...
搜索中...
未找到
eve::tensor::glsl_detail 命名空间参考

类

struct  ChainContext
 

函数

std::string header (int localX, int localY=1)
 Header.
 
std::string bufferDecl (int binding, const char *name)
 Buffer decl.
 
std::string bufferDeclUint (int binding, const char *name)
 
std::string emitQuantizedBVal (DType dt, int group, const char *bufName="b")
 
std::string pushConstant ()
 Pushes constant.
 
int groupsFor (int count)
 Groups for.
 
std::string scalarStr (float value)
 Scalar str.
 
void emitInputIndexExprs (std::ostringstream &os, const Graph &g, const FusedGroup &grp, std::vector< std::string > &indexExprs)
 
bool genElementwise (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genMatMul (const Graph &g, const FusedGroup &grp, bool tiled, KernelSpec &out)
 
bool genConv (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genPool (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genSoftmax (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genNorm (const Graph &g, const FusedGroup &grp, bool rms, KernelSpec &out)
 
bool genReduceOrArgmax (const Graph &g, const FusedGroup &grp, bool argmax, KernelSpec &out)
 
bool genEmbedding (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genConcat (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genSlice (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genPermute (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
bool genSdpa (const Graph &g, const FusedGroup &grp, KernelSpec &out)
 
void genResize2d (const Graph &, const FusedGroup &, KernelSpec &)
 Gen resize 2 d.
 

变量

constexpr int kLocalSize = 256
 

函数说明

◆ bufferDecl()

std::string eve::tensor::glsl_detail::bufferDecl ( int  binding,
const char *  name 
)

◆ bufferDeclUint()

std::string eve::tensor::glsl_detail::bufferDeclUint ( int  binding,
const char *  name 
)

在文件 KernelGen.cpp 第 29 行定义.

引用了 binding , 以及 name.

被这些函数引用 genEmbedding() , 以及 genMatMul().

◆ emitInputIndexExprs()

void eve::tensor::glsl_detail::emitInputIndexExprs ( std::ostringstream &  os,
const Graph &  g,
const FusedGroup &  grp,
std::vector< std::string > &  indexExprs 
)

Per-input flat-index expression for an elementwise group. When an input has the exact output shape, the identity index is used; otherwise a broadcast index is decomposed from the output flat index with baked strides.

在文件 KernelGen.cpp 第 199 行定义.

引用了 d, eve::tensor::GraphNode::dims, g, eve::tensor::FusedGroup::inputs, eve::tensor::FusedGroup::outputNode, pad, eve::tensor::GraphNode::rank, s , 以及 t.

被这些函数引用 genElementwise().

◆ emitQuantizedBVal()

std::string eve::tensor::glsl_detail::emitQuantizedBVal ( DType  dt,
int  group,
const char *  bufName = "b" 
)

GLSL dequantizer float bval(uint elemIdx) for a packed weight buffer bufName (byte-addressed inside a uint SSBO) plus optional per-group scales bs.

在文件 KernelGen.cpp 第 41 行定义.

引用了 eve::tensor::Fp16, eve::tensor::Fp4E2M1, eve::tensor::Fp8E4M3, g, group, eve::tensor::Int4 , 以及 eve::tensor::Int8.

◆ genConcat()

◆ genConv()

◆ genElementwise()

◆ genEmbedding()

◆ genMatMul()

◆ genNorm()

◆ genPermute()

◆ genPool()

◆ genReduceOrArgmax()

◆ genResize2d()

◆ genSdpa()

◆ genSlice()

◆ genSoftmax()

◆ groupsFor()

int eve::tensor::glsl_detail::groupsFor ( int  count)

◆ header()

std::string eve::tensor::glsl_detail::header ( int  localX,
int  localY 
)

◆ pushConstant()

std::string eve::tensor::glsl_detail::pushConstant ( )

◆ scalarStr()

std::string eve::tensor::glsl_detail::scalarStr ( float  v)

Scalar str.

在文件 KernelGen.cpp 第 107 行定义.

引用了 v.

被这些函数引用 eve::tensor::glsl_detail::ChainContext::emit(), genNorm(), genReduceOrArgmax(), genResize2d() , 以及 genSdpa().

变量说明

◆ kLocalSize

constexpr int eve::tensor::glsl_detail::kLocalSize = 256
inlineconstexpr