GNU/Linux >> Linux の 問題 >  >> Ubuntu

Pci Express 2.0 X16で実行されているGPUカードとX8を使用しているGPUカードを特定する方法は?

特定のカードへのPCIExpress接続の速度を決定する方法はありますか? 3枚のカードを接続しています:

2つのNvidiaGTX480(1つはx16、もう1つはx8)
1つはx8で動作するNvidiaGTX460

Cでの関数呼び出し、またはlspciのオプションのいずれかによる方法はありますか? グラフィックカードのバス速度を判断できますか? CUDAプログラムでカードを1つだけ使用する場合は、x16で実行されているカードを使用したいと思います。

ありがとう!

注:lspci -vvv ダンプアウト

2つのGTX480の場合。バスの速度に関係する違いは見当たりません。

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>

そして、私が見る唯一の違いは、特にメモリマッピングに関連しています:

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]

承認された回答:

これは非常に古い質問ですが、これを適切に行う方法は実行されます

sudo lspci -vv

各PCIeデバイスについて、LnkStaが一覧表示されます。これは、速度を_ GT / s、幅x1として示します。また、リンク容量であるLnkCapもリストされています。

関連:Ubuntuで安全な方法でファイルを削除する方法は?

2.5 GT / s =PCI-e gen 1、5 GT / s =PCI-e gen 2、8 GT / s =PCI-e gen 3、幅はレーン数です。


Ubuntu
  1. どのシェルを使用していますか?

  2. ファイルを作成しているプロセスを特定する方法は??

  3. 使用しているシェルを確認するにはどうすればよいですか?

  1. 専用GPUでGlmark2を実行する方法は?

  2. 使用しているドライバとビデオカードを知る方法は?

  3. Virtualboxで256MBを超えるビデオメモリを割り当てる方法は?

  1. Linux でディスクに書き込みを行っているプロセスを特定する方法

  2. Cを使用して特定のメモリアドレスを取得する方法

  3. javaを使用している実行中のプロセスを特定するにはどうすればよいですか?