GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie kann man feststellen, welche GPU-Karte mit PCI Express 2.0 X16 läuft und welche X8 verwendet?

Gibt es eine Möglichkeit, die Geschwindigkeit der PCI Express-Verbindung zu einer bestimmten Karte zu bestimmen? Ich habe drei Karten eingesteckt:

zwei Nvidia GTX 480 (eine mit x16 und eine mit x8)
eine Nvidia GTX 460 mit x8

Gibt es einen Weg, entweder durch einen Funktionsaufruf in C oder eine Option zu lspci dass ich die Busgeschwindigkeit der Grafikkarten ermitteln kann? Wenn ich nur eine der Karten für mein CUDA-Programm verwende, möchte ich diejenige verwenden, die mit x16 läuft.

Danke!

Hinweis:lspci -vvv Dumps aus

Für die beiden GTX 480. Ich sehe keine Unterschiede in Bezug auf die Busgeschwindigkeit.

03:00.0 VGA compatible controller: nVidia Corporation Device 06c0 (rev a3)
        Subsystem: eVga.com. Corp. Device 1480
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at d4000000 (32-bit, non-prefetchable) [size=32M]
        Region 1: Memory at b0000000 (64-bit, prefetchable) [size=128M]
        Region 3: Memory at bc000000 (64-bit, prefetchable) [size=64M]
        Region 5: I/O ports at df00 [disabled] [size=128]
        [virtual] Expansion ROM at b8000000 [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nvidia, nvidiafb, nouveau

03:00.1 Audio device: nVidia Corporation Device 0be5 (rev a1)
        Subsystem: eVga.com. Corp. Device 1480
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin B routed to IRQ 5
        Region 0: [virtual] Memory at d7ffc000 (32-bit, non-prefetchable) [disabled] [size=16K]
        Capabilities: <access denied>

04:00.0 VGA compatible controller: nVidia Corporation Device 06c0 (rev a3)
        Subsystem: eVga.com. Corp. Device 1480
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
        Region 1: Memory at c0000000 (64-bit, prefetchable) [size=128M]
        Region 3: Memory at cc000000 (64-bit, prefetchable) [size=64M]
        Region 5: I/O ports at cf00 [size=128]
        [virtual] Expansion ROM at c8000000 [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nvidia, nvidiafb, nouveau

04:00.1 Audio device: nVidia Corporation Device 0be5 (rev a1)
        Subsystem: eVga.com. Corp. Device 1480
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin B routed to IRQ 5
        Region 0: Memory at dfffc000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>

Und die einzigen Unterschiede, die ich sehe, beziehen sich speziell auf die Speicherzuordnung:

myComputer:~> diff card1 card2
3c3
< Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
---
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
7,11c7,11
< Region 0: Memory at d4000000 (32-bit, non-prefetchable) [size=32M]
< Region 1: Memory at b0000000 (64-bit, prefetchable) [size=128M]
< Region 3: Memory at bc000000 (64-bit, prefetchable) [size=64M]
< Region 5: I/O ports at df00 [disabled] [size=128]
< [virtual] Expansion ROM at b8000000 [disabled] [size=512K]
---
> Region 0: Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
> Region 1: Memory at c0000000 (64-bit, prefetchable) [size=128M]
> Region 3: Memory at cc000000 (64-bit, prefetchable) [size=64M]
> Region 5: I/O ports at cf00 [size=128]
> [virtual] Expansion ROM at c8000000 [disabled] [size=512K]
18c18
< Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
---
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
19a20
> Latency: 0, Cache Line Size: 64 bytes
21c22
< Region 0: [virtual] Memory at d7ffc000 (32-bit, non-prefetchable) [disabled] [size=16K]
---
> Region 0: Memory at dfffc000 (32-bit, non-prefetchable) [size=16K]

Akzeptierte Antwort:

Dies ist eine sehr alte Frage, aber der Weg, dies richtig zu tun, ist ausgeführt

sudo lspci -vv

Für jedes PCI-E-Gerät listet es LnkSta auf, das Ihnen die Geschwindigkeit als _ GT/s, Breite x1 angibt. Es listet auch LnkCap auf, die Verbindungskapazität.

Verwandte:Wie lösche ich die Datei(en) auf sichere Weise in Ubuntu?

2,5 GT/s =PCI-e Gen 1, 5 GT/s =PCI-e Gen 2, 8 GT/s =PCI-e Gen 3, und die Breite ist die Anzahl der Lanes.


Ubuntu
  1. So erhalten Sie eine bestimmte Speicheradresse mit C

  2. Wie kann ich feststellen, welcher laufende Prozess Java verwendet?

  3. Ermitteln Sie, welcher Gast auf XEN ausgeführt wird:HVM- oder PV-Gast

  4. Wie erkenne ich, welche Linux-Distribution ausgeführt wird?

  5. So ermitteln Sie, welche Prozesse wie viel Entropie aus /dev/urandom verbrauchen

So überprüfen Sie den gemeinsam genutzten Linux-Speicher mit dem ipcs-Befehl

So finden Sie die am häufigsten ausgeführten Prozesse nach Speichernutzung

So finden Sie heraus, welches Programm das Internet nutzt und wie viel?

Wie weist man in Virtualbox mehr als 256 MB Videospeicher zu?

So bestimmen Sie, welcher Prozess in Linux auf die Festplatte schreibt

Woher weiß ich, welcher Prozess Swap verwendet?