На скорость передачи 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) ]