Allow me to partially answer my own question with some details I found about my existing x570 configuration.question re: these B650 boards -
(although not really exclusive to these boards... maybe more of a general CPU/AM5 question)
It appears that pcie devices each negotiate their own generation/speed and width independently.
I can't confirm this is also true for mux'd x8/x8 GPU configurations nor bifurcated devices since (surprise) I'm not using any.
I thought that my Mellanox card was in my 2nd x16 GPU slot. It is not; I forgot that it was 100% covered by my GPU heatsink.
So my 4090 GPU is currently getting all 16 lanes at Gen4 speeds.
The Mellanox card is plugged into the 3rd "GPU" slot (x16 mechanical, x4 uplinked to the chipset)
So that bandwidth is getting shared with a variety of other devices including my secondary nvme drive, USB, onboard ethernet, etc... Not great, but given my actual usage of those devices, it might not actually be that contentious.
So were I to use that Supermicro H13SAE-MF board:
- My GPU would be reduced to 8x lanes
- my Mellanox would increase to 8x lanes (running at Gen3 speeds)
- my audio card could fit into that x4 slot nearest the CPU
- My 4090 card wouldn't likely fit w/ these other cards unless I converted from air to a thin water block
Also, to see the details of your pcie speed/widths, here's a code snippet from Stackexchange:
Is there a way to identify the PCIE Speed for a device using powershell (Win10)?
Code:
# Get all devices related to PCI BUS
$pciStats = (Get-WMIObject Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity') |
foreach {
# request connection properties from wmi
[pscustomobject][ordered]@{
Name = $_.Name
ExpressSpecVersion=$_.GetDeviceProperties('DEVPKEY_PciDevice_ExpressSpecVersion').deviceProperties.data
MaxLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkSpeed' ).deviceProperties.data
MaxLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkWidth' ).deviceProperties.data
CurrentLinkSpeed =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkSpeed' ).deviceProperties.data
CurrentLinkWidth =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkWidth' ).deviceProperties.data
} |
# only keep devices with PCI connections
Where MaxLinkSpeed
}
$pciStats | Format-Table -AutoSize