Вопросы ускорения GPU,
или криптография, постквантовые алгоритмы и нейросети на одной видеокарте.

17 декабря 2025 года

Оценки темы блога
уникальные адреса

👁

В последние годы GPU часто воспринимается как универсальный ускоритель: если задача «тяжёлая», значит её нужно отдавать на видеокарту. Однако практика показывает, что это верно далеко не всегда.

Введение

Проверка скорости

Изображение создано с помощью нейросети ChatGPT 5 (DALL-E).

Развитие графических ускорителей, на примере фирмы процессоров NVIDIA, напомнило мне былые времена, когда для 286 процессора фирмы Intel на материнских платах существовал дополнительный слот для арифметического процессора. С его помощью можно было выполнять вычисления чисел с плавающей точкой значительно быстрее. В голову также пришли воспоминания о видеокарте S3, для которой можно было приобрести процессор обработки файлов MPEG, и карту ТВ-приемника, для котрой была доступна аналогичная опция, наряду с процессором декодера телетекста.
В то время, однако, не возникало вопроса, нужен ли ускоритель (дополнительный декодер).
Производитель заранее рассчитывал, что его карта обеспечивает определенные возможности с расширением, и дает их ограниченно или вовсе не предоставляет.
С развитием технологий арифметический сопроцессор стал входит в состав основного процессора Intel, центральные процессоры вполне уверенно декодируют видеофайлы с помощью программного обеспечения, поэтому потребность в специальных дополнительных процессорах для решения этих задач отпали.

Однако, новые времена - новые запросы.
Для майнинга криптовалют собирают целые фермы - кластеры специализированных процессоров, развитие нейросетей также подстегнуло интерес к специальным схемам обработки данных для их поддержки.
так получилось, что в моей лаборатории благополучно жили NVIDIA GTS 8600 (2008 год) и GT 740 (2018 год).
До поры до времени мне не приходило в голову использовать для чего-то другого, нежели трансляция изображения на монитор. Впрочем, лукавлю - в 2013 - 2014 годах я использовал карты для майнинга gridcoins - вознаграждения за научные вычисления на платформе BOINC. Увы, другого применения этих карт в то время у меня не нашлось.
Но размышления о дальнейшем развитии лаборатории подвигли на испытания этих карт.
Чтобы решить сегодня эту задачу, потребовалось проявить смекалку и настойчивость - карты не принадлежат к числу современных и их поддержка либо закончилась, либо скоро останется в прошлом.
Запустив драйвера устройств и включив их фирменные возможности, я задумался - что же можно с их помощью сегодня делать? По понятным причинам, выбор оказался невелик, однако, меню располагаемых возможностей оказалось вполне достойным для учебных и даже служебных целей.
В это же время возник следующий вопрос - видеокарты уже немолодые, их вычислительная производительность может быть не сопоставима с вычислительной производительностью центральных процессоров. Насколько имеет смысл использовать ресурсы видеокарт, располагая мощными центральными процессорами.
Здесь я должен сделать оговорку - центральные процессоры моих материнских плат тоже не принадлежат к числу современных. Испытания GT 740 проводились в упряжке с процессором Intel Core2Quad Q9650 @ 3.00GHz × 4

В этой статье я хочу показать на реальных экспериментах, где GPU действительно выигрывает у CPU, а где — нет, и почему. Для этого я сравнил три принципиально разные задачи:

Постановка задачи и оборудование

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

Шифр Хилла: GPU проигрывает

Шифр Хилла — классический линейный симметричный шифр, основанный на умножении матрицы на вектор по модулю.
Настройки шифра:
Результат:

GPU оказался почти в 8 раз медленнее.

Почему:

Вывод:
GPU не ускоряет классическую криптографию автоматически.
Для таких алгоритмов CPU часто остаётся лучшим выбором.

LWE: GPU начинает выигрывать — но не сразу

Алгоритмы на основе Learning With Errors лежат /2/ в основе постквантовой криптографии/3/. Базовая операция имеет вид:

b = A × s + e ( mod q )

где матрица A является фиксированным параметром (ключом), а векторы s и e меняются для каждого сообщения.

Одиночное сообщение

При обработке одного сообщения:

GPU проигрывает — по той же причине, что и в случае с Хиллом: матрицу A (16 MiB) нужно передать по PCIe.

Много сообщений при одном ключе

Однако в реальной криптографической модели:

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

K ,
(сообщений)

CPU,
сек/сообщение

GPU,
сек/сообщение

Ускорение

1

0.049

0.110

0.45×

4

0.029

0.034

~1×

16

0.028

0.015

1.8×

64

0.027

0.0107

2.5×

256

0.028

0.0097

2.9×

Критическая точка — K ≈ 16.

Начиная с этого момента GPU стабильно выигрывает.

Почему:

Вывод:

GPU в постквантовой криптографии — это ускоритель сервиса, а не одиночной операции.


Whisper: GPU раскрывается полностью

Whisper — нейросетевая модель распознавания речи. Здесь ситуация принципиально иная.

Эксперименты:

Результаты

Модель

CPU RTF

GPU RTF

Ускорение

Whisper tiny

~0.96

~0.16

~6×

Whisper base

~2.23

~0.10

>20×

GPU уверенно и кратно выигрывает.

Почему:

Вывод:

Whisper — пример задачи, почти идеально совпадающей с архитектурой GPU.

Общая картина

Сводя всё вместе:

Алгоритм

GPU
результат

Шифр Хилла

❌ Проигрыш по отношению к CPU

LWE
(1 сообщение)

❌ Проигрыш по отношению к CPU

LWE (K ≥ 16)

⚠️ Умеренный выигрыш у CPU

Whisper

✅ Крупный выигрыш


Главный вывод

GPU ускоряет не алгоритмы, а типы вычислений.

GPU эффективен, если:

Формально это можно выразить так:

Для эффективной работы алгоритма должно соблюдаться условие: \({ \Large \frac{\text{Вычисления}} {\text{Передача данных}} \gg 1 } \)

Если это условие не выполняется — CPU остаётся лучшим выбором.


Заключение

Куда "уходит" время

Изображение создано с помощью нейросети ChatGPT 5 (DALL-E).

Эти эксперименты ценны тем, что:

GPU — мощный инструмент, но только в тех задачах, где его архитектура действительно востребована. И именно это понимание сегодня важнее, чем слепая вера в «ускорение на видеокарте».


Примечания

1) SIMD (Single Instruction, Multiple Data — «Одиночный поток команд, множественный поток данных») — это принцип вычислений и набор инструкций процессора, который позволяет выполнять одну и ту же операцию одновременно над множеством элементов данных, обеспечивая параллелизм на уровне данных, что в разы ускоряет задачи, требующие обработки больших объемов однотипных данных.

2) Learning With Errors (LWE) (Обучение с ошибками) – это фундаментальная задача в криптографии на основе решеток, которая лежит в основе многих постквантовых криптосистем, включая шифрование и подпись, а также гомоморфное шифрование; её сложность эквивалентна решению сложнейших задач на решетках, что делает её устойчивой к атакам даже квантовыми компьютерами, и заключается в необходимости найти секрет, имея систему зашумленных линейных уравнений, где шум затрудняет восстановление истинного решения.

3) Постквантовая криптография — часть криптографии, которая остаётся актуальной и при появлении квантовых компьютеров и квантовых атак. Так как по скорости вычисления традиционных криптографических алгоритмов квантовые компьютеры значительно превосходят классические компьютерные архитектуры, современные криптографические системы становятся потенциально уязвимыми для криптографических атак.
("Википедия")

В работе над статьёй принимал участие ChatGPT версии 5.