{"record":{"id":"5a8f87ebd965950f","repo":"jax-ml/jax","slug":"unsupported-tpu-chip-version-chip-version","errorCode":null,"errorMessage":"Unsupported TPU chip version: {chip_version}","messagePattern":"Unsupported TPU chip version: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"jax/_src/tpu_info.py","lineNumber":558,"sourceCode":"          vmem_capacity_bytes=128 * 1024 * 1024,  # 128 MiB per core\n          cmem_capacity_bytes=0,\n          smem_capacity_bytes=1024 * 1024,  # 1 MiB per core\n          hbm_capacity_bytes=231_000_000_000 // tensor_cores_per_chip,\n          mem_bw_bytes_per_second=int(6.4e12 // tensor_cores_per_chip),\n          bf16_ops_per_second=int(0.9961e15 // tensor_cores_per_chip),\n          int8_ops_per_second=int(0.9961e15 // tensor_cores_per_chip),\n          fp8_ops_per_second=int(5.9769e15 // tensor_cores_per_chip),\n          int4_ops_per_second=int(11.9538e15 // tensor_cores_per_chip),\n          sparse_core=SparseCoreInfo(\n              num_cores=2,\n              num_subcores=16,\n              num_lanes=16,\n              vmem_capacity_bytes=256 * 1024,  # 256 KiB per vector subcore\n              dma_granule_size_bytes=64,\n          ),\n      )\n    case _:\n      raise ValueError(f\"Unsupported TPU chip version: {chip_version}\")\n\n\n@jax_util.cache(trace_context_in_key=True)\ndef get_tpu_info() -> TpuInfo:\n  \"\"\"Returns the TPU hardware info for the current device.\n\n  Note that all information is *per-TensorCore* so you would need to multiply by\n  `num_cores` to obtain the total for the chip.\n  \"\"\"\n  device_kind = get_device_kind()\n  chip_version = chip_version_from_device_kind(device_kind)\n  if chip_version is None:\n    if device_kind in registry:\n      return registry[device_kind]()\n    raise ValueError(\n        f\"Unsupported TPU device kind: {device_kind}. If you are not running \"\n        \"on a TPU device, you need to wrap your code in a \"\n        \"`jax.sharding.use_abstract_mesh` context manager whose `AbstractMesh` \"","sourceCodeStart":540,"sourceCodeEnd":576,"githubUrl":"https://github.com/jax-ml/jax/blob/1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb/jax/_src/tpu_info.py#L540-L576","documentation":"chip_version_from_device_kind produced a chip version that _get_tpu_info_impl's match statement has no entry for — a TPU generation unknown to this JAX.","triggerScenarios":"Running on a newly released TPU chip (or a device kind string parsing to an unmapped version) while using an older JAX.","commonSituations":"New TPU generation rollouts; custom device_kind strings.","solutions":["Upgrade JAX/jaxlib to a release supporting the chip","File an issue / add the chip entry if you control the fork"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from jax._src.tpu_info import ChipVersion\nassert chip_version in set(ChipVersion)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin JAX versions known to support your chip","Check release notes before migrating to new TPU hardware"],"tags":["tpu","chip-version","unsupported-hardware","jax"],"backgroundTag":"unsupported-hardware-version","analyzedSha":"1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb","analyzedAt":"2026-08-27T09:53:25.647Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}