USED GPUS / PCIE CHECKS

Buying a used mining GPU? Let the card testify first.

“Ex-mining, never gamed, runs perfect.” Maybe. The card keeps its own records, and they’re more specific than the seller’s photos: the link it trains and the errors it counts.

THE SHORT ANSWER

Before buying a used mining GPU for AI, test it under load in a known-good x16 slot and compare PCIe LnkCap with LnkSta: a healthy card trains at the speed and width both card and slot support. Check AER and replay counters across a stress run. A clean result can’t vouch for VRAM wear or fans, so test those too.

The aha: the card’s registers are better witnesses than the seller’s photos

Every PCIe device carries two link registers you can read without a screwdriver. LnkCap says what the card can do: its maximum speed and width. LnkSta says what it trained to, right now, in this slot. If the card supports Advanced Error Reporting, Linux adds error status and counters. pciutils: lspci manual page, Linux kernel: PCI Express Advanced Error Reporting guide.

Here’s the part most buyers miss: mining on a x1 riser doesn’t leave a card stuck at x1. The link negotiates its width every time it trains. If a card trains at x8 in a x16 slot where another card trains at x16, its riser history isn’t the reason. Look at the gold fingers, the slot or the card itself.

The flip side matters just as much. These registers don’t remember the mining farm. They describe the card on your bench, today. That’s why the test has to happen under load, on your hardware, before the return window closes.

One more reason to read LnkCap yourself: mining-only products exist. NVIDIA markets its CMP processors as designed for professional mining operations. Don’t assume any card has the same link or outputs as a gaming sibling; read what this one reports. NVIDIA: CMP processors for professional mining.

Mining GPU for AI: why the link matters now

On a mining rig, x1 was fine (here’s why). AI work is different. Model weights cross the bus when they load, and multi-GPU inference passes data between cards while it runs.

The arithmetic: 20 GB of weights at Gen1 x1, about 250 MB/s, takes around 80 seconds. At Gen4 x16 (16 GT/s × 128/130 × 16 lanes ≈ 31.5 GB/s) the link’s theoretical time is under a second; real loads are slower than that. So give an AI card a full-width slot and confirm it trained there.

For AI, VRAM capacity and framework support usually decide more than mining history does. Check the card’s memory size against the models you plan to run, and check the GPU against your framework’s supported-hardware list.

Why do ex-mining cards turn up at all? One reason: Ethereum ended proof-of-work mining on 15 September 2022, and the GPUs that had mined it needed new jobs. ethereum.org: The Merge and the end of proof-of-work.

How to check a used mining GPU on Linux, step by step

These commands read state and don’t change the card. Replace 01:00.0 with the address lspci shows.

  1. Use a known-good bench.

    Put the card directly in a x16 slot that you’ve seen train a good card at full width. No riser. Use the power connectors the card expects and a current driver.

  2. Identify the card and driver.
    lspci -nn | grep -i -e vga -e '3d controller'
    lspci -nnk -s 01:00.0

    Check that the vendor and device IDs match the listing and that the expected driver is bound (“Kernel driver in use”).

  3. Compare LnkCap with LnkSta under load.
    sudo lspci -vv -s 01:00.0 | grep -e 'LnkCap:' -e 'LnkSta:'
    # NVIDIA cards report the same through the driver:
    nvidia-smi --query-gpu=pcie.link.gen.current,pcie.link.gen.max,pcie.link.width.current,pcie.link.width.max --format=csv

    At idle a lower speed is normal: NVIDIA documents that the current link may be reduced when the GPU is not in use. NVIDIA: nvidia-smi documentation, PCIe link and replay counters. Under load, speed and width should reach what both the card and the slot support. Recent pciutils versions mark each value (ok) or (downgraded).

  4. Save the raw config space and decode it.
    sudo lspci -xxxx -s 01:00.0 > used-gpu-config.txt

    Paste the file into the free PCI config space decoder. It shows current versus maximum link and the AER status registers, each tied to its register offset, and it runs in your browser. Reading configuration space doesn’t write to the card; the extended space needs root.

  5. Read the error counters before and after a stress run.
    cat /sys/bus/pci/devices/0000:01:00.0/aer_dev_correctable
    nvidia-smi -q | grep -i -e 'Replays Since Reset' -e 'Replay Number Rollovers'
    cat /sys/bus/pci/devices/0000:01:00.0/pcie_replay_count   # amdgpu
    sudo dmesg -T | grep -i -e 'AER' -e 'Xid' -e 'amdgpu'

    Note the numbers, run the next step, then note them again. In a known-good slot, they should stay flat or nearly flat. Check the root port above the card too, because the kernel may count errors at the link partner rather than the card. Linux kernel ABI: PCIe AER statistics in sysfs, Linux kernel: amdgpu sysfs attributes, including pcie_replay_count.

  6. Stress VRAM, temperatures and fans for 30–60 minutes.
    nvidia-smi --query-gpu=temperature.gpu,fan.speed,power.draw,clocks.mem --format=csv -l 5
    sensors   # lm-sensors, for AMD cards

    Run your real workload, a demanding game or a VRAM tester such as memtest_vulkan: open-source GPU memory stress tester. Watch for temperatures that keep climbing, fan speeds that hunt or rattle, visual artefacts, driver resets and memory errors.

  7. Check the VBIOS.
    nvidia-smi -q | grep -i 'VBIOS Version'
    cat /sys/class/drm/card*/device/vbios_version   # amdgpu, where present

    Compare it with the board maker’s listed versions or a known stock card of the same model. A mismatch isn’t proof of a modified mining BIOS, but it’s a fair question for the seller.

Annotated example: idle, load and a narrow link (synthetic)

This output is synthetic, written to show the pattern rather than captured from a specific card. Two used cards, tested one after the other in the same Gen4 x16 slot.

# SYNTHETIC. Card A at idle:
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <4us
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)
# Card A under load:
LnkSta: Speed 16GT/s (ok), Width x16 (ok)

# Card B under load, same slot:
LnkSta: Speed 16GT/s (ok), Width x8 (downgraded)

# SYNTHETIC. aer_dev_correctable, before -> after 30 minutes:
Card A   RxErr 0 -> 0     TOTAL_ERR_COR 0 -> 0
Card B   RxErr 0 -> 412   TOTAL_ERR_COR 0 -> 412
  • Card A at idle, 2.5GT/s (downgraded): power saving, not a fault. It reached 16GT/s x16 under load.
  • Card B, Width x8 (downgraded) under load: the slot trained x16 with card A, so the slot isn’t the limit. Power off, reseat, inspect the gold fingers and retest. If it stays at x8, half the link isn’t training.
  • Card B’s RxErr climbing in a known-good slot: the receiver sees bad symbols on a short, direct connection. That points at the card’s edge connector or its PCIe circuitry, not a riser.

Card B may still run games. For AI, where the link carries model loads and multi-GPU traffic, it’s a weaker buy: walk away, or price it as a card with a fault.

What a PCIe snapshot can’t tell you

  • VRAM health under heat. Memory errors may only show up once the card is hot. Only a sustained stress test reveals them.
  • Fan bearings. Listen at several speeds and watch the reported RPM. A fan that ticks, wobbles or hunts will need replacing.
  • Thermal pads and paste. Tired pads and paste show up as hot memory or hot-spot temperatures under load, not as link errors.
  • How many hours it mined. No PCIe register records mining history. Neither the seller’s story nor the registers prove it either way.
  • Modified firmware. Check the VBIOS version; a config-space decode won’t reveal memory timing changes.
  • Physical damage. Look for a bent board, scorched power connectors, missing screws and broken fan clips.

Used mining GPU checklist

  1. Agree on a test or a return window before you pay.
  2. Inspect the gold fingers, power connectors, fans, screws and board for bends.
  3. Test in a known-good x16 slot, with no riser.
  4. Under load, LnkSta reaches the speed and width that the card and slot support.
  5. AER and replay counters stay flat across a 30–60 minute run, on the card and on its root port.
  6. The stress run shows no driver resets, artefacts or memory errors.
  7. Temperatures settle, and fans stay steady and quiet.
  8. The VBIOS version matches the board maker’s listed versions.
  9. For AI: enough VRAM for your models, and support in your framework.

Want the background on each lspci field? Read lspci -vvv explained and the glossary entry on link width and speed.

Questions

Is it safe to buy a used mining GPU?

It can be, if you test the card rather than trust the story. Check that the PCIe link trains at full speed and width under load, that AER and replay counters stay flat, and that VRAM, temperatures and fans pass a 30–60 minute stress run. Buy with a return window.

Are mining GPUs good for AI?

Some are. VRAM size and framework support matter more than mining history. AI uses the PCIe link far more than mining did, so test the card in a full-width x16 slot and confirm the link trains correctly before relying on it.

How can you tell if a GPU was used for mining?

Usually you can’t from software. No PCIe register records mining hours, and the link renegotiates every time it trains. What you can test is the card’s condition now: link training, error counters, VRAM stability, temperatures and fans.

What should LnkSta show on a healthy GPU?

Under load, the speed and width that both the card (LnkCap) and the slot support, for example 16GT/s x16 in a Gen4 x16 slot. At idle, a lower speed is normal power saving. A width below LnkCap under load in a known-good slot is worth investigating.

Does mining on x1 risers damage a GPU’s PCIe link?

Running on a x1 riser doesn’t lock a card to x1; the link renegotiates every time it trains. Physical damage to the edge connector is a different story. It shows up as a narrow link or climbing errors in a known-good slot.

Sources and scope

Source-based guide published by Header7F on 19 October 2026. Commands use placeholder addresses. Header7F has not reproduced every scenario on physical hardware, and no outcome is guaranteed.

KEEP READING

Message us