Manifest Reference
The manifest configures the backend surface TorchCTS tests. During development it controls focused execution. In release results it records the support represented by the run.
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.