Sub-issue of #984.
skainet-test-groundtruth's OperationExecutor already dispatches ~25 op names to
SKaiNET's TensorOps (matmul, transpose, relu, leakyRelu, elu, sigmoid, silu, gelu,
softmax, logSoftmax, maxpool2d, avgpool2d, sum, mean, variance, squeeze, unsqueeze,
conv1d, ...) — but skainet-ground-truth's Python side currently only produces tagged
op_type fixtures for add, subtract, conv2d, flatten. Most of the dispatch
logic is untested by anything real today.
Task
Add new TS-XXX/UC-YYY.py test suites in skainet-ground-truth, one (or a few) per
currently-unfixtured op, following the existing @Executable(description, op_type=..., op_params={...}) pattern (see TS-001 for the op_params convention — every
non-default PyTorch argument needs to be passed via op_params too, or it can't be
reproduced on the Kotlin side, see CONTRACT.md).
Suggested priority order (cheapest to verify first): matmul, relu, sigmoid,
softmax (all pure elementwise/matrix, easy to eyeball), then maxpool2d/avgpool2d
(need real op_params), then conv1d/transpose/reductions.
Each new suite should be run against skainet-test-groundtruth locally
(./gradlew generateGroundTruth jvmTest) before merging, to confirm SKaiNET's
implementation actually matches — this issue is explicitly about testing existing
OperationExecutor coverage, not implementing new SKaiNET ops.
Sub-issue of #984.
skainet-test-groundtruth'sOperationExecutoralready dispatches ~25 op names toSKaiNET's
TensorOps(matmul, transpose, relu, leakyRelu, elu, sigmoid, silu, gelu,softmax, logSoftmax, maxpool2d, avgpool2d, sum, mean, variance, squeeze, unsqueeze,
conv1d, ...) — but
skainet-ground-truth's Python side currently only produces taggedop_typefixtures foradd,subtract,conv2d,flatten. Most of the dispatchlogic is untested by anything real today.
Task
Add new
TS-XXX/UC-YYY.pytest suites inskainet-ground-truth, one (or a few) percurrently-unfixtured op, following the existing
@Executable(description, op_type=..., op_params={...})pattern (seeTS-001for theop_paramsconvention — everynon-default PyTorch argument needs to be passed via
op_paramstoo, or it can't bereproduced on the Kotlin side, see
CONTRACT.md).Suggested priority order (cheapest to verify first):
matmul,relu,sigmoid,softmax(all pure elementwise/matrix, easy to eyeball), thenmaxpool2d/avgpool2d(need real
op_params), thenconv1d/transpose/reductions.Each new suite should be run against
skainet-test-groundtruthlocally(
./gradlew generateGroundTruth jvmTest) before merging, to confirm SKaiNET'simplementation actually matches — this issue is explicitly about testing existing
OperationExecutorcoverage, not implementing new SKaiNET ops.