Распределение линий PCI-e на картах с 2 GPU?

На скорость передачи cudaMemcpy операций сильно влияет количество линий PCI-e 3.0 (или 2.0), выделенных для работы от ЦП к ГП. Мне любопытно, как линии PCI-e используются на устройствах Nvidia, содержащих два графических процессора.

У Nvidia есть несколько продуктов с двумя графическими процессорами на одном устройстве PCI-e. Например:

  • GTX 590 содержит два графических процессора Fermi GF110.
  • GTX 690 содержит два графических процессора Kepler GK104.

Как и многие новые видеокарты, эти устройства устанавливаются в PCI-e 16 слоты. Для карт, содержащих только один графический процессор, графический процессор может использовать 16 линий PCI-e.

Если у меня есть устройство, содержащее два графических процессора (например, GTX 690), но я выполняю вычислительные задания только на только одном из графических процессоров, могу ли все 16 линий PCI-e обслужить один используемый графический процессор?


Чтобы показать это как искусство ascii ...

[ GTX690 (2x GF110) ] ------ 16 линий PCI-e ----- [ CPU ]


Я не говорю о случае, когда центральный процессор подключен к двум картам, каждая из которых имеет по одному графическому процессору. (как на следующей диаграмме)

[ GTX670 (1x GK104) ] ------ линии PCI-e ----- [ CPU ] < / strong> ------ Каналы PCI-e ----- [ GTX670 (1x GK104) ]


person solvingPuzzles    schedule 20.10.2012    source источник


Ответы (1)


GTX 690 использует микросхема моста PLX PCIe Gen 3 для подключения двух графических процессоров GK104 к главной шине PCIe. Существует полное соединение x16 от хоста к устройству PLX и от устройства PLX к каждому графическому процессору (устройство PLX имеет всего 48 линий). Следовательно, если вы используете только один графический процессор, вы можете достичь примерно полной полосы пропускания x16 для этого графического процессора. Вы можете изучить это с помощью bandwidthTest, включенного в образцы CUDA. bandwidthTest будет нацелен на один графический процессор (из двух, которые находятся на карте, и это можно выбрать с помощью параметра командной строки), и вы должны увидеть примерно полную пропускную способность в зависимости от системы. Если ваша система поддерживает Gen3, вы должны увидеть полную пропускную способность PCIe x16 Gen 3 (не забудьте использовать параметр --memory = pinned), которая будет варьироваться в зависимости от конкретной системы, но должна быть намного севернее 6 ГБ / с (возможно, в диапазоне 9-11 ГБ / с). Если ваша система поддерживает Gen2, вы должны увидеть что-то в диапазоне 4-6 ГБ / с. То же самое можно сказать и о GTX 590, однако это устройство только Gen2 и использует другую микросхему моста. Результаты bandwidthTest подтверждают, что существует полный логический путь x16 между корневым портом и любым графическим процессором. Конечно, бесплатного обеда нет, поэтому вы не можете получить одновременную полную пропускную способность для обоих графических процессоров: вы ограничены слотом x16.

person Robert Crovella    schedule 20.10.2012