Tenstorrent cards (Wormhole, Blackhole) are PCIe AI accelerators used for inference of large language models. For details about the Kubernetes integration, see the Tenstorrent Operator documentation.
Before you begin
You’ll need:- A Talos Linux cluster running v1.13 or later.
- At least one node with a Tenstorrent accelerator installed.
talosctlandkubectlconfigured and authenticated against your cluster.helminstalled locally to deploy the operator.- The
siderolabs/tenstorrentTalos system extension.
Enable Tenstorrent support
System extensions are baked into the Talos boot image rather than installed at runtime. If your node booted from an image that does not includesiderolabs/tenstorrent, add the extension by switching the node to an image that does. The node performs a standard upgrade cycle to boot into the new image.
- Talos Linux
- Omni
Generate a new schematic that includes the Example schematic patch used when generating the image at the factory:For the full schematic workflow, see Boot Assets.
siderolabs/tenstorrent extension using the Talos Image Factory, then upgrade the node to the matching installer image:tenstorrent driver and exposes each card to the operating system as a device node at /dev/tenstorrent/<N>.
Optional: hugepages for inference workloads
Tenstorrent cards use 1 GB hugepages for host↔device DMA. The upstreamhugepages-setup.sh script is the reference for how many pages the driver expects — 4 pages per chip. On Talos the filesystem is immutable, so reserve the pages up front via kernel arguments. If you plan to run the TT inference server, add 32 pages on top for the workload pod (matching the upstream Helm chart default).
Sizing for the driver baseline plus the TT inference server pod:
Reserve hugepages via kernel arguments on the machine. The examples below use the 1-chip value — substitute the row from the table that matches your hardware:
- Talos Linux
- Omni
Verify Tenstorrent support
After the node boots with the extension, confirm the driver is loaded and the device is available.Step 1: Confirm the extension is installed
Check that thetenstorrent extension is loaded on the node. Replace the <node-ip> placeholder with the IP address of your node:
tenstorrent extension listed, along with its version:
Step 2: Confirm the PCI device is visible
Confirm the card is present on the PCI bus:Step 3: Deploy the Tenstorrent Operator
With driver support enabled, deploy the Tenstorrent Operator to expose the accelerators to Kubernetes workloads. Install the operator disablingtt-k8s-driver-manager:
Step 4: Verify Kubernetes resources
Once the operator pods areRunning, confirm that Node Feature Discovery has labelled the node with the Tenstorrent PCI vendor ID (1e52):
feature.node.kubernetes.io/pci-1200_1e52.present=true.
The operator exposes each card to Kubernetes via Dynamic Resource Allocation, so devices are not shown under a node’s Capacity or Allocatable. Instead, the tt-dra-driver publishes them as ResourceSlice objects under a DeviceClass named tenstorrent.com. Confirm both are present:
Step 5: Deploy a workload
A workload consumes a card by creating aResourceClaim that references the tenstorrent.com DeviceClass, then referencing the claim from a pod. For example:
ResourceSlice matches the claim, and the DRA driver injects the device into the container via CDI — it does not require privileged: true or hostPath mount.
For the full set of configuration options, custom resources, and workload examples, see the Tenstorrent Operator documentation.
Troubleshooting
Issues can show up at two layers: the device may not be detected by the operating system, or it may be detected but not visible to the operator. The following sections outline how to diagnose each.Device not detected
If the Tenstorrent device does not appear:-
Confirm the system extension is installed:
-
Review the kernel logs for driver messages:
-
Check PCI visibility:
Operator issues
If the operator fails to initialize, inspect its logs:tt-k8s-driver-manager install pods on your nodes in a CrashLoopBackOff state, confirm the operator was installed with --set tt-k8s-driver-manager.enabled=false. The driver-manager assumes it can compile and load tt-kmd on the host, which is not possible on Talos.
Confirm that:
- The
siderolabs/tenstorrentsystem extension is active on each accelerator node. - The card is visible on the PCI bus in Talos.
- The driver version reported by the extension matches the version expected by the operator (see the Tenstorrent Operator documentation).