Class ComputeGraph
java.lang.Object
io.github.kirstenali.deepj.tensor.ComputeGraph
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidassignToDevice(Tensor target, Tensor source) voidbindTensorToBuffer(Tensor t, GpuBuffer buf) castToDevice(Tensor input, DType dtype) copyToDevice(Tensor source) createOutputLike(GpuBuffer buf, Tensor source) Shares only immutable canonical geometry, never storage, gradients or caller-owned arrays.createOutputTensor(GpuBuffer buf, int... shape) Physical shared storage only; logical ND kernels must supply their own layouts.voidflush()booleanisEmpty()voidlayoutAdamW(Tensor weight, Tensor gradient, Tensor first, Tensor second, float lr, float beta1, float beta2, float epsilon, float decay, float bc1, float bc2) layoutBinary(Tensor left, Tensor right, int operation) voidlayoutBinaryInto(Tensor target, Tensor operand, int operation) layoutCausal(Tensor input, int length, float scale, int mode) layoutCrossEntropy(Tensor logits, int[] targets, boolean[] mask, int mode) voidlayoutIndexAdd(Tensor target, int axis, int[] indices, Tensor updates) layoutIndexGradient(Tensor gradient, int[] shape, int axis, int[] indices) layoutIndexSelect(Tensor input, int axis, int[] indices) layoutMatmul(Tensor left, Tensor right) layoutMaximumGradient(Tensor input, Tensor maximum, Tensor gradient, int[] axes, boolean keep) layoutNormalizationBackward(Tensor gradient, Tensor normalized, Tensor denominator, Tensor gamma, boolean centered) layoutNormalize(Tensor input, Tensor gamma, Tensor beta, float epsilon, boolean centered) layoutReduction(Tensor input, int[] axes, boolean keep, int operation, int correction) layoutRotary(Tensor input, Tensor cosine, Tensor sine, int length, boolean inverse) layoutSliceGradient(Tensor gradient, int[] dimensions, int axis, int start, int step) layoutSoftmax(Tensor input, int axis) layoutSwiGluBackward(Tensor gradient, Tensor gate, Tensor up) layoutTotal(Tensor input, int operation) layoutUnary(Tensor input, int operation, float first, float second) voidlayoutUnaryInto(Tensor target, int operation, float scalar) Zeros that stay unallocated until first use; a device zero-fill is queued only when a kernel consumes them.voidmarkUpdated(Tensor tensor) voidnewOutputBuffer(int rows, int cols) newOutputBuffer(int rows, int cols, DType dtype) newZeroBuffer(int rows, int cols) Queues explicit zero initialization before any operations consume this buffer.newZeroBuffer(int rows, int cols, DType dtype) voidrecordAdamWUpdate(GpuBuffer w, GpuBuffer g, GpuBuffer mt, GpuBuffer vt, float lr, float beta1, float beta2, float eps, float weightDecay, float bc1, float bc2, int n) voidrecordBatchedMatmul(GpuBuffer left, GpuBuffer right, GpuBuffer out, int batches, int leftRows, int leftCols, int rightRows, int rightCols, boolean transposeLeft, boolean transposeRight) voidrecordBinary(int opCode, GpuBuffer a, GpuBuffer b, GpuBuffer out) voidrecordCausalAttention(GpuBuffer query, GpuBuffer key, GpuBuffer value, GpuBuffer output, GpuBuffer normalization, int heads, float scale) voidrecordCausalAttention(GpuBuffer query, GpuBuffer key, GpuBuffer value, GpuBuffer output, GpuBuffer normalization, int queryHeads, int keyValueHeads, float scale) voidrecordCausalAttentionBackward(GpuBuffer query, GpuBuffer key, GpuBuffer value, GpuBuffer output, GpuBuffer gradient, GpuBuffer normalization, GpuBuffer delta, GpuBuffer dq, GpuBuffer dk, GpuBuffer dv, int heads, float scale) voidrecordCausalAttentionBackward(GpuBuffer query, GpuBuffer key, GpuBuffer value, GpuBuffer output, GpuBuffer gradient, GpuBuffer normalization, GpuBuffer delta, GpuBuffer dq, GpuBuffer dk, GpuBuffer dv, int queryHeads, int keyValueHeads, float scale) voidrecordCausalMask(GpuBuffer input, GpuBuffer output, int rows, int sequenceLength) voidrecordCausalSoftmax(GpuBuffer input, GpuBuffer output, int rows, int sequenceLength, float scale) voidrecordClamp(GpuBuffer in, GpuBuffer out, float min, float max) voidrecordColBroadcast(int opCode, GpuBuffer a, GpuBuffer colVec, GpuBuffer out, int rows, int cols) voidrecordCrossEntropy(GpuBuffer logits, GpuBuffer targets, GpuBuffer losses, GpuBuffer gradient, int rows, int cols) voidrecordCrossEntropyGradient(GpuBuffer logits, GpuBuffer targets, GpuBuffer out, int rows, int cols) voidrecordCrossEntropyLoss(GpuBuffer logits, GpuBuffer targets, GpuBuffer out, int rows, int cols) voidrecordGatherRows(GpuBuffer input, GpuBuffer indices, GpuBuffer output, int inputRows, int columns, int outputRows) voidrecordHeadCacheWrite(GpuBuffer update, GpuBuffer cache, int heads, int offset) voidrecordHeadCacheWrite(GpuBuffer update, GpuBuffer cache, int heads, int length, int capacity, int width, int offset) voidrecordHeadPermutation(int opCode, GpuBuffer input, GpuBuffer output, int sequenceLength, int heads, int headDim, int modelWidth) voidrecordHeadPrefixMatmul(GpuBuffer left, GpuBuffer cache, GpuBuffer output, int heads, int length, boolean transposeCache) voidrecordHeadPrefixMatmul(GpuBuffer left, GpuBuffer cache, GpuBuffer output, int heads, int length, boolean transposeCache, int rows, int columns, int cacheWidth) voidrecordLayerNormBackward(GpuBuffer dXHat, GpuBuffer xHat, GpuBuffer std, GpuBuffer out, int rows, int cols) voidrecordMatmul(GpuBuffer a, GpuBuffer b, GpuBuffer out, int m, int n, int k) voidrecordMultiplyScalar(GpuBuffer in, GpuBuffer out, float scalar) voidvoidrecordReduction(int opCode, GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordRmsNorm(GpuBuffer input, GpuBuffer gamma, GpuBuffer output, GpuBuffer normalized, GpuBuffer rms, int rows, int cols, float epsilon) voidrecordRmsNormBackward(GpuBuffer gradient, GpuBuffer normalized, GpuBuffer rms, GpuBuffer gamma, GpuBuffer output, int rows, int cols) voidrecordRotary(GpuBuffer input, GpuBuffer cosine, GpuBuffer sine, GpuBuffer output, int rows, int sequenceLength, int headDim, boolean inverse) voidrecordRowBroadcast(int opCode, GpuBuffer a, GpuBuffer rowVec, GpuBuffer out, int rows, int cols) voidrecordScalarUnary(int opCode, GpuBuffer in, GpuBuffer out, float scalar) voidrecordScaledSoftmaxBackward(GpuBuffer gradient, GpuBuffer probabilities, GpuBuffer output, float scale) voidrecordScatterAddRows(GpuBuffer target, GpuBuffer indices, GpuBuffer grad, int targetRows, int targetCols, int nIndices) voidrecordScatterAddRowsAtomic(GpuBuffer target, GpuBuffer indices, GpuBuffer grad, int targetRows, int targetCols, int nIndices) voidrecordSoftmaxBackward(GpuBuffer gradOutput, GpuBuffer softmaxOut, GpuBuffer out, int rows, int cols) voidrecordSoftmaxRows(GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordStorageCopy(GpuBuffer input, GpuBuffer output, int source, int target, int count) voidrecordSumAbs(GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordSumScalar(GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordSumSquares(GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordSumSquaresScalar(GpuBuffer input, GpuBuffer total) voidrecordSwiGlu(GpuBuffer gate, GpuBuffer up, GpuBuffer fused) voidrecordSwiGluBackward(GpuBuffer gradient, GpuBuffer gate, GpuBuffer up, GpuBuffer gateGradient, GpuBuffer upGradient) voidrecordTranspose(GpuBuffer in, GpuBuffer out, int rows, int cols) voidrecordUnary(int opCode, GpuBuffer in, GpuBuffer out) voidvoidtransferLayout(Tensor input, DType dtype) zeroToDevice(DType dtype, int... shape)
-
Field Details
-
OP_ADD
public static final int OP_ADD- See Also:
-
OP_SUBTRACT
public static final int OP_SUBTRACT- See Also:
-
OP_MULTIPLY
public static final int OP_MULTIPLY- See Also:
-
OP_DIVIDE
public static final int OP_DIVIDE- See Also:
-
OP_MATMUL
public static final int OP_MATMUL- See Also:
-
OP_MULTIPLY_SCALAR
public static final int OP_MULTIPLY_SCALAR- See Also:
-
OP_SQRT
public static final int OP_SQRT- See Also:
-
OP_NEG
public static final int OP_NEG- See Also:
-
OP_EXP
public static final int OP_EXP- See Also:
-
OP_LOG
public static final int OP_LOG- See Also:
-
OP_TANH
public static final int OP_TANH- See Also:
-
OP_SIGMOID
public static final int OP_SIGMOID- See Also:
-
OP_RELU
public static final int OP_RELU- See Also:
-
OP_RELU_BACKWARD
public static final int OP_RELU_BACKWARD- See Also:
-
OP_GELU
public static final int OP_GELU- See Also:
-
OP_GELU_BACKWARD
public static final int OP_GELU_BACKWARD- See Also:
-
OP_SOFTMAX_ROWS
public static final int OP_SOFTMAX_ROWS- See Also:
-
OP_SOFTMAX_BACKWARD
public static final int OP_SOFTMAX_BACKWARD- See Also:
-
OP_LAYERNORM_BACKWARD
public static final int OP_LAYERNORM_BACKWARD- See Also:
-
OP_ADAMW_UPDATE
public static final int OP_ADAMW_UPDATE- See Also:
-
OP_ADD_SCALAR
public static final int OP_ADD_SCALAR- See Also:
-
OP_DIVIDE_SCALAR
public static final int OP_DIVIDE_SCALAR- See Also:
-
OP_TRANSPOSE
public static final int OP_TRANSPOSE- See Also:
-
OP_ADD_ROW_VECTOR
public static final int OP_ADD_ROW_VECTOR- See Also:
-
OP_ADD_BROADCAST_COLS
public static final int OP_ADD_BROADCAST_COLS- See Also:
-
OP_SUBTRACT_BROADCAST_COLS
public static final int OP_SUBTRACT_BROADCAST_COLS- See Also:
-
OP_DIVIDE_BROADCAST_COLS
public static final int OP_DIVIDE_BROADCAST_COLS- See Also:
-
OP_MULTIPLY_BROADCAST_ROWS
public static final int OP_MULTIPLY_BROADCAST_ROWS- See Also:
-
OP_SUM_ROWS
public static final int OP_SUM_ROWS- See Also:
-
OP_MEAN_ALONG_ROWS
public static final int OP_MEAN_ALONG_ROWS- See Also:
-
OP_VARIANCE_ALONG_ROWS
public static final int OP_VARIANCE_ALONG_ROWS- See Also:
-
OP_MULTIPLY_BROADCAST_COLS
public static final int OP_MULTIPLY_BROADCAST_COLS- See Also:
-
OP_SUM_ALONG_ROWS
public static final int OP_SUM_ALONG_ROWS- See Also:
-
OP_MAX_ALONG_ROWS
public static final int OP_MAX_ALONG_ROWS- See Also:
-
OP_CLAMP
public static final int OP_CLAMP- See Also:
-
OP_POW
public static final int OP_POW- See Also:
-
OP_SCATTER_ADD_ROWS
public static final int OP_SCATTER_ADD_ROWS- See Also:
-
OP_SUM_ABS
public static final int OP_SUM_ABS- See Also:
-
OP_CROSS_ENTROPY_LOSS
public static final int OP_CROSS_ENTROPY_LOSS- See Also:
-
OP_CROSS_ENTROPY_GRADIENT
public static final int OP_CROSS_ENTROPY_GRADIENT- See Also:
-
OP_SUM_SCALAR
public static final int OP_SUM_SCALAR- See Also:
-
OP_SCATTER_ADD_ROWS_ATOMIC
public static final int OP_SCATTER_ADD_ROWS_ATOMIC- See Also:
-
OP_SUM_SQUARES
public static final int OP_SUM_SQUARES- See Also:
-
OP_BATCHED_MATMUL
public static final int OP_BATCHED_MATMUL- See Also:
-
OP_SPLIT_HEADS
public static final int OP_SPLIT_HEADS- See Also:
-
OP_MERGE_HEADS
public static final int OP_MERGE_HEADS- See Also:
-
OP_CAUSAL_MASK
public static final int OP_CAUSAL_MASK- See Also:
-
OP_ROTARY
public static final int OP_ROTARY- See Also:
-
OP_GATHER_ROWS
public static final int OP_GATHER_ROWS- See Also:
-
OP_CAUSAL_SOFTMAX
public static final int OP_CAUSAL_SOFTMAX- See Also:
-
OP_CROSS_ENTROPY_FUSED
public static final int OP_CROSS_ENTROPY_FUSED- See Also:
-
OP_SUM_SQUARES_SCALAR
public static final int OP_SUM_SQUARES_SCALAR- See Also:
-
OP_RMS_NORM
public static final int OP_RMS_NORM- See Also:
-
OP_RMS_NORM_BACKWARD
public static final int OP_RMS_NORM_BACKWARD- See Also:
-
OP_SWIGLU
public static final int OP_SWIGLU- See Also:
-
OP_SWIGLU_BACKWARD
public static final int OP_SWIGLU_BACKWARD- See Also:
-
OP_SCALED_SOFTMAX_BACKWARD
public static final int OP_SCALED_SOFTMAX_BACKWARD- See Also:
-
OP_TILED_CAUSAL_ATTENTION
public static final int OP_TILED_CAUSAL_ATTENTION- See Also:
-
OP_TILED_CAUSAL_ATTENTION_BACKWARD
public static final int OP_TILED_CAUSAL_ATTENTION_BACKWARD- See Also:
-
OP_HEAD_CACHE_WRITE
public static final int OP_HEAD_CACHE_WRITE- See Also:
-
OP_HEAD_PREFIX_MATMUL
public static final int OP_HEAD_PREFIX_MATMUL- See Also:
-
OP_STORAGE_COPY
public static final int OP_STORAGE_COPY- See Also:
-
OP_LAYOUT_TRANSFER
public static final int OP_LAYOUT_TRANSFER- See Also:
-
OP_LAYOUT_BINARY
public static final int OP_LAYOUT_BINARY- See Also:
-
OP_LAYOUT_UNARY
public static final int OP_LAYOUT_UNARY- See Also:
-
OP_LAYOUT_ASSIGN
public static final int OP_LAYOUT_ASSIGN- See Also:
-
OP_LAYOUT_REDUCE
public static final int OP_LAYOUT_REDUCE- See Also:
-
OP_LAYOUT_SOFTMAX
public static final int OP_LAYOUT_SOFTMAX- See Also:
-
OP_LAYOUT_MAXIMUM_BACKWARD
public static final int OP_LAYOUT_MAXIMUM_BACKWARD- See Also:
-
OP_LAYOUT_MATMUL
public static final int OP_LAYOUT_MATMUL- See Also:
-
OP_LAYOUT_INDEX_SELECT
public static final int OP_LAYOUT_INDEX_SELECT- See Also:
-
OP_LAYOUT_INDEX_ADD
public static final int OP_LAYOUT_INDEX_ADD- See Also:
-
OP_LAYOUT_NORMALIZE
public static final int OP_LAYOUT_NORMALIZE- See Also:
-
OP_LAYOUT_NORMALIZATION_BACKWARD
public static final int OP_LAYOUT_NORMALIZATION_BACKWARD- See Also:
-
OP_LAYOUT_SWIGLU_BACKWARD
public static final int OP_LAYOUT_SWIGLU_BACKWARD- See Also:
-
OP_LAYOUT_ADAMW
public static final int OP_LAYOUT_ADAMW- See Also:
-
OP_LAYOUT_CROSS_ENTROPY
public static final int OP_LAYOUT_CROSS_ENTROPY- See Also:
-
OP_LAYOUT_CAUSAL
public static final int OP_LAYOUT_CAUSAL- See Also:
-
OP_LAYOUT_ROTARY
public static final int OP_LAYOUT_ROTARY- See Also:
-
-
Constructor Details
-
ComputeGraph
-
-
Method Details
-
isEmpty
public boolean isEmpty() -
flush
public void flush() -
materialize
-
releaseAll
public void releaseAll() -
releaseTemporary
public void releaseTemporary() -
recordHeadCacheWrite
-
recordHeadCacheWrite
-
recordHeadPrefixMatmul
-
recordHeadPrefixMatmul
-
recordCausalAttention
-
recordCausalAttention
-
recordCausalAttentionBackward
-
recordCausalAttentionBackward
-
recordCrossEntropy
-
recordRmsNorm
-
recordRmsNormBackward
-
recordSwiGlu
-
recordSwiGluBackward
-
recordSumScalar
-
recordTranspose
-
recordRowBroadcast
-
recordColBroadcast
-
recordReduction
-
recordSoftmaxRows
-
recordSoftmaxBackward
-
recordScaledSoftmaxBackward
-
recordLayerNormBackward
-
recordAdamWUpdate
-
recordStorageCopy
-
recordBinary
-
recordMatmul
-
recordBatchedMatmul
-
recordHeadPermutation
-
recordCausalMask
-
recordCausalSoftmax
-
recordGatherRows
-
recordRotary
-
recordUnary
-
recordScalarUnary
-
recordPow
-
recordClamp
-
recordScatterAddRows
-
recordScatterAddRowsAtomic
-
recordSumAbs
-
recordSumSquares
-
recordSumSquaresScalar
-
recordCrossEntropyLoss
-
recordCrossEntropyGradient
-
layoutCausal
-
layoutRotary
-
layoutCrossEntropy
public CrossEntropyResult layoutCrossEntropy(Tensor logits, int[] targets, boolean[] mask, int mode) -
layoutAdamW
-
layoutSwiGluBackward
-
layoutNormalize
public NormalizationResult layoutNormalize(Tensor input, Tensor gamma, Tensor beta, float epsilon, boolean centered) -
layoutNormalizationBackward
-
layoutIndexSelect
-
layoutIndexAdd
-
layoutIndexGradient
-
layoutSliceGradient
-
layoutMatmul
-
layoutMaximumGradient
-
layoutReduction
-
layoutTotal
-
layoutSoftmax
-
recordMultiplyScalar
-
layoutBinary
-
layoutUnary
-
assignToDevice
-
layoutBinaryInto
-
layoutUnaryInto
-
transferLayout
-
zeroToDevice
-
lazyZeros
Zeros that stay unallocated until first use; a device zero-fill is queued only when a kernel consumes them. -
castToDevice
-
ensureGpuBuffer
-
ensureStorageBuffer
Physical shared storage only; logical ND kernels must supply their own layouts. -
newOutputBuffer
-
newOutputBuffer
-
newZeroBuffer
Queues explicit zero initialization before any operations consume this buffer. -
newZeroBuffer
-
createOutputTensor
-
createOutputTensor
-
createOutputLike
Shares only immutable canonical geometry, never storage, gradients or caller-owned arrays. -
copyToDevice
-
markUpdated
-
bindTensorToBuffer
-