Стратегии программирования с несколькими GPU с использованием CUDA

Мне нужен совет по проекту, которым я собираюсь заняться . Я планирую запускать простые ядра (еще предстоит решить, но я полагаюсь на досадно параллельные) на узле Multi-GPU с использованием CUDA 4.0, следуя стратегиям, перечисленным ниже. Намерение состоит в том, чтобы профилировать узел, запуская ядра в различных стратегиях, которые CUDA предоставляет в среде с несколькими графическими процессорами.

  1. Один поток хоста - несколько устройств (общий контекст)
  2. Один поток хоста - одновременное выполнение ядер на одном устройстве (общий контекст)
  3. Несколько потоков хоста - (Равно) Несколько устройств (независимые контексты)
  4. Один поток хоста - последовательное выполнение ядра на одном устройстве
  5. Несколько потоков хоста - одновременное выполнение ядер на одном устройстве (независимые контексты)
  6. Несколько потоков хоста - последовательное выполнение ядер на одном устройстве (независимые контексты)

Я упускаю какие-то категории? Ваше мнение о категориях тестов, которые я выбрал, и любые общие советы по программированию на нескольких GPU.

Спасибо,
Саян

РЕДАКТИРОВАТЬ:

Я думал, что предыдущая категоризация была связана с некоторой избыточностью, поэтому изменил ее.

7
задан bmargulies 23 October 2011 в 17:20
поделиться