RTX 5090 Stuck on x1 PCIe Lanes

After installing an RTX 5060 into my Ubuntu server I discovered that it is running on a single PCIe lane which, to my understanding, will definitely reduce some performance.

Running

nvidia-smi --query-gpu=index,pcie.link.gen.current,pcie.link.gen.max,pcie.link.width.current --format=csv index, pcie.link.gen.current, pcie.link.gen.max, pcie.link.width.current Gives me the output : 0, 3, 3, 1

sudo lspci -vv -s 01:00.0 | grep -E “Width|Speed” Gives me:

LnkCap: Port #0, Speed 32GT/s, Width x16, ASPM L1, Exit Latency L1 unlimited
LnkSta: Speed 8GT/s (downgraded), Width x1 (downgraded)
LnkCap2: Supported Link Speeds: 2.5-32GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
LnkCtl2: Target Link Speed: 32GT/s, EnterCompliance- SpeedDis-

So far I have tried to make sure the mobo bios isn’t doing anything weird, turning off ASPM, reseating the gpu in the top PCIe slot, and retrain the PCIe link with a display connected So far nothing has worked unfortunately. My motherboard is the GIgabyte AB350M-D3H-CF with 1 NVMe drive installed. Im on the 580.95.05 drivers running ubuntu server 24.04.2 with latest kernel.

If someone knows of anything that could potentially fix this please comment something below. If you need any extra info I’ll gladly share. Thanks!

Is this happening under load? Run some intensive GPU application and check again while the GPU is very busy.

What elsaco said or while the GPU is under load, run “nvidia-smi -q” and look at the “GPU Link Info”, section.

I ran gpu-burn to see what i would be at full load but I checked nvidia-smi -q and link width was still x1 while gpu burn was running.

It looks like either motherboard or card is faulty/incompatible. Do you have another card or PC to test with?

I tested with rtx 3060ti, i got 0 1 3 1 this time

Assuming the last two digits correspond to Gen3 x1, it’s looking pretty much like the x16 slot is faulty. I was going to suggest trying the bottom slot, but that’s only Gen 2 x4 and given the 3060’s Gen 4 x16 and the 5060’s Gen 5 x16, it won’t be doing either card any favours.

Has the x16 slot been empty up to this point? I ask as it’s possible it might be full of dust, but I’d have thought the amount of reseating you’ve done would have shown some improvement.

Later: Apologies, I’ve just re-read your initial post regarding the meaning of each digit, so you’re only seeing Gen1 x1 with the 3060. Do the Furmark scores reflect the degraded performance one would expect from such a constrained interface?

I’ve had a PNY gt 1030 on there that only used around half of the physical PCIe slot, and i haven’t checked its pcie width since it rarely did anything. Nonetheless I believe this could be a driver issue because nvidia smi -q recognizes the max link width to be x16, yet chooses to downgrade to x1. As for the FurMark question, i could only test it with gpu-burn since i dont have a GUI or any kind of desktop session. If there is a way to test that let me know.

Sorry, you did say gpu-burn, but I had Furmark stuck in my mind.

The 1030 is only a x4 card. It’s an unusual situation. If you haven’t already, it might be worth doing a thorough cleanout of anything Nvidia and reinstalling the driver.

@rs277 what CPU do you have? This is from mobo specs:

1 x PCI Express x16 slot, running at x16 (PCIEX16)
* For optimum performance, if only one PCI Express graphics card is to be installed, be sure to install it in the PCIEX16 slot.
* Actual support may vary by CPU.
(The PCIEX16 slot conforms to PCI Express 3.0 standard.)

Full specs at https://www.gigabyte.com/Motherboard/GA-AB350M-D3H-rev-10/sp

Straight from lscpu: AMD Ryzen 3 PRO 2200G with Radeon Vega Graphics

@elsaco Good spotting. That CPU only has 8 PCIe lanes available to distribute, but I’d have thought it should do a bit better than’s being shown.

After some digging i found that there are grub kernel parameters than can change the GPU PCIe generation, like nvidia.NVreg_EnablePCIeGen3=1, which you put under GRUB_CMDLINE_LINUX_DEFAULT. I could not find however, a command that changed the width of the PCIe connection which is what i really need.

please have a look here: