1

Существует ли ограничение на объем операций, которые вы можете выполнять на графическом процессоре?

Например, можете ли вы создать словари / хэш-карты, как в Java или C #? Как насчет получения пакетов из сокета? Не могли бы вы направить их через шину PCI Express, через процессор и в графический процессор?

Я заинтересован в использовании графического процессора для обработки сетевых пакетов данных с очень низкой задержкой.

1 ответ1

1

Графические процессоры не имеют доступа к любому оборудованию, подключенному к хосту.

Типичное исполнение для программ на GPU:

  • данные, передаваемые из памяти хоста в память устройства GPU
  • GPU устройство выполняет некоторую обработку
  • данные передаются обратно из памяти устройства GPU в память хоста

и затем хост делает что-то полезное с данными, например отображает их пользователю или сохраняет в файл.

Передача памяти не является бесплатной, поэтому, как правило, вам нужно накопить достаточно данных и затем отправить их на устройство с графическим процессором, чтобы сделать их полезными.

Что еще нужно учитывать, так это то, что устройства с графическим процессором являются параллельными данными (в отличие от параллельных задач). В отличие от процессоров, которые могут параллельно выполнять разный код, графические процессоры параллельно выполняют один и тот же код для разных данных. Это делает их плохими в таких вещах, как веб-сервер, но отлично подходит для определенных научных и математических задач, где проблему можно распараллелить.

Если вам требуется обработка сетевых пакетов с малой задержкой, графические процессоры вряд ли подойдут. Вам необходимо:

  • получить сетевой пакет
  • отправить его в GPU (некоторое время ожидания)
  • процесс на GPU
  • отправить обратно на хост (больше задержки)

Единственный способ для графических процессоров быть осуществимым, если:

  • анализ одного пакета может быть распараллелен на множество меньших кусков
  • Вы готовы подождать, пока придет много сетевых пакетов, и проанализировать сразу много

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .