float32 / int32 tensor (rank 1–6), row-major. Eager: owns a buffer. Symbolic: node in a Func graph (no buffer until run). 更多...
#include <Tensor.h>
Public 成员函数 | |
| Tensor ()=default | |
| Tensor. | |
| Tensor (const int *dims, int rank) | |
| 从 dims[0..rank) 创建 eager 张量。 | |
| Tensor (DType dtype, const int *dims, int rank) | |
| Tensor. | |
| Tensor (int d0) | |
| 按秩创建全零 eager 张量。 | |
| Tensor (int d0, int d1) | |
| Tensor. | |
| Tensor (int d0, int d1, int d2) | |
| Tensor. | |
| Tensor (int d0, int d1, int d2, int d3) | |
| Tensor. | |
| Tensor (int d0, int d1, int d2, int d3, int d4) | |
| Tensor. | |
| Tensor (int d0, int d1, int d2, int d3, int d4, int d5) | |
| Tensor. | |
| bool | isSymbolic () const |
| True when symbolic. | |
| bool | isEager () const |
| True when eager. | |
| Graph * | graph () const |
| Graph. | |
| int | nodeId () const |
| Node id. | |
| int | getRank () const |
| Returns the rank. | |
| int | getSize () const |
| Byte length of the owned buffer. | |
| int | getDim (int axis) const |
| Returns the dim. | |
| int | getDim0 () const |
| Returns the dim 0. | |
| int | getDim1 () const |
| Returns the dim 1. | |
| int | getDim2 () const |
| Returns the dim 2. | |
| int | getDim3 () const |
| Returns the dim 3. | |
| int | getDim4 () const |
| Returns the dim 4. | |
| int | getDim5 () const |
| Returns the dim 5. | |
| std::string | getDevice () const |
| Returns the device. | |
| std::string | getDtype () const |
| Returns the dtype. | |
| DType | dtype () const |
| Dtype. | |
| void | setDtype (DType dtype) |
| Sets the dtype. | |
| bool | isQuantized () const |
| True when quantized. | |
| std::vector< float > | dequantized () const |
| Dequantized. | |
| const std::vector< float > & | qScales () const |
| Q scales. | |
| int | qGroup () const |
| Q group. | |
| const std::vector< uint8_t > & | qBytes () const |
| Q bytes. | |
| float | get (int flatIndex) const |
| Returns the get. | |
| void | set (int flatIndex, float value) |
| Sets the set. | |
| float | get1 (int i0) const |
| Returns the 1. | |
| void | set1 (int i0, float value) |
| Sets the 1. | |
| float | get2 (int i0, int i1) const |
| Returns the 2. | |
| void | set2 (int i0, int i1, float value) |
| Sets the 2. | |
| float | get3 (int i0, int i1, int i2) const |
| Returns the 3. | |
| void | set3 (int i0, int i1, int i2, float value) |
| Sets the 3. | |
| float | get4 (int i0, int i1, int i2, int i3) const |
| Returns the 4. | |
| void | set4 (int i0, int i1, int i2, int i3, float value) |
| Sets the 4. | |
| float | get5 (int i0, int i1, int i2, int i3, int i4) const |
| Returns the 5. | |
| void | set5 (int i0, int i1, int i2, int i3, int i4, float value) |
| Sets the 5. | |
| float | get6 (int i0, int i1, int i2, int i3, int i4, int i5) const |
| Returns the 6. | |
| void | set6 (int i0, int i1, int i2, int i3, int i4, int i5, float value) |
| Sets the 6. | |
| void | fill (float value) |
| Fill. | |
| void | copyFrom (const Tensor *other) |
| Copies from. | |
| Tensor * | clone () const |
| Deep copy. @ownership Caller deletes. | |
| Tensor * | add (const Tensor *other) const |
| Eager 逐元素运算(符号张量会抛异常)。 | |
| Tensor * | sub (const Tensor *other) const |
| Sub. | |
| Tensor * | multiply (const Tensor *other) const |
| Multiply. | |
| Tensor * | div (const Tensor *other) const |
| Div. | |
| Tensor * | addScalar (float s) const |
| Adds scalar. | |
| Tensor * | subScalar (float s) const |
| Sub scalar. | |
| Tensor * | mulScalar (float s) const |
| Mul scalar. | |
| Tensor * | divScalar (float s) const |
| Div scalar. | |
| Tensor * | neg () const |
| Neg. | |
| Tensor * | abs () const |
| Abs. | |
| Tensor * | sqrt () const |
| Sqrt. | |
| Tensor * | exp () const |
| Exp. | |
| Tensor * | log () const |
| Log. | |
| Tensor * | sin () const |
| Sin. | |
| Tensor * | cos () const |
| Cos. | |
| Tensor * | tanh () const |
| Tanh. | |
| Tensor * | relu () const |
| Relu. | |
| Tensor * | sigmoid () const |
| Sigmoid. | |
| Tensor * | gelu () const |
| Gelu. | |
| Tensor * | silu () const |
| Silu. | |
| Tensor * | powScalar (float exp) const |
| Pow scalar. | |
| Tensor * | clamp (float lo, float hi) const |
| Clamp. | |
| Tensor * | maximumScalar (float s) const |
| Maximum scalar. | |
| Tensor * | minimumScalar (float s) const |
| Minimum scalar. | |
| void | addInPlace (const Tensor *other) |
| Eager 原地运算。 | |
| void | multiplyInPlace (const Tensor *other) |
| Multiply in place. | |
| void | addScalarInPlace (float s) |
| Adds scalar in place. | |
| void | mulScalarInPlace (float s) |
| Mul scalar in place. | |
| void | reluInPlace () |
| Relu in place. | |
| float | reduceSum () const |
| 归约:求和 / 均值 / 最小 / 最大。 | |
| float | reduceMean () const |
| Reduce mean. | |
| float | reduceMin () const |
| Reduce min. | |
| float | reduceMax () const |
| Reduce max. | |
| float | dot (const Tensor *other) const |
| Dot. | |
| Tensor * | matmul (const Tensor *other) const |
| 矩阵乘法 / 转置 / 变形。 | |
| Tensor * | transpose () const |
| Transpose. | |
| Tensor * | permute (const int *order, int rank) const |
| Permute. | |
| Tensor * | reshape1 (int d0) const |
| Reshape 1. | |
| Tensor * | reshape2 (int d0, int d1) const |
| Reshape 2. | |
| Tensor * | reshape3 (int d0, int d1, int d2) const |
| Reshape 3. | |
| Tensor * | reshape4 (int d0, int d1, int d2, int d3) const |
| Reshape 4. | |
| Tensor * | reshape5 (int d0, int d1, int d2, int d3, int d4) const |
| Reshape 5. | |
| Tensor * | reshape6 (int d0, int d1, int d2, int d3, int d4, int d5) const |
| Reshape 6. | |
| Tensor * | flatten () const |
| Flatten. | |
| float * | data () |
| 原始数据指针(eager)。 | |
| const float * | data () const |
| Data. | |
| void | ensureEager (const char *op) const |
| Ensure eager. | |
静态 Public 成员函数 | |
| static Tensor * | makeSymbolic (Graph *graph, int nodeId, const int *dims, int rank) |
| Symbolic handle into a graph node. | |
| static int | product (const int *dims, int rank) |
| Product. | |
静态 Public 属性 | |
| static constexpr int | kMaxRank = 6 |
友元 | |
| class | TF |
| class | Func |
| class | CompiledFunction |
| class | Graph |
详细描述
float32 / int32 tensor (rank 1–6), row-major. Eager: owns a buffer. Symbolic: node in a Func graph (no buffer until run).
构造及析构函数说明
◆ Tensor() [1/9]
|
default |
◆ Tensor() [2/9]
|
explicit |
◆ Tensor() [3/9]
|
explicit |
◆ Tensor() [4/9]
| eve::tensor::Tensor::Tensor | ( | int | d0 | ) |
◆ Tensor() [5/9]
| eve::tensor::Tensor::Tensor | ( | int | d0, |
| int | d1 | ||
| ) |
◆ Tensor() [6/9]
| eve::tensor::Tensor::Tensor | ( | int | d0, |
| int | d1, | ||
| int | d2 | ||
| ) |
◆ Tensor() [7/9]
| eve::tensor::Tensor::Tensor | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3 | ||
| ) |
◆ Tensor() [8/9]
| eve::tensor::Tensor::Tensor | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3, | ||
| int | d4 | ||
| ) |
◆ Tensor() [9/9]
| eve::tensor::Tensor::Tensor | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3, | ||
| int | d4, | ||
| int | d5 | ||
| ) |
成员函数说明
◆ abs()
| Tensor * eve::tensor::Tensor::abs | ( | ) | const |
Abs.
◆ add()
◆ addInPlace()
| void eve::tensor::Tensor::addInPlace | ( | const Tensor * | other | ) |
◆ addScalar()
| Tensor * eve::tensor::Tensor::addScalar | ( | float | s | ) | const |
Adds scalar.
在文件 Tensor.cpp 第 326 行定义.
引用了 eve::tensor::AddScalar, ensureEager(), s, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ addScalarInPlace()
| void eve::tensor::Tensor::addScalarInPlace | ( | float | s | ) |
◆ clamp()
| Tensor * eve::tensor::Tensor::clamp | ( | float | lo, |
| float | hi | ||
| ) | const |
Clamp.
在文件 Tensor.cpp 第 392 行定义.
引用了 eve::tensor::Clamp, ensureEager(), Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ clone()
| Tensor * eve::tensor::Tensor::clone | ( | ) | const |
◆ copyFrom()
| void eve::tensor::Tensor::copyFrom | ( | const Tensor * | other | ) |
◆ cos()
| Tensor * eve::tensor::Tensor::cos | ( | ) | const |
Cos.
◆ data() [1/2]
| float * eve::tensor::Tensor::data | ( | ) |
原始数据指针(eager)。
在文件 Tensor.cpp 第 185 行定义.
引用了 ensureEager() , 以及 isQuantized().
被这些函数引用 eve::tensor::TF::sdpaMasked().
◆ data() [2/2]
| const float * eve::tensor::Tensor::data | ( | ) | const |
◆ dequantized()
| std::vector< float > eve::tensor::Tensor::dequantized | ( | ) | const |
Dequantized.
Dequantize this tensor to float32 (eager only).
在文件 Tensor.cpp 第 210 行定义.
引用了 eve::tensor::q::dequantizeAll(), ensureEager() , 以及 isQuantized().
被这些函数引用 matmul() , 以及 transpose().
◆ div()
◆ divScalar()
| Tensor * eve::tensor::Tensor::divScalar | ( | float | s | ) | const |
Div scalar.
在文件 Tensor.cpp 第 344 行定义.
引用了 eve::tensor::DivScalar, ensureEager(), s, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ dot()
| float eve::tensor::Tensor::dot | ( | const Tensor * | other | ) | const |
◆ dtype()
◆ ensureEager()
| void eve::tensor::Tensor::ensureEager | ( | const char * | op | ) | const |
Ensure eager.
在文件 Tensor.cpp 第 136 行定义.
被这些函数引用 addInPlace(), addScalar(), addScalarInPlace(), clamp(), clone(), copyFrom(), data(), data(), dequantized(), divScalar(), dot(), fill(), get(), get2(), get3(), get4(), get5(), get6(), matmul(), maximumScalar(), minimumScalar(), mulScalar(), mulScalarInPlace(), multiplyInPlace(), permute(), powScalar(), reduceMax(), reduceMin(), reduceSum(), reluInPlace(), reshape1(), reshape2(), reshape3(), reshape4(), reshape5(), reshape6(), set(), set2(), set3(), set4(), set5(), set6(), subScalar() , 以及 transpose().
◆ exp()
| Tensor * eve::tensor::Tensor::exp | ( | ) | const |
Exp.
被这些函数引用 powScalar().
◆ fill()
| void eve::tensor::Tensor::fill | ( | float | value | ) |
◆ flatten()
| Tensor * eve::tensor::Tensor::flatten | ( | ) | const |
◆ gelu()
| Tensor * eve::tensor::Tensor::gelu | ( | ) | const |
Gelu.
◆ get()
| float eve::tensor::Tensor::get | ( | int | flatIndex | ) | const |
Returns the get.
在文件 Tensor.cpp 第 196 行定义.
引用了 eve::tensor::q::dequantValue(), ensureEager() , 以及 isQuantized().
被这些函数引用 get1() , 以及 eve::tensor::TF::where().
◆ get1()
| float eve::tensor::Tensor::get1 | ( | int | i0 | ) | const |
◆ get2()
| float eve::tensor::Tensor::get2 | ( | int | i0, |
| int | i1 | ||
| ) | const |
◆ get3()
| float eve::tensor::Tensor::get3 | ( | int | i0, |
| int | i1, | ||
| int | i2 | ||
| ) | const |
◆ get4()
| float eve::tensor::Tensor::get4 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3 | ||
| ) | const |
◆ get5()
| float eve::tensor::Tensor::get5 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3, | ||
| int | i4 | ||
| ) | const |
◆ get6()
| float eve::tensor::Tensor::get6 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3, | ||
| int | i4, | ||
| int | i5 | ||
| ) | const |
◆ getDevice()
|
inline |
◆ getDim()
| int eve::tensor::Tensor::getDim | ( | int | axis | ) | const |
Returns the dim.
在文件 Tensor.cpp 第 141 行定义.
被这些函数引用 eve::tensor::TF::sdpaMasked() , 以及 eve::tensor::TF::where().
◆ getDim0()
◆ getDim1()
◆ getDim2()
◆ getDim3()
◆ getDim4()
◆ getDim5()
◆ getDtype()
|
inline |
◆ getRank()
|
inline |
Returns the rank.
被这些函数引用 eve::tensor::TF::sdpaMasked() , 以及 eve::tensor::TF::where().
◆ getSize()
|
inline |
◆ graph()
|
inline |
◆ isEager()
◆ isQuantized()
|
inline |
True when quantized.
True for packed weight-quantization dtypes (bytes_, qScales_).
被这些函数引用 data(), data(), dequantized(), get(), matmul(), permute(), set() , 以及 transpose().
◆ isSymbolic()
◆ log()
| Tensor * eve::tensor::Tensor::log | ( | ) | const |
Log.
◆ makeSymbolic()
|
static |
Symbolic handle into a graph node.
在文件 Tensor.cpp 第 122 行定义.
引用了 eve::tensor::Float32, graph(), kMaxRank, nodeId(), t , 以及 Tensor().
被这些函数引用 eve::tensor::TF::eye().
◆ matmul()
矩阵乘法 / 转置 / 变形。
在文件 Tensor.cpp 第 475 行定义.
引用了 a, b, c, dequantized(), ensureEager(), isQuantized(), m, n, t , 以及 Tensor().
◆ maximumScalar()
| Tensor * eve::tensor::Tensor::maximumScalar | ( | float | s | ) | const |
Maximum scalar.
在文件 Tensor.cpp 第 356 行定义.
引用了 ensureEager(), eve::tensor::MaximumScalar, s, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ minimumScalar()
| Tensor * eve::tensor::Tensor::minimumScalar | ( | float | s | ) | const |
Minimum scalar.
在文件 Tensor.cpp 第 362 行定义.
引用了 ensureEager(), eve::tensor::MinimumScalar, s, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ mulScalar()
| Tensor * eve::tensor::Tensor::mulScalar | ( | float | s | ) | const |
Mul scalar.
在文件 Tensor.cpp 第 338 行定义.
引用了 ensureEager(), eve::tensor::MulScalar, s, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ mulScalarInPlace()
| void eve::tensor::Tensor::mulScalarInPlace | ( | float | s | ) |
◆ multiply()
◆ multiplyInPlace()
| void eve::tensor::Tensor::multiplyInPlace | ( | const Tensor * | other | ) |
◆ neg()
| Tensor * eve::tensor::Tensor::neg | ( | ) | const |
Neg.
◆ nodeId()
|
inline |
◆ permute()
| Tensor * eve::tensor::Tensor::permute | ( | const int * | order, |
| int | rank | ||
| ) | const |
Permute.
在文件 Tensor.cpp 第 545 行定义.
引用了 ensureEager(), isQuantized(), kMaxRank, order, eve::tensor::kernels::permute() , 以及 Tensor().
被这些函数引用 transpose().
◆ powScalar()
| Tensor * eve::tensor::Tensor::powScalar | ( | float | exp | ) | const |
Pow scalar.
在文件 Tensor.cpp 第 350 行定义.
引用了 ensureEager(), exp(), eve::tensor::PowScalar, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ product()
|
static |
Product.
在文件 Tensor.cpp 第 71 行定义.
◆ qBytes()
|
inline |
◆ qGroup()
◆ qScales()
|
inline |
◆ reduceMax()
| float eve::tensor::Tensor::reduceMax | ( | ) | const |
◆ reduceMean()
| float eve::tensor::Tensor::reduceMean | ( | ) | const |
◆ reduceMin()
| float eve::tensor::Tensor::reduceMin | ( | ) | const |
◆ reduceSum()
| float eve::tensor::Tensor::reduceSum | ( | ) | const |
◆ relu()
| Tensor * eve::tensor::Tensor::relu | ( | ) | const |
Relu.
◆ reluInPlace()
| void eve::tensor::Tensor::reluInPlace | ( | ) |
◆ reshape1()
| Tensor * eve::tensor::Tensor::reshape1 | ( | int | d0 | ) | const |
◆ reshape2()
| Tensor * eve::tensor::Tensor::reshape2 | ( | int | d0, |
| int | d1 | ||
| ) | const |
◆ reshape3()
| Tensor * eve::tensor::Tensor::reshape3 | ( | int | d0, |
| int | d1, | ||
| int | d2 | ||
| ) | const |
◆ reshape4()
| Tensor * eve::tensor::Tensor::reshape4 | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3 | ||
| ) | const |
◆ reshape5()
| Tensor * eve::tensor::Tensor::reshape5 | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3, | ||
| int | d4 | ||
| ) | const |
◆ reshape6()
| Tensor * eve::tensor::Tensor::reshape6 | ( | int | d0, |
| int | d1, | ||
| int | d2, | ||
| int | d3, | ||
| int | d4, | ||
| int | d5 | ||
| ) | const |
◆ set()
| void eve::tensor::Tensor::set | ( | int | flatIndex, |
| float | value | ||
| ) |
Sets the set.
在文件 Tensor.cpp 第 203 行定义.
引用了 ensureEager(), isQuantized() , 以及 value.
被这些函数引用 set1().
◆ set1()
| void eve::tensor::Tensor::set1 | ( | int | i0, |
| float | value | ||
| ) |
◆ set2()
| void eve::tensor::Tensor::set2 | ( | int | i0, |
| int | i1, | ||
| float | value | ||
| ) |
◆ set3()
| void eve::tensor::Tensor::set3 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| float | value | ||
| ) |
◆ set4()
| void eve::tensor::Tensor::set4 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3, | ||
| float | value | ||
| ) |
◆ set5()
| void eve::tensor::Tensor::set5 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3, | ||
| int | i4, | ||
| float | value | ||
| ) |
◆ set6()
| void eve::tensor::Tensor::set6 | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| int | i3, | ||
| int | i4, | ||
| int | i5, | ||
| float | value | ||
| ) |
◆ setDtype()
◆ sigmoid()
| Tensor * eve::tensor::Tensor::sigmoid | ( | ) | const |
Sigmoid.
◆ silu()
| Tensor * eve::tensor::Tensor::silu | ( | ) | const |
Silu.
◆ sin()
| Tensor * eve::tensor::Tensor::sin | ( | ) | const |
Sin.
◆ sqrt()
| Tensor * eve::tensor::Tensor::sqrt | ( | ) | const |
Sqrt.
◆ sub()
◆ subScalar()
| Tensor * eve::tensor::Tensor::subScalar | ( | float | s | ) | const |
Sub scalar.
在文件 Tensor.cpp 第 332 行定义.
引用了 ensureEager(), s, eve::tensor::SubScalar, Tensor() , 以及 eve::tensor::kernels::unaryOp().
◆ tanh()
| Tensor * eve::tensor::Tensor::tanh | ( | ) | const |
Tanh.
◆ transpose()
| Tensor * eve::tensor::Tensor::transpose | ( | ) | const |
Transpose.
在文件 Tensor.cpp 第 528 行定义.
引用了 dequantized(), ensureEager(), f, isQuantized(), order, permute(), t , 以及 Tensor().
友元及相关函数文档
◆ CompiledFunction
|
friend |
◆ Func
◆ Graph
◆ TF
类成员变量说明
◆ kMaxRank
|
staticconstexpr |
被这些函数引用 eve::tensor::TF::argmax(), eve::tensor::kernels::binaryOp(), eve::tensor::kernels::broadcastShape(), eve::tensor::TF::cast(), eve::tensor::TF::embedding(), eve::tensor::Func::emitArgMax(), eve::tensor::Func::emitBinary(), eve::tensor::Func::emitConcat(), eve::tensor::Func::emitEmbedding(), eve::tensor::Func::emitPermute(), eve::tensor::Func::emitReduce(), eve::tensor::Func::emitSlice(), eve::tensor::wgsl_detail::genPermute(), eve::tensor::glsl_detail::genPermute(), eve::tensor::TF::layernorm(), eve::tensor::TF::layernormWB(), eve::tensor::TF::logSoftmax(), makeSymbolic(), eve::tensor::kernels::permute(), permute(), eve::tensor::TF::rmsnorm(), eve::tensor::TF::rmsnormW(), eve::tensor::TF::slice(), eve::tensor::TF::softmax() , 以及 eve::tensor::TF::where().
该类的文档由以下文件生成:
- src/modules/tensor/Tensor.h
- src/modules/tensor/Tensor.cpp