vortex_torch.cache.elementwise_binary¶
Classes
|
Affine combination \(\alpha x + \beta y\) (an |
|
Pointwise binary op over two cache blocks (cache side). |
|
Elementwise maximum (an |
|
Elementwise minimum (an |
|
Elementwise product (an |
- class Elementwise_Binary(alpha=1.0, beta=1.0)[source]¶
Bases:
vOpPointwise binary op over two cache blocks (cache side).
- Math:
For \(X, Y \in \mathbb{R}^{B\times N\times D}\) and a scalar function \(g\) fixed by the subclass (max / min / affine / product / comparison mask):
\[Z_{b,n,d} = g(X_{b,n,d},\, Y_{b,n,d};\, \alpha, \beta).\]NandDbroadcast when one operand’s extent is1.- __init__:
Elementwise_Binary(alpha=1.0, beta=1.0)— scalars consumed only by the ops that need them (e.g.Add); abstract, pick a concrete subclass.- __call__:
z = op(x, y, output, loc=loc, ctx=ctx)—x[B, N_x, D_x],y[B, N_y, D_y]→[B, max(N_x,N_y), max(D_x,D_y)].PAGEDiff aPAGEDoutputis supplied, elseRAGGED.- Note:
subclasses —
Maximum,Minimum,Add,Multiply, and the comparison masksWhereEqual,WhereNotEqual,WhereGreater,WhereGreaterEqual,WhereLess,WhereLessEqual.- Parameters:
- class Maximum(alpha=1.0, beta=1.0)[source]¶
Bases:
Elementwise_BinaryElementwise maximum (an
Elementwise_Binary).
- class Minimum(alpha=1.0, beta=1.0)[source]¶
Bases:
Elementwise_BinaryElementwise minimum (an
Elementwise_Binary).
- class Add(alpha=1.0, beta=1.0)[source]¶
Bases:
Elementwise_BinaryAffine combination \(\alpha x + \beta y\) (an
Elementwise_Binary).
- class Multiply(alpha=1.0, beta=1.0)[source]¶
Bases:
Elementwise_BinaryElementwise product (an
Elementwise_Binary).
- class WhereEqual[source]¶
Bases:
Elementwise_BinaryComparison mask \(x = y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} = Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereEqual()— no arguments.- Note:
additive mask for score-space gating.
- class WhereNotEqual[source]¶
Bases:
Elementwise_BinaryComparison mask \(x \ne y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} \ne Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereNotEqual()— no arguments.
- class WhereGreater[source]¶
Bases:
Elementwise_BinaryComparison mask \(x > y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} > Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereGreater()— no arguments.
- class WhereGreaterEqual[source]¶
Bases:
Elementwise_BinaryComparison mask \(x \ge y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} \ge Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereGreaterEqual()— no arguments.
- class WhereLess[source]¶
Bases:
Elementwise_BinaryComparison mask \(x < y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} < Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereLess()— no arguments.
- class WhereLessEqual[source]¶
Bases:
Elementwise_BinaryComparison mask \(x \le y\) (an
Elementwise_Binary).- Math:
- \[\begin{split}Z_{b,n,d} = \begin{cases} 0, & X_{b,n,d} \le Y_{b,n,d}, \\ -\infty, & \text{otherwise}. \end{cases}\end{split}\]
- __init__:
WhereLessEqual()— no arguments.