Interface TensorBackend

All Known Subinterfaces:
CausalAttentionBackend
All Known Implementing Classes:
CpuBackend, MetalBackend

public interface TensorBackend
  • Method Details

    • usesDeviceStorage

      default boolean usesDeviceStorage()
      Whether backend copies reside on a device rather than in ordinary host storage.
    • zeros

      default Tensor zeros(int rows, int columns)
      Backend-owned positive-zero storage; ordinary Tensor constructors stay CPU-backed.
    • zeros

      default Tensor zeros(DType dtype, int... shape)
    • copy

      default Tensor copy(Tensor source)
      Independent storage with the same float bits, without recording an autograd operation.
    • copyInto

      default void copyInto(Tensor target, Tensor source)
      Explicitly assigns logical values, casting to the destination's storage dtype.
    • view

      default Tensor view(Tensor input, int... shape)
    • unsqueeze

      default Tensor unsqueeze(Tensor input, int axis)
    • permute

      default Tensor permute(Tensor input, int... axes)
    • select

      default Tensor select(Tensor input, int axis, int index)
    • slice

      default Tensor slice(Tensor input, int axis, int start, int stop, int step)
    • expand

      default Tensor expand(Tensor input, int... shape)
    • reshape

      default Tensor reshape(Tensor input, int... shape)
    • cast

      default Tensor cast(Tensor input, DType dtype)
    • sumAxes

      default Tensor sumAxes(Tensor input, int[] axes, boolean keepDimensions)
    • meanAxes

      default Tensor meanAxes(Tensor input, int[] axes, boolean keepDimensions)
    • varianceAxes

      default Tensor varianceAxes(Tensor input, int[] axes, boolean keepDimensions, int correction)
    • maximumAxes

      default Tensor maximumAxes(Tensor input, int[] axes, boolean keepDimensions)
    • maximumAxesBackward

      default Tensor maximumAxesBackward(Tensor input, Tensor maximum, Tensor gradient, int[] axes, boolean keep)
    • sumToShape

      default Tensor sumToShape(Tensor input, int... shape)
    • sliceGradient

      default Tensor sliceGradient(Tensor gradient, int[] shape, int axis, int start, int step)
    • indexSelect

      default Tensor indexSelect(Tensor input, int axis, int[] indices)
    • indexAdd

      default void indexAdd(Tensor target, int axis, int[] indices, Tensor updates)
    • indexSelectGradient

      default Tensor indexSelectGradient(Tensor gradient, int[] shape, int axis, int[] indices)
    • softmaxAxis

      default Tensor softmaxAxis(Tensor input, int axis)
    • softmaxAxisBackward

      default Tensor softmaxAxisBackward(Tensor gradient, Tensor output, int axis)
    • matmul

      Tensor matmul(Tensor a, Tensor b)
    • writeHeadCache

      default void writeHeadCache(Tensor cache, Tensor update, int heads, int offset)
    • headPrefixMatmul

      default Tensor headPrefixMatmul(Tensor left, Tensor cache, int heads, int length, boolean transposeCache)
    • sliceRows

      default Tensor sliceRows(Tensor input, int[] rows)
    • splitHeads

      default Tensor splitHeads(Tensor input, int heads)
    • mergeHeads

      default Tensor mergeHeads(Tensor input, int heads)
    • batchedMatmul

      default Tensor batchedMatmul(Tensor left, Tensor right, int batches, boolean transposeLeft, boolean transposeRight)
    • causalMask

      default Tensor causalMask(Tensor input, int sequenceLength)
    • causalSoftmax

      default Tensor causalSoftmax(Tensor input, int sequenceLength, float scale)
    • rotary

      default Tensor rotary(Tensor input, Tensor cosine, Tensor sine, int sequenceLength, boolean inverse)
    • add

      Tensor add(Tensor a, Tensor b)
    • subtract

      Tensor subtract(Tensor a, Tensor b)
    • multiply

      Tensor multiply(Tensor a, Tensor b)
    • divide

      Tensor divide(Tensor a, Tensor b)
    • addRowVector

      Tensor addRowVector(Tensor a, Tensor rowVector)
    • addBroadcastCols

      Tensor addBroadcastCols(Tensor a, Tensor colVector)
    • divideBroadcastCols

      Tensor divideBroadcastCols(Tensor a, Tensor colVector)
    • subtractBroadcastCols

      Tensor subtractBroadcastCols(Tensor a, Tensor colVector)
    • multiplyBroadcastCols

      Tensor multiplyBroadcastCols(Tensor a, Tensor colVector)
    • addBroadcastRows

      Tensor addBroadcastRows(Tensor a, Tensor rowVector)
    • multiplyBroadcastRows

      Tensor multiplyBroadcastRows(Tensor a, Tensor rowVector)
    • multiplyScalar

      Tensor multiplyScalar(Tensor a, float scalar)
    • addScalar

      Tensor addScalar(Tensor a, float scalar)
    • divideScalar

      Tensor divideScalar(Tensor a, float scalar)
    • sumRows

      Tensor sumRows(Tensor a)
    • sumAlongRows

      Tensor sumAlongRows(Tensor a)
    • sumAlongCols

      Tensor sumAlongCols(Tensor a)
    • meanAlongRows

      Tensor meanAlongRows(Tensor a)
    • varianceAlongRows

      Tensor varianceAlongRows(Tensor a)
    • maxAlongRows

      Tensor maxAlongRows(Tensor a)
    • sum

      float sum(Tensor a)
    • sumAbs

      float sumAbs(Tensor a)
    • l2Norm

      default float l2Norm(List<Tensor> tensors)
    • transpose

      Tensor transpose(Tensor a)
    • clamp

      Tensor clamp(Tensor a, float min, float max)
    • sqrt

      Tensor sqrt(Tensor a)
    • pow

      Tensor pow(Tensor a, float exponent)
    • neg

      Tensor neg(Tensor a)
    • exp

      Tensor exp(Tensor a)
    • log

      Tensor log(Tensor a)
    • tanh

      Tensor tanh(Tensor a)
    • sigmoid

      Tensor sigmoid(Tensor a)
    • relu

      Tensor relu(Tensor a)
    • reluBackward

      Tensor reluBackward(Tensor input, Tensor gradOutput)
    • gelu

      Tensor gelu(Tensor a)
    • geluBackward

      Tensor geluBackward(Tensor input, Tensor gradOutput)
    • softmaxRows

      Tensor softmaxRows(Tensor logits)
    • softmaxBackward

      Tensor softmaxBackward(Tensor gradOutput, Tensor softmaxOut)
    • softmaxBackward

      default Tensor softmaxBackward(Tensor gradOutput, Tensor softmaxOut, float scale)
    • crossEntropyLoss

      float crossEntropyLoss(Tensor logits, int[] targets)
    • crossEntropyGradient

      Tensor crossEntropyGradient(Tensor logits, int[] targets)
    • crossEntropy

      default CrossEntropyResult crossEntropy(Tensor logits, int[] targets)
    • crossEntropyLoss

      float crossEntropyLoss(Tensor logits, int[] targets, boolean[] mask)
    • crossEntropyGradient

      Tensor crossEntropyGradient(Tensor logits, int[] targets, boolean[] mask)
    • crossEntropy

      default CrossEntropyResult crossEntropy(Tensor logits, int[] targets, boolean[] mask)
    • adamWUpdate

      void adamWUpdate(Tensor w, Tensor g, Tensor mt, Tensor vt, float lr, float beta1, float beta2, float eps, float weightDecay, float bc1, float bc2)
    • layerNormBackward

      Tensor layerNormBackward(Tensor dXHat, Tensor xHat, Tensor std, int dim)
    • normalize

      default NormalizationResult normalize(Tensor input, Tensor gamma, Tensor beta, float epsilon, boolean centered)
    • normalizationBackward

      default Tensor normalizationBackward(Tensor gradient, Tensor normalized, Tensor denominator, Tensor gamma, boolean centered)
    • rmsNorm

      default RmsNormResult rmsNorm(Tensor input, Tensor gamma, float epsilon)
    • rmsNormBackward

      default Tensor rmsNormBackward(Tensor gradient, Tensor normalized, Tensor rms, Tensor gamma)
    • swiGlu

      default Tensor swiGlu(Tensor gate, Tensor up)
    • swiGluBackward

      default SwiGluBackwardResult swiGluBackward(Tensor gradient, Tensor gate, Tensor up)
    • scatterAddRows

      void scatterAddRows(Tensor target, int[] indices, Tensor grad)
    • addInPlace

      void addInPlace(Tensor a, Tensor b)
    • subtractInPlace

      void subtractInPlace(Tensor a, Tensor b)
    • multiplyInPlace

      void multiplyInPlace(Tensor a, Tensor b)
    • divideInPlace

      void divideInPlace(Tensor a, Tensor b)
    • multiplyScalarInPlace

      void multiplyScalarInPlace(Tensor a, float s)
    • addScalarInPlace

      void addScalarInPlace(Tensor a, float s)
    • divideScalarInPlace

      void divideScalarInPlace(Tensor a, float s)
    • sqrtInPlace

      void sqrtInPlace(Tensor a)
    • negInPlace

      void negInPlace(Tensor a)
    • expInPlace

      void expInPlace(Tensor a)
    • logInPlace

      void logInPlace(Tensor a)
    • reluInPlace

      void reluInPlace(Tensor a)
    • geluInPlace

      void geluInPlace(Tensor a)
    • tanhInPlace

      void tanhInPlace(Tensor a)
    • sigmoidInPlace

      void sigmoidInPlace(Tensor a)
    • materializeTensor

      default void materializeTensor(Tensor t)
    • releaseTemporaryResources

      default void releaseTemporaryResources()
    • releaseResources

      default void releaseResources()