multi-gpu cuda: запустить ядро ​​на одном устройстве и изменить элементы на другом? - PullRequest
0 голосов
/ 10 февраля 2012

Предположим, у меня на компьютере установлено несколько графических процессоров, а ядро ​​работает на GPU0.

Имея функции UVA и P2P в CUDA 4.0, могу ли я изменить содержимое массива на другом устройстве, скажем, GPU1, когда ядро ​​работает на GPU0?

Пример simpleP2P в CUDA 4.0 SDK этого не демонстрирует.

Показывает только:

  • Одноранговые memcopies
  • Ядро, работающее на GPU0, которое читает ввод из GPU1буферизует и записывает вывод в буфер GPU0

  • Ядро, работающее на GPU1, которое читает ввод из буфера GPU0 и записывает вывод в буфер GPU1

1 Ответ

1 голос
/ 13 февраля 2012

Краткий ответ: Да, вы можете.

Более длинный ответ

Связанная презентация дает полную информацию, но вот требования:

  • Должно быть в 64-битной ОС (Linux или Windows с драйвером Tesla Compute Cluster).
  • Оба графических процессора должны иметь Compute Capability 2.0 (sm_20) или выше.
  • В настоящее времяграфические процессоры должны быть подключены к одному и тому же IOH .

. Вы можете использовать cudaDeviceCanAccessPeer(), чтобы узнать, возможен ли прямой P2P-доступ.

...