类 | |
| 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 | ||
| ) |
Buffer decl.
在文件 KernelGen.cpp 第 22 行定义.
被这些函数引用 genConcat(), genConv(), genElementwise(), genEmbedding(), genMatMul(), genNorm(), genPermute(), genPool(), genReduceOrArgmax(), genResize2d(), genSdpa(), genSlice() , 以及 genSoftmax().
◆ bufferDeclUint()
| std::string eve::tensor::glsl_detail::bufferDeclUint | ( | int | binding, |
| const char * | name | ||
| ) |
◆ 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()
| bool eve::tensor::glsl_detail::genConcat | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 749 行定义.
引用了 bufferDecl(), eve::tensor::GraphNode::dims, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::KernelSpec::inputCount, eve::tensor::FusedGroup::inputs, kLocalSize, n, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::rank, eve::tensor::GraphNode::size , 以及 sz.
◆ genConv()
| bool eve::tensor::glsl_detail::genConv | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 387 行定义.
引用了 eve::tensor::FusedGroup::biasNode, bufferDecl(), eve::tensor::Conv1d, eve::tensor::GraphNode::dims, eve::tensor::FusedGroup::epilogue, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::i1, eve::tensor::GraphNode::in0, eve::tensor::GraphNode::in1, eve::tensor::GraphNode::in2, eve::tensor::KernelSpec::inputCount, eve::tensor::FusedGroup::inputs, kLocalSize, eve::tensor::FusedGroup::nodes, eve::tensor::FusedGroup::outputNode, pad, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::type , 以及 u.
◆ genElementwise()
| bool eve::tensor::glsl_detail::genElementwise | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 247 行定义.
引用了 bufferDecl(), emitInputIndexExprs(), g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::KernelSpec::inputCount, eve::tensor::FusedGroup::inputs, kLocalSize, eve::tensor::kMaxKernelBindings, eve::tensor::FusedGroup::nodes, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::size , 以及 u.
◆ genEmbedding()
| bool eve::tensor::glsl_detail::genEmbedding | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 712 行定义.
引用了 bufferDecl(), bufferDeclUint(), eve::tensor::GraphNode::constBytes, eve::tensor::GraphNode::dims, eve::tensor::GraphNode::dtype, eve::tensor::Fp16, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, eve::tensor::q::isQuantDType(), kLocalSize, eve::tensor::KernelSpec::outputBinding, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::KernelSpec::qDtype, eve::tensor::GraphNode::qGroup, eve::tensor::KernelSpec::qGroup, eve::tensor::KernelSpec::scalesBinding , 以及 eve::tensor::GraphNode::size.
◆ genMatMul()
| bool eve::tensor::glsl_detail::genMatMul | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| bool | tiled, | ||
| KernelSpec & | out | ||
| ) |
Emit matmul kernel; tiled selects the shared-memory 16x16 variant.
在文件 KernelGen.cpp 第 273 行定义.
引用了 eve::tensor::FusedGroup::biasNode, bufferDecl(), bufferDeclUint(), eve::tensor::FusedGroup::epilogue, eve::tensor::Fp16, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, eve::tensor::KernelSpec::groupsY2, header(), eve::tensor::GraphNode::in0, eve::tensor::GraphNode::in1, eve::tensor::KernelSpec::inputCount, eve::tensor::FusedGroup::inputs, eve::tensor::q::isQuantDType(), kLocalSize, m, n, eve::tensor::FusedGroup::nodes, eve::tensor::KernelSpec::outputBinding, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::KernelSpec::qDtype, eve::tensor::KernelSpec::qGroup, eve::tensor::GraphNode::rank, eve::tensor::KernelSpec::scalesBinding , 以及 u.
◆ genNorm()
| bool eve::tensor::glsl_detail::genNorm | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| bool | rms, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 578 行定义.
引用了 bufferDecl(), cols, g, groupsFor(), eve::tensor::KernelSpec::groupsX1, eve::tensor::KernelSpec::groupsX2, eve::tensor::FusedGroup::hasBias, eve::tensor::FusedGroup::hasScale, header(), eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, eve::tensor::KernelSpec::inputsReadPass1, kLocalSize, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), rows, eve::tensor::GraphNode::s0, scalarStr(), eve::tensor::GraphNode::size, eve::tensor::KernelSpec::statsCount, eve::tensor::KernelSpec::statsSize , 以及 eve::tensor::KernelSpec::twoPass.
◆ genPermute()
| bool eve::tensor::glsl_detail::genPermute | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 820 行定义.
引用了 bufferDecl(), eve::tensor::GraphNode::dims, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, kLocalSize, eve::tensor::Tensor::kMaxRank, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, eve::tensor::GraphNode::perm, pushConstant(), eve::tensor::GraphNode::rank , 以及 eve::tensor::GraphNode::size.
◆ genPool()
| bool eve::tensor::glsl_detail::genPool | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 464 行定义.
引用了 bufferDecl(), eve::tensor::GraphNode::dims, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::i1, eve::tensor::GraphNode::i2, eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, kLocalSize, eve::tensor::MaxPool2d, eve::tensor::FusedGroup::outputNode, pad, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::size , 以及 eve::tensor::GraphNode::type.
◆ genReduceOrArgmax()
| bool eve::tensor::glsl_detail::genReduceOrArgmax | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| bool | argmax, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 653 行定义.
引用了 bufferDecl(), g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, kLocalSize, eve::tensor::FusedGroup::op, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), reduce, eve::tensor::ReduceMax, eve::tensor::ReduceMean, eve::tensor::ReduceMin, eve::tensor::ReduceSum , 以及 scalarStr().
◆ genResize2d()
| void eve::tensor::glsl_detail::genResize2d | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
Gen resize 2 d.
在文件 KernelGenResize.cpp 第 5 行定义.
引用了 bufferDecl(), eve::tensor::GraphNode::dims, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, kLocalSize, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), scalarStr() , 以及 eve::tensor::GraphNode::size.
◆ genSdpa()
| bool eve::tensor::glsl_detail::genSdpa | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 853 行定义.
引用了 bufferDecl(), eve::tensor::GraphNode::dims, g, eve::tensor::KernelSpec::groupsX2, eve::tensor::KernelSpec::groupsY2, header(), eve::tensor::GraphNode::in0, eve::tensor::GraphNode::in1, eve::tensor::KernelSpec::inputCount, eve::tensor::FusedGroup::masked, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::s0, scalarStr() , 以及 scale.
◆ genSlice()
| bool eve::tensor::glsl_detail::genSlice | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 792 行定义.
引用了 begin, bufferDecl(), eve::tensor::GraphNode::dims, end, g, groupsFor(), eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::i1, eve::tensor::GraphNode::i2, eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, kLocalSize, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), eve::tensor::GraphNode::rank , 以及 eve::tensor::GraphNode::size.
◆ genSoftmax()
| bool eve::tensor::glsl_detail::genSoftmax | ( | const Graph & | g, |
| const FusedGroup & | grp, | ||
| KernelSpec & | out | ||
| ) |
在文件 KernelGen.cpp 第 512 行定义.
引用了 bufferDecl(), g, groupsFor(), eve::tensor::KernelSpec::groupsX1, eve::tensor::KernelSpec::groupsX2, header(), eve::tensor::GraphNode::i0, eve::tensor::GraphNode::in0, eve::tensor::KernelSpec::inputCount, eve::tensor::KernelSpec::inputsReadPass1, kLocalSize, eve::tensor::FusedGroup::logMode, eve::tensor::FusedGroup::outputNode, eve::tensor::KernelSpec::pass1, eve::tensor::KernelSpec::pass2, pushConstant(), reduce, rows, eve::tensor::GraphNode::size, eve::tensor::KernelSpec::statsCount, eve::tensor::KernelSpec::statsSize , 以及 eve::tensor::KernelSpec::twoPass.
◆ groupsFor()
| int eve::tensor::glsl_detail::groupsFor | ( | int | count | ) |
Groups for.
在文件 KernelGen.cpp 第 105 行定义.
引用了 count , 以及 kLocalSize.
被这些函数引用 genConcat(), genConv(), genElementwise(), genEmbedding(), genMatMul(), genNorm(), genPermute(), genPool(), genReduceOrArgmax(), genResize2d(), genSlice() , 以及 genSoftmax().
◆ header()
| std::string eve::tensor::glsl_detail::header | ( | int | localX, |
| int | localY | ||
| ) |
Header.
在文件 KernelGen.cpp 第 13 行定义.
被这些函数引用 genConcat(), genConv(), genElementwise(), genEmbedding(), genMatMul(), genNorm(), genPermute(), genPool(), genReduceOrArgmax(), genResize2d(), genSdpa(), genSlice() , 以及 genSoftmax().
◆ pushConstant()
| std::string eve::tensor::glsl_detail::pushConstant | ( | ) |
Pushes constant.
在文件 KernelGen.cpp 第 101 行定义.
被这些函数引用 genConcat(), genConv(), genElementwise(), genEmbedding(), genMatMul(), genNorm(), genPermute(), genPool(), genReduceOrArgmax(), genResize2d(), genSdpa(), genSlice() , 以及 genSoftmax().
◆ 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
|
inlineconstexpr |
在文件 KernelGenInternal.h 第 6 行定义.
被这些函数引用 genConcat(), genConv(), genElementwise(), genEmbedding(), genMatMul(), genNorm(), genPermute(), genPool(), genReduceOrArgmax(), genResize2d(), genSlice(), genSoftmax() , 以及 groupsFor().