Top-Level Fields

Only the documented top-level keys are accepted. Unknown keys are reported by torchcts check-manifest.

Manifest fields declare backend support. PyTorch version compatibility comes from TorchCTS operator contracts and package metadata, not from the manifest.

manifest_version

Required. Manifest schema version.

1Current schema version.

device_name

Required. Backend target name.

autoLet TorchCTS detect or prompt for the backend.
cpucudampsxpuCommon in-tree runtime device names.
any device nameOpen-ended string for PrivateUse1 or project backends, such as npu, ocl, flagos, or webgpu.

capabilities

Required. Boolean feature claims. Every known capability key is listed below.

TrueThe backend claims the feature family.
FalseThe backend does not claim the feature family.
ieee754 regexSpecial case only for ieee754. Accepted values are True, False, a regex string, or a list of regex strings.

backend_import

Optional import hook used before backend detection.

NoneNo import hook.
"module.name"Import this Python module before probing the backend. Most out-of-tree PrivateUse1 backends need this.

supported_dtypes

Optional dtype claim map. Keys are PyTorch dtypes or dtype strings.

torch.float32: TrueClaim the dtype for matching cases.
torch.float32: FalseDo not claim the dtype.
torch.float16: "regex"Claim the dtype only for operator names that match the regex.

semantic_level

Optional default run depth. CLI level flags can override it for a run.

1Core primitive behavior.
2Normal operator correctness.
3Mainstream framework semantics such as mutation, aliasing, RNG, metadata, and generated variants.
4Broad production behavior including training and backend-family cases.
5Advanced numeric, layout, sparse, nested, and stride-sensitive behavior.
6Compiler, device API, allocator, quantization-adjacent, and low-level backend integration.
7Heavy workload and multi-device behavior.
8Release-depth stress and adversarial coverage.

device_count

Optional declared device count for multi-device tests.

positive integerMust be at least 1.

ieee754_seed, max_samples, max_samples_ieee754

Optional sample controls.

non-negative integerZero or greater. Boolean values are not accepted.

skip_ops

Optional list of operator names the backend explicitly does not claim.

["aten_name", ...]List of strings.

custom_test_dirs

Optional project-owned test directories.

["path", ...]List of strings. Relative paths are resolved from the manifest directory.

show_traceback

Optional traceback display preference.

TrueKeep tracebacks visible by default.
FalseUse normal compact reporting.

Capability Keys

Capability keys are finite. Unknown capability names fail manifest validation.

inferenceBasic inference execution.
trainingTraining workflows and training-adjacent tests.
serializationSave and load behavior.
rngRandom number generation behavior.
device_generatorDevice-local generator support.
rng_distributionsDistribution-specific RNG operators.
double_backwardSecond-order gradient behavior.
gradcheckGradient checking support.
gradient_checkpointingCheckpointed autograd paths.
autocastAutocast behavior.
fused_optimizerFused optimizer behavior.
dataloaderDataloader integration.
module_hooksModule hook behavior.
channels_lastChannels-last memory format behavior.
sparseSparse tensor behavior.
nestedNested tensor behavior.
named_tensorNamed tensor behavior.
foreachForeach operator behavior.
fp8FP8 dtype behavior.
quantized_container_plumbingQuantized container movement and plumbing.
native_quantizationNative PyTorch quantization paths.
custom_quantized_decodeCustom quantized container decoding. Requires decoder specs.
compiletorch.compile integration.
pinned_memoryPinned memory behavior.
streamsStream API behavior.
eventsEvent API behavior.
deterministicDeterministic execution controls.
guard_allocGuarded allocation behavior.
device_apiDevice module API behavior.
multi_deviceMulti-device behavior.
ieee754IEEE 754 edge behavior. May be narrowed by regex.

Hardware Fields

hardware.memory_model

Finite enum.

discreteDevice memory is separate from system memory.
unifiedDevice and CPU share a memory pool.

hardware.device_memory_gb

"auto"Detect device memory when possible.
[8, 8]Non-empty list of positive numbers, one value per device.

hardware.system_memory_gb

"auto"Detect system memory when possible.
64Positive number in GiB.

hardware.oom_recoverable

TrueOOM is expected to be recoverable.
FalseOOM can poison the process or device state.

Resource Limit Fields

resource_limits.max_device_memory_mb

None or a positive number. Caps total device memory use.

resource_limits.max_system_memory_mb

None or a positive number. Caps total system memory use.

resource_limits.max_tensor_size_mb

None or a positive number. Caps a single tensor allocation.

resource_limits.cleanup_threshold_pct

Integer from 1 through 100. Controls cleanup threshold.

Quantized Container Fields

supported_container_formats

Boolean map keyed by known quantized container format.

TrueThe backend claims the format.
FalseThe backend does not claim the format.

custom_container_decoders

Decoder map keyed by known quantized container format.

"module:function"Import path to a callable decoder.
requires format TrueThe matching supported_container_formats value must be True.
requires capabilitycapabilities.custom_quantized_decode must be True.

Known Container Formats

int2_ternary2-bit ternary integer container.
int4_symmetric4-bit signed symmetric integer container.
int4_asymmetric4-bit signed asymmetric integer container.
uint44-bit unsigned integer container.
nf44-bit NormalFloat container.
fp4_e2m14-bit floating-point E2M1 container.
fp4_bnbbitsandbytes-style FP4 container.
af4AF4 container.
mxfp4MXFP4 container.
nvfp4NVIDIA FP4 container.
fp6_e3m26-bit floating-point E3M2 container.
fp6_e2m36-bit floating-point E2M3 container.
mxfp6_e3m2MXFP6 E3M2 container.
mxfp6_e2m3MXFP6 E2M3 container.
fp8_e4m3fnFP8 E4M3FN container.
fp8_e5m2FP8 E5M2 container.
fp8_e4m3fnuzFP8 E4M3FNUZ container.
fp8_e5m2fnuzFP8 E5M2FNUZ container.
int8_symmetric8-bit signed symmetric integer container.
int8_asymmetric8-bit signed asymmetric integer container.
uint88-bit unsigned integer container.
e8m0fnuE8M0FNU container.
mxfp8_e4m3MXFP8 E4M3 container.
mxfp8_e5m2MXFP8 E5M2 container.
mxint8MXINT8 container.

Tolerance Overrides

tolerance_overrides is for narrow reviewed numerical differences. Do not use it to hide broad drift.

Accepted Key Shapes

"category:dtype"Example: "matmul:float32".
"category/dtype"Slash form of the same key.
("category", torch.dtype)Tuple or list form in Python manifests.

Accepted Value Shapes

{"rtol": 1e-4, "atol": 1e-5}Dictionary form.
(rtol, atol)Two-number tuple or list.
Tol(...)TieredTol(...)Python object forms for advanced manifests.

Known Tolerance Categories

Valid categories are exact, elementwise, reduction, matmul, matmul_backward, conv, norm, sdpa, loss, loss_prod, optimizer, linalg, fft, quant_decode, dequant_matmul, backward, compile, copy, serialization, statistical, noncontiguous_mm, strided_reduction, workload_e2e, nested_sdpa, gqa_sdpa, native_quantization, grid_sample, and default.

Validation

torchcts check-manifest

Keep the manifest aligned with the backend behavior the project intends to support. A current manifest makes focused development runs useful and release results interpretable.