Docs / jax4j-core / com.nablatensor.jax4j.backend.cpu

final class

CpuBackend

Always-available CPU backend. Kernels are simple fused Java loops today; later phases replace them with jdk.incubator.vector SIMD and source-generated fused kernels for parity with the GPU fusion path.

Methods

String name()
DeviceType deviceType()
boolean isAvailable()
int priority()
DeviceBuffer upload(float[] data, Shape shape, DType dtype, Device device)
float[] download(DeviceBuffer buffer)
DeviceBuffer binary(Op op, DeviceBuffer a, DeviceBuffer b)
DeviceBuffer scalar(Op op, DeviceBuffer a, double value)
DeviceBuffer unary(Op op, DeviceBuffer a)
DeviceBuffer transpose(DeviceBuffer a)
DeviceBuffer matmul(DeviceBuffer a, DeviceBuffer b)
DeviceBuffer batchedMatmul(DeviceBuffer a, DeviceBuffer b)
DeviceBuffer reduceSum(DeviceBuffer a)
DeviceBuffer reduceMax(DeviceBuffer a)
DeviceBuffer sumAxis0(DeviceBuffer a)
DeviceBuffer sumAxis(DeviceBuffer a, int axis, boolean keepDims)
DeviceBuffer maxAxis(DeviceBuffer a, int axis, boolean keepDims)
DeviceBuffer argMaxAxis(DeviceBuffer a, int axis)
DeviceBuffer maxAxisBackward(DeviceBuffer upstream, DeviceBuffer input, int axis)
DeviceBuffer reshape(DeviceBuffer a, Shape target)
DeviceBuffer broadcastTo(DeviceBuffer a, Shape target)
DeviceBuffer conv2d(DeviceBuffer x, DeviceBuffer w, ConvSpec spec)
DeviceBuffer conv2dGradInput(DeviceBuffer upstream, DeviceBuffer w, ConvSpec spec)
DeviceBuffer conv2dGradWeight(DeviceBuffer x, DeviceBuffer upstream, ConvSpec spec)
DeviceBuffer reluBackward(DeviceBuffer upstream, DeviceBuffer input)
DeviceBuffer fused(Expr expr, DeviceBuffer[] inputs)
Set<QuantType> supportedQuantTypes()
DeviceBuffer uploadQuantized(MemorySegment blocks, QuantType type, Shape logicalShape, Device device)
DeviceBuffer quantMatvec(DeviceBuffer weights, DeviceBuffer x)
DeviceBuffer quantMatvecAdd(DeviceBuffer weights, DeviceBuffer x, DeviceBuffer add)
DeviceBuffer quantGatherRow(DeviceBuffer weights, int row)