2013-07-17 4 views
3

Я слышал о передачах памяти между одноранговыми серверами и читал что-то об этом, но не мог понять, насколько быстро это сравнивается со стандартными передачами шины PCI-E.Передачи одноранговых CUDA

У меня есть приложение CUDA, которое использует более одного gpu, и меня могут заинтересовать переводы P2P. Мой вопрос: насколько быстро он сравнивается с PCI-E? Могу ли я использовать его часто, чтобы два устройства обменивались данными друг с другом?

+1

'p2p' - это просто рынок, говорящий о том, что устройства CUDA теперь могут передавать данные между собой через PCI-E. Скорости будут такими, какие вы ожидаете от шины PCI-E. На более интересной стороне также есть что-то, называемое «равноправным доступом», которое позволяет запускать ядро, которое может читать/записывать данные с нескольких устройств. –

+0

Это интересно .. можете ли вы указать мне на что-то, что описывает этот «равный доступ»? Также: сделайте это ответом, мне это достаточно, и я приму это! –

+0

Добавлен ответ со ссылками. –

ответ

6

CUDA «peer» относится к другому графическому процессору, который способен осуществлять доступ к данным с текущего графического процессора. Все графические процессоры с процессором 2.0 и выше поддерживают эту функцию.

Копии памяти равными включают в себя использование cudaMemcpy для копирования памяти через PCI-E, как показано ниже.

cudaMemcpy(dst, src, bytes, cudaMemcpyDeviceToDevice); 

Обратите внимание, что dst и src могут находиться на разных устройствах.

cudaDeviceEnablePeerAccess позволяет пользователю запускать ядро, которое использует данные с нескольких устройств. Доступ к памяти по-прежнему выполняется через PCI-E и будет иметь те же узкие места.

Хорошим примером этого может быть simplep2p из образцов cuda.

+0

Спасибо! Это именно то, что я искал! –

Смежные вопросы