Мне нужен совет по поводу проекта, которым я собираюсь заняться. Я планирую запускать простые ядра (еще предстоит решить, но я полагаюсь на досадно параллельные) на узле Multi-GPU с использованием CUDA 4.0, следуя стратегиям, перечисленным ниже. Намерение состоит в том, чтобы профилировать узел, запуская ядра в различных стратегиях, которые CUDA предоставляет в среде с несколькими графическими процессорами.
- Один поток хоста - несколько устройств (общий контекст)
- Один поток хоста - одновременное выполнение ядер на одном устройстве (общий контекст)
- Несколько потоков хоста - (Равно) Несколько устройств (независимые контексты)
- Один поток хоста - последовательное выполнение ядра на одном устройстве
- Несколько потоков хоста - одновременное выполнение ядер на одном устройстве (независимые контексты)
- Несколько хост-потоков - последовательное выполнение ядер на одном устройстве (независимые контексты)
Я упускаю какие-то категории? Ваше мнение о категориях тестов, которые я выбрал, и любые общие советы по программированию на нескольких графических процессорах приветствуются.
Спасибо,
Саян
РЕДАКТИРОВАТЬ:
Я подумал, что предыдущая категоризация предполагает некоторую избыточность, поэтому изменил ее.