Возможен ли парсинг на GPU?

Есть парсер, который обрабатывает миллионы записей. Просадка идет на 80% по процессору. Остальное я так думаю IO. Возможно ли текстовую информацию обрабатывать на GPU. Мне хотелось бы иметь несколько сотен или даже тысяч ядер.

Подобные задачи вообще на GPU решаются?
  • Вопрос задан
  • 855 просмотров
Пригласить эксперта
Ответы на вопрос 6
xez
@xez
TL Junior Roo
Определенно, возможен.
Вот например: https://github.com/antonmks/nvParse
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Начните отсюда.

Просадка идет на 80% по процессору
считывайте данные крупными блоками и обрабатывайте в асинхронном мультипоточном режиме.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Для начала надо найти, что именно потребляет процессор и выяснить поддаётся ли оно векторизации. GPU - не волшебная палочка, не всё может.
Ответ написан
Комментировать
gbg
@gbg
Любые ответы на любые вопросы
Очень зависит от задачи, вероятно нет, потому что парсинг обрабатывает данные одномерно и часто возвращается назад. Кроме того, это задача с низкой локальностью данных, а значит, много времени будет уходить на пересылки.

GPU быстро работает тогда, когда нужно перемолоть много данных с минимумом ветвелений. Парсинг этому противоположен по структуре алгоритма.
Ответ написан
Комментировать
profesor08
@profesor08
Попробуй Nvidia Cuda, позволяет решать задачки на гпу, и ты вполне сможешь что-то распарсить.
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Теоретически можно. Практически маловероятно.
GPU дает хорошую вычислительную мощность, и с распаралеливанием задач при парсинге проблем нет, но надо понимать что GPU это узкоспециализированный процессор, выполняющий определенный тип вычислений.

В общем все зависит от того что за данные вы парсите, но мне трудно представить такие данные которые можно успешно считать на ГПУ.

Начинать надо с распараллеливания и оптимизации на стандартных процессорах, а уж потом, выявив участки которые можно перенести на ГПУ, думать о том как их перенести и будет ли смысл.

Мне хотелось бы иметь несколько сотен или даже тысяч ядер.
Попробуйте распределенные вычисления.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы