Class CpuBackend
java.lang.Object
io.github.kirstenali.deepj.tensor.cpu.CpuBackend
- All Implemented Interfaces:
TensorBackend
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadamWUpdate(Tensor w, Tensor g, Tensor mt, Tensor vt, double lr, double beta1, double beta2, double eps, double weightDecay, double bc1, double bc2) In-place AdamW update.addBroadcastCols(Tensor a, Tensor cv) addBroadcastRows(Tensor a, Tensor rv) voidaddInPlace(Tensor a, Tensor b) addRowVector(Tensor a, Tensor rv) voidaddScalarInPlace(Tensor a, double s) causalMask(int size) crossEntropyGradient(Tensor logits, int[] targets) doublecrossEntropyLoss(Tensor logits, int[] targets) divideBroadcastCols(Tensor a, Tensor cv) voiddivideInPlace(Tensor a, Tensor b) divideScalar(Tensor a, double s) voiddivideScalarInPlace(Tensor a, double s) voidexpInPlace(Tensor a) double[]geluBackward(Tensor input, Tensor gradOutput) voiddoublelayerNormBackward(Tensor dXHat, Tensor xHat, Tensor std, int dim) LayerNorm backward through normalization (given dXHat, xHat, std).voidlogInPlace(Tensor a) multiplyBroadcastCols(Tensor a, Tensor cv) multiplyBroadcastRows(Tensor a, Tensor rv) voidmultiplyInPlace(Tensor a, Tensor b) multiplyScalar(Tensor a, double s) voidmultiplyScalarInPlace(Tensor a, double s) voidnegInPlace(Tensor a) ones(int rows, int cols) voidreluBackward(Tensor input, Tensor gradOutput) voidsampleRows(Tensor t, int n, Random rnd) Sample random rows from t.voidscatterAddRows(Tensor target, int[] indices, Tensor grad) Scatter-add: target.data[indices[i]] += grad.data[i] (for embedding backward).voidvoidvoidGather rows by index (for embedding lookup).softmaxBackward(Tensor gradOutput, Tensor softmaxOut) softmaxRows(Tensor logits) voidsubtractBroadcastCols(Tensor a, Tensor cv) voidsubtractInPlace(Tensor a, Tensor b) doubledoublevoidunflattenToTensor(double[] flat, int rows, int cols) zeros(int rows, int cols) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.github.kirstenali.deepj.tensor.TensorBackend
materializeTensor, releaseResources
-
Constructor Details
-
CpuBackend
public CpuBackend()
-
-
Method Details
-
zeros
- Specified by:
zerosin interfaceTensorBackend
-
ones
- Specified by:
onesin interfaceTensorBackend
-
random
- Specified by:
randomin interfaceTensorBackend
-
causalMask
- Specified by:
causalMaskin interfaceTensorBackend
-
unflattenToTensor
- Specified by:
unflattenToTensorin interfaceTensorBackend
-
flattenTensor
- Specified by:
flattenTensorin interfaceTensorBackend
-
matmul
- Specified by:
matmulin interfaceTensorBackend
-
add
- Specified by:
addin interfaceTensorBackend
-
subtract
- Specified by:
subtractin interfaceTensorBackend
-
multiply
- Specified by:
multiplyin interfaceTensorBackend
-
divide
- Specified by:
dividein interfaceTensorBackend
-
addRowVector
- Specified by:
addRowVectorin interfaceTensorBackend
-
addBroadcastRows
- Specified by:
addBroadcastRowsin interfaceTensorBackend
-
multiplyBroadcastRows
- Specified by:
multiplyBroadcastRowsin interfaceTensorBackend
-
addBroadcastCols
- Specified by:
addBroadcastColsin interfaceTensorBackend
-
subtractBroadcastCols
- Specified by:
subtractBroadcastColsin interfaceTensorBackend
-
multiplyBroadcastCols
- Specified by:
multiplyBroadcastColsin interfaceTensorBackend
-
divideBroadcastCols
- Specified by:
divideBroadcastColsin interfaceTensorBackend
-
multiplyScalar
- Specified by:
multiplyScalarin interfaceTensorBackend
-
addScalar
- Specified by:
addScalarin interfaceTensorBackend
-
divideScalar
- Specified by:
divideScalarin interfaceTensorBackend
-
sumRows
- Specified by:
sumRowsin interfaceTensorBackend
-
sumAlongRows
- Specified by:
sumAlongRowsin interfaceTensorBackend
-
sumAlongCols
- Specified by:
sumAlongColsin interfaceTensorBackend
-
meanAlongRows
- Specified by:
meanAlongRowsin interfaceTensorBackend
-
varianceAlongRows
- Specified by:
varianceAlongRowsin interfaceTensorBackend
-
maxAlongRows
- Specified by:
maxAlongRowsin interfaceTensorBackend
-
sum
- Specified by:
sumin interfaceTensorBackend
-
sumAbs
- Specified by:
sumAbsin interfaceTensorBackend
-
transpose
- Specified by:
transposein interfaceTensorBackend
-
clamp
- Specified by:
clampin interfaceTensorBackend
-
sqrt
- Specified by:
sqrtin interfaceTensorBackend
-
pow
- Specified by:
powin interfaceTensorBackend
-
neg
- Specified by:
negin interfaceTensorBackend
-
exp
- Specified by:
expin interfaceTensorBackend
-
log
- Specified by:
login interfaceTensorBackend
-
tanh
- Specified by:
tanhin interfaceTensorBackend
-
sigmoid
- Specified by:
sigmoidin interfaceTensorBackend
-
relu
- Specified by:
reluin interfaceTensorBackend
-
gelu
- Specified by:
geluin interfaceTensorBackend
-
reluBackward
- Specified by:
reluBackwardin interfaceTensorBackend
-
geluBackward
- Specified by:
geluBackwardin interfaceTensorBackend
-
softmaxRows
- Specified by:
softmaxRowsin interfaceTensorBackend
-
softmaxBackward
- Specified by:
softmaxBackwardin interfaceTensorBackend
-
crossEntropyLoss
- Specified by:
crossEntropyLossin interfaceTensorBackend
-
crossEntropyGradient
- Specified by:
crossEntropyGradientin interfaceTensorBackend
-
adamWUpdate
public void adamWUpdate(Tensor w, Tensor g, Tensor mt, Tensor vt, double lr, double beta1, double beta2, double eps, double weightDecay, double bc1, double bc2) Description copied from interface:TensorBackendIn-place AdamW update. Mutates w, mt, vt.- Specified by:
adamWUpdatein interfaceTensorBackend
-
layerNormBackward
Description copied from interface:TensorBackendLayerNorm backward through normalization (given dXHat, xHat, std).- Specified by:
layerNormBackwardin interfaceTensorBackend
-
get
- Specified by:
getin interfaceTensorBackend
-
set
- Specified by:
setin interfaceTensorBackend
-
getRow
- Specified by:
getRowin interfaceTensorBackend
-
setRow
- Specified by:
setRowin interfaceTensorBackend
-
sliceRows
Description copied from interface:TensorBackendGather rows by index (for embedding lookup).- Specified by:
sliceRowsin interfaceTensorBackend
-
scatterAddRows
Description copied from interface:TensorBackendScatter-add: target.data[indices[i]] += grad.data[i] (for embedding backward).- Specified by:
scatterAddRowsin interfaceTensorBackend
-
sampleRows
Description copied from interface:TensorBackendSample random rows from t.- Specified by:
sampleRowsin interfaceTensorBackend
-
addInPlace
- Specified by:
addInPlacein interfaceTensorBackend
-
subtractInPlace
- Specified by:
subtractInPlacein interfaceTensorBackend
-
multiplyInPlace
- Specified by:
multiplyInPlacein interfaceTensorBackend
-
divideInPlace
- Specified by:
divideInPlacein interfaceTensorBackend
-
multiplyScalarInPlace
- Specified by:
multiplyScalarInPlacein interfaceTensorBackend
-
addScalarInPlace
- Specified by:
addScalarInPlacein interfaceTensorBackend
-
divideScalarInPlace
- Specified by:
divideScalarInPlacein interfaceTensorBackend
-
sqrtInPlace
- Specified by:
sqrtInPlacein interfaceTensorBackend
-
negInPlace
- Specified by:
negInPlacein interfaceTensorBackend
-
expInPlace
- Specified by:
expInPlacein interfaceTensorBackend
-
logInPlace
- Specified by:
logInPlacein interfaceTensorBackend
-
reluInPlace
- Specified by:
reluInPlacein interfaceTensorBackend
-
geluInPlace
- Specified by:
geluInPlacein interfaceTensorBackend
-
tanhInPlace
- Specified by:
tanhInPlacein interfaceTensorBackend
-
sigmoidInPlace
- Specified by:
sigmoidInPlacein interfaceTensorBackend
-
print
- Specified by:
printin interfaceTensorBackend
-