CUDA 4.0 путаница однорангового доступа - PullRequest
0 голосов
/ 02 августа 2011

У меня есть два вопроса, связанных с доступом к одноранговой сети CUDA 4.0:

  1. Есть ли способ скопировать данные, например, из GPU#0 ---> GPU#1 ---> GPU#2 ---> GPU#3.В настоящее время в моем коде он работает нормально, когда я использую только два графических процессора за раз, но не удается, когда я проверяю равноправный доступ на третьем графическом процессоре, используя cudaDeviceCanAccessPeer.Таким образом, работает следующее - cudaDeviceCanAccessPeer(&flag_01, dev0, dev1), но когда у меня есть два таких утверждения: cudaDeviceCanAccessPeer(&flag_01, dev0, dev1) и cudaDeviceCanAccessPeer(&flag_12, dev1, dev2), последнее терпит неудачу (0 возвращается в переменную flag_12).

  2. Будет ли он работать только для графических процессоров, подключенных через общий PCIe, ИЛИ Является ли Peer copy зависимым от базового соединения PCIe?Я не понимаю PCIe, но после выполнения nvidia-smi я вижу, что шины PCIe графических процессоров имеют 2, 3, 83 и 84.

Тестовый стенд представляет собой двухъядерное 6-ядерное ядроIntel Westmere, с 4 графическими процессорами - Nvidia Tesla C2050.

EDIT: пропускная способность между HtoD и DtoH и результаты SimpleP2P между двумя графическими процессорами (DtoD): enter image description here

1 Ответ

5 голосов
/ 04 августа 2011

Я подозреваю, что это проблема. Из предстоящего документа NVIDIA:

Графические процессоры NVIDIA предназначены для использования всех преимуществ стандарта PCI-e Gen2, включая одноранговую связь, но набор микросхем IOH не поддерживает полную спецификацию PCI-e Gen2 для связи P2P с другими чипсетами IOH

Вызов API cudaPeerEnable () вернет код ошибки, если приложение попытается установить P2P-связь между двумя графическими процессорами, которая потребует P2P-связи через QPI. Функция cudaMemcopy () для прямых передач P2P автоматически переключается на использование пути от устройства к хосту к устройству, но для прямого доступа P2P нет автоматического возврата (инструкции по загрузке / сохранению P2P в коде устройства).

Одной из известных систем примера является рабочая станция HP Z800 с двумя наборами микросхем IOH, которая может работать на примере simpleP2P, но пропускная способность очень низкая (100 с МБ / с вместо нескольких ГБ / с) из-за запасного пути.

NVIDIA изучает возможность поддержки графического процессора P2P через QPI путем добавления функциональности в будущие архитектуры графических процессоров.

Ссылка: Таблица наборов микросхем Intel® 5520 и наборов микросхем Intel® 5500, таблица 7-4: Декодирование адреса входящей памяти: «IOH не поддерживает несмежные байтовые разрешения от PCI Express для удаленных одноранговых транзакций MMIO. Это дополнительное ограничение в отношении требований стандарта PCI Express для предотвращения несовместимости с Intel QuickPath Interconnect ». - http://www.intel.com/Assets/PDF/datasheet/321328.pdf

Как правило, мы советуем создавать рабочие станции и кластеры с несколькими графическими процессорами, в которых все PCI-Express-слоты предназначены для графических процессоров, подключенных к одному IOH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...