Методы уменьшения задержки передачи данных от центрального процессора к графическому процессору

Я искал способы уменьшить задержку, вызванную передачей данных назад и вперед от CPU и GPU. Когда я впервые начал использовать CUDA, я заметил, что передача данных между процессором и графическим процессором занимает несколько секунд, но мне было все равно, потому что это не касается небольших программ, которые я писал. Фактически, задержка, вероятно, не является большой проблемой для подавляющего большинства программ, использующих графические процессоры, включая видеоигры, потому что они все еще намного быстрее, чем если бы они работали на процессоре.

Однако, Я немного энтузиаст высокопроизводительных вычислений, и меня заинтересовало направление своих исследований, когда я увидел огромное расхождение между теоретическим пиковым значением FLOPS Tianhe-I и фактической производительностью, измеренной LINPACK.Это вызвало у меня опасения по поводу правильного выбора карьеры.

Использование закрепленной памяти (с блокировкой страниц) с помощью функции cudaHostAlloc () - это один из методов уменьшения задержки (довольно эффективный), но есть ли другие методы, о которых я не знаю? И чтобы внести ясность, я говорю об оптимизации кода, а не самого оборудования (это работа NVIDIA и AMD).

В качестве побочного вопроса я знаю, что Dell и HP продают серверы Tesla. Мне любопытно, насколько хорошо графический процессор использует приложение базы данных, где вам потребуется постоянное чтение с жесткого диска (HDD или SSD), операция, которую может выполнять только процессор,

14
задан Nina Kaprez 15 July 2016 в 12:50
поделиться