Модель программирования cuda-mpi без GPUDirect

Я использую кластер GPU без поддержки GPUDirect. Из этого брифинга при передаче данных графического процессора между узлами делается следующее:

  1. GPU пишет в закрепленный sysmem1
  2. Процессор копирует из sysmem1 в sysmem2
  3. Копии драйверов Infiniband от sysmem2

Теперь я не уверен, является ли второй шаг неявным, когда я передаю sysmem1 через Infiniband с использованием MPI. Предполагая это, моя текущая модель программирования выглядит примерно так:

  1. cudaMemcpy (hostmem, devicemem, size, cudaMemcpyDeviceToHost).
  2. MPI_Send (hostmem,...)

Верно ли мое предположение, верно ли, и будет ли моя модель программирования работать без проблем со связью?

1 ответ

Решение

Да, вы можете использовать CUDA и MPI независимо (т.е. без GPUDirect), как вы описали.

  1. Переместить данные с устройства на хост
  2. Передайте данные как обычно, используя MPI

Возможно, вас заинтересует эта презентация, в которой объясняется MPI с учетом CUDA и приводится пример на слайде 11 MPI без CUDA и CUDA-MPI.

Другие вопросы по тегам