What are the performance differences between PCI-Express x16 and x4

15,869

Solution 1

I found a solution to my situational problem since I am required to have the 670 as a secondary card so it can be passed through, I was able to find a setting in my BIOS under "System Agent Configuration" (or something like that) to set a "Main Display" which allowed me to select between "IGPU", "PCIE" and "PCI" up till now I had thought "PCI" stood for actual PCI cards (these exist) but it seems it really means the x16(x4) slot. Meaning setting it to use PCI as the main display solved the problem for my specific Asus motherboard.

I ran a Unigine Heaven benchmark to measure the differences. The PCI-Express x4 is not enough of a bottleneck to draw the 670's performance anywhere near as low as that of the 550-Ti but it is still a bottleneck and has quite the effect on performance.

The 670 performed slightly better (wouldn't say significant, but not an insignificant difference either, about 3-10 FPS difference) on the x16 bus, the rendering of the benchmark went a lot smoother than on the x4 bus which had a lot more stuttering in it.

Overall I'd say that there is a very noticable performance difference between x4 and x16 for the 670 but it is still not so bad that the card is rendered significantly weaker than it would be on the higher bandwidth bus. It is however noticably weaker and there will be more stuttering and framerate dips seem to be more common than on the x16 bus.

It is also worth noting that the card ran roughly 10°C hotter on the x16 bus than on the x4 bus meaning if the card is running on the x4 bus it can possibly be overclocked slightly more without overheating to make up for the performance differences between the buses. (The overclocking thing is only a guess on my part, I haven't tried)

In the following results the values in the parentheses are the true values (i.e. my motherboard(Asus P8Z77-V LX) has a 3.0 pci-express bus but my CPU(i7 2600) is only compatible with (2.0), the card is in an x16 bus but the board can only deliver (x4) bandwidth from it)

It goes without saying that all the driver settings and unigine settings(maxed out in fullscreen with 1920x1080 res) were the same on both cards however the 670 was running two duplicate displays (i.e. one TV which was switched off and one FullHD monitor which was shared between the 670 and 550-Ti, the 670 used the VGA port on that monitor whereas 550-Ti had the DVI)

GTX 670 on PCI_Express 3.0(2.0) x16:

Min FPS:17.1
Max FPS:69.2
FPS:32.0
Score:807

GTX 670 on PCI-Express 2.0 x16(x4):

Min FPS:7.3
Max FPS:65.9
FPS: 30.1
Score:759

GTX 550-Ti on PCI-Express 3.0(2.0) x16:

Min FPS:4.5
Max FPS:22.8
FPS:9.1
Score:228

GTX 550-Ti on PCI-Express 2.0 x16(x4):

Min FPS:4.1
Max FPS:19.9
FPS:8.8
Score:223

As you can see however on the 550-Ti the performance difference is trivial (we're talking 0.3 FPS difference, I assume that in real performance the difference would never exceed 1FPS, programs aren't perfect, in an earlier benchmark the 550-Ti on x4 got 21.9 max FPS just to be clear, the max/min are kinda worthless, it's the avg FPS value that really counts) I am going to guess (I admit to having no idea what I am talking about) that the deciding factor for how important it is to use an x16 bus over x4 is the cards memory bandwidth (GeForce GTX 670 has 192.2 GB/s while Geforce GTX 550-Ti has 98.4 GB/s)

The only specs I haven't mentioned so far is that I have 24GB of DDR3@1866Mhz and a 120GB SSD which Unigine is installed on.

Solution 2

It all depends on the the way the game works.
Bandwidth wise, x4 is a quarter of x16.

x4 has 20Gb/s or 1.6 GB/s
while
x16 has 80Gb/s or 6.4GB/s

However if the game doesn't need to communicate with any other component on the computer at the speed of x16, then not having x16 will not slow anything down at all.
Conversely, if the bandwidth required by the GPU is greater than what x4 can provide, then it will be a bottleneck.

Have a look at these benchmarks - x4 did not suffer much over x16 - granted this was in SLI configuration, however it highlights that the x4 did not disadvantage the GPU in any way, though those benchmarks are a few years old.

Share:
15,869

Related videos on Youtube

Cestarian
Author by

Cestarian

Updated on September 18, 2022

Comments

  • Cestarian
    Cestarian almost 2 years

    I have two PCI-Express x16 slots on my motherboard, but one of them only has x4 bandwidth.

    For passing through my graphics card to a virtual machine I need to use both slots and unfortunately, the easiest way for me to achieve that is putting the stronger card in the x4 slot as that is by default the secondary slot.

    As such I am wondering what sort of noticeable performance differences I can expect from using the x4 slot with a strong card as opposed to having it in the x16 slot. Does it limit the performance so much that the strong card in the x4 slot will actually perform worse than the significantly weaker card in the x16 slot? (For spec comparison I am using a GTX-670 in the x4 slot and GTX-550-Ti in the x16 slot)

    What implications does this have?

  • Cestarian
    Cestarian about 10 years
    These benchmarks are a bit old (GTX 480 has significantly lower bandwidth than a GTX 670) and I imagine SLI is an entirely different story than using the card directly through the slot (as SLI links the card to the other card physically which I assume boosts the speeds a bit) I will just try benchmarking this myself.
  • Cestarian
    Cestarian about 10 years
    As I was doing these benchmarks anyways I decided to do a little Windows vs Linux OpenGL Nvidia driver testing (Driver Version 337) If anyone is interested
  • Lawrence
    Lawrence about 10 years
    Good work on the Benchmarks. Nice to get some fresh information :)
  • Thalys
    Thalys about 10 years
    for completeness sake, would doing the 550 on x16 and doing both on x8 be an option?
  • Cestarian
    Cestarian about 10 years
    @JourneymanGeek I have added the 550 on x16 (I was interested in knowing this myself anyways) turns out the difference is tiny between the x4 and x16 for that card. Sadly I do not have access to an x8 bus however.