Class MetalBackend
java.lang.Object
io.github.kirstenali.deepj.tensor.metal.MetalBackend
- All Implemented Interfaces:
TensorBackend
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadamWUpdate(Tensor w, Tensor g, Tensor mt, Tensor vt, float lr, float beta1, float beta2, float eps, float weightDecay, float bc1, float bc2) In-place AdamW update.addBroadcastCols(Tensor a, Tensor v) addBroadcastRows(Tensor a, Tensor v) voidaddInPlace(Tensor a, Tensor b) addRowVector(Tensor a, Tensor v) voidaddScalarInPlace(Tensor a, float s) crossEntropyGradient(Tensor logits, int[] targets) floatcrossEntropyLoss(Tensor logits, int[] targets) divideBroadcastCols(Tensor a, Tensor v) voiddivideInPlace(Tensor a, Tensor b) divideScalar(Tensor a, float scalar) voiddivideScalarInPlace(Tensor a, float s) voidexpInPlace(Tensor a) geluBackward(Tensor input, Tensor gradOutput) voidstatic booleanlayerNormBackward(Tensor dXHat, Tensor xHat, Tensor std, int dim) LayerNorm backward through normalization (given dXHat, xHat, std).voidlogInPlace(Tensor a) voidMaterialize a tensor: flush any pending GPU computation and download the result to the tensor's CPU data[].voidmultiplyInPlace(Tensor a, Tensor b) multiplyScalar(Tensor a, float scalar) voidmultiplyScalarInPlace(Tensor a, float s) voidnegInPlace(Tensor a) voidRelease backend-owned resources (GPU buffers, native handles, etc.).reluBackward(Tensor input, Tensor gradOutput) voidvoidscatterAddRows(Tensor target, int[] indices, Tensor grad) voidsoftmaxBackward(Tensor gradOutput, Tensor softmaxOut) softmaxRows(Tensor logits) voidvoidsubtractInPlace(Tensor a, Tensor b) floatfloatvoid
-
Constructor Details
-
MetalBackend
public MetalBackend()
-
-
Method Details
-
isAvailable
public static boolean isAvailable() -
materializeTensor
Description copied from interface:TensorBackendMaterialize a tensor: flush any pending GPU computation and download the result to the tensor's CPU data[]. Default is a no-op (for CpuBackend).- Specified by:
materializeTensorin 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
-
addBroadcastCols
- Specified by:
addBroadcastColsin interfaceTensorBackend
-
divideBroadcastCols
- Specified by:
divideBroadcastColsin interfaceTensorBackend
-
subtractBroadcastCols
- Specified by:
subtractBroadcastColsin interfaceTensorBackend
-
multiplyBroadcastCols
- Specified by:
multiplyBroadcastColsin interfaceTensorBackend
-
addBroadcastRows
- Specified by:
addBroadcastRowsin interfaceTensorBackend
-
multiplyBroadcastRows
- Specified by:
multiplyBroadcastRowsin 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
-
pow
- Specified by:
powin interfaceTensorBackend
-
sqrt
- Specified by:
sqrtin 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
-
reluBackward
- Specified by:
reluBackwardin interfaceTensorBackend
-
gelu
- Specified by:
geluin interfaceTensorBackend
-
geluBackward
- Specified by:
geluBackwardin interfaceTensorBackend
-
softmaxRows
- Specified by:
softmaxRowsin interfaceTensorBackend
-
softmaxBackward
- Specified by:
softmaxBackwardin 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
-
crossEntropyGradient
- Specified by:
crossEntropyGradientin interfaceTensorBackend
-
crossEntropyLoss
- Specified by:
crossEntropyLossin interfaceTensorBackend
-
adamWUpdate
public void adamWUpdate(Tensor w, Tensor g, Tensor mt, Tensor vt, float lr, float beta1, float beta2, float eps, float weightDecay, float bc1, float 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
-
scatterAddRows
- Specified by:
scatterAddRowsin interfaceTensorBackend
-
releaseResources
public void releaseResources()Description copied from interface:TensorBackendRelease backend-owned resources (GPU buffers, native handles, etc.). Default is a no-op for backends without external resources.- Specified by:
releaseResourcesin interfaceTensorBackend
-