Почему 48 кубитов — это рубеж, и как его преодолеть на обычной видеокарте
Классический симулятор квантового состояния в виде вектора амплитуд требует памяти, которая растёт экспоненциально с числом кубитов. Для 48 кубитов полноразмерный вектор состояния в двойной точности занимает порядка 2^48 комплексных чисел, что эквивалентно порядка 4,5 петабайта памяти. Такие объёмы недоступны ни на одной домашней системе, поэтому для воспроизведения работы алгоритма Гровера приходится применять хитрые приёмы, жертвовать скоростью и иногда точностью, но при этом сохранять корректность результата.
Подход «гибридного» симулятора сводится к комбинированию нескольких методов: разбиению состояния на слайсы, использованию структуры конкретного алгоритма и разгрузке данных на быстрые NVMe-накопители с последовательной обработкой частей состояния на GPU. Ключевая идея — не хранить весь вектор сразу, а держать в памяти лишь ту часть, которая нужна для текущей операции, и последовательно собирать итог. Такой способ требует многократного чтения или пересчёта отдельных фрагментов, но позволяет обойти фундаментальное ограничение оперативной и видеопамяти.
Практическая схема выглядит так: выбирают k кубитов для «слайсинга», что даёт 2^k независимых задач, каждая из которых оперирует вектором размера 2^(n−k). Вычислительная нагрузка растёт пропорционально 2^k, зато требование к памяти уменьшается в 2^k раз. На домашней видеокарте с 24 гигабайтами памяти можно, например, выбрать слайсинг 18 кубитов — тогда каждый слайс содержит 2^30 амплитуд и занимает порядка 16 гигабайт, что помещается в VRAM.
Остальные слайсы последовательно обрабатываются, пока не собран полный результат алгоритма.
Оптимизации, которые делают симуляцию реальной задачей
Успех гибридного подхода зависит от нескольких практических оптимизаций. Во-первых, важно использовать свойства самого алгоритма Гровера: оракул часто является диагональным в базисе и меняет знак лишь для одного или небольшого числа базисных состояний. Это означает высокую разреженность, которую можно эксплуатировать — вместо применения общей матрицы можно выполнять локальные фазовые обновления по индексам состояния.
Во-вторых, оператор диффузии представляет собой обновление типа 2|s><s| − I, то есть ранг‑1 модификацию по отношению к тождественному оператору. Это даёт возможность применять диффузию, сначала вычислив среднее значение амплитуд (через параллельное редуцирование на GPU или потоковый проход по слайсам), а затем скорректировав каждую амплитуду без обращения к огромным матрицам. Также помогает тщательное использование памяти: смешанная точность (float16/complex16) сокращает объём вдвое, а аккуратные схемы суммирования (pairwise summation) поддерживают приемлемую числовую точность.
Для уменьшения времени копирования данных оптимизируют перекрытие ввода-вывода и вычислений: пока GPU работает с одним слайсом, CPU подготавливает следующий и инициирует предзагрузку с NVMe. При большом количестве слайсов это экономит сотни процентов времени по сравнению с последовательным чтением без параллелизма.
Торговля временем за память: практические стратегии и результаты
Любой гибридный симулятор — это компромисс: либо много памяти и быстрое вычисление, либо мало памяти и многократные перерасчёты. Выбор стратегии зависит от доступного оборудования и целей эксперимента. На практике для домашней системы с SSD NVMe и одной мощной видеокартой логика простая: ограничить размер вектора VRAM-срезом, хранить промежуточные результаты на быстром диске и оптимизировать оркестровку работы, чтобы загружать GPU максимально плотно. Эффективная схема включает чекпоинты и пересчёт: часть операций (например, группы однокубитных преобразований, которые легко применяются локально) выполняются на лету, а более тяжёлые участки сохраняются. Если при расчётах важно уменьшить число повторных операций, ставят чекпоинты чаще и используют больше дискового пространства; если в приоритете время, приходится держать как можно больше промежуточных данных.
Эксперименты показывают, что при разумном выборе k слайсов и грамотной организации потоков вычислений 48-кубитный симулятор Гровера становится выполнимой задачей на одной современной видеокарте — пусть и с ощутимым временем на обработку всех слайсов. Особое внимание уделяют декомпозиции многоуправляемых операций. Многоуправляемые фазы, которые в реальном квантовом устройстве требуют сложной последовательности двухкубитных ворот, в симуляторе можно реализовать через прямые манипуляции с индексами состояния или разворачивать в менее ресурсоёмкие примитивы с использованием дополнительных вычислительных шагов.
Это позволяет избежать накладных расходов на хранение огромных матриц и упростить применение операторов к текущему слайсу.
Практическое применение и перспективы
Зачем вообще запускать 48-кубитный симулятор на домашней железке? Во-первых, это инструмент валидации и экспериментирования: исследователи и энтузиасты могут проверять корректность оракулов, изучать поведение Гровера при разной структуре задач и тестировать алгоритмы под шумом и ограничениями памяти. Во-вторых, подобные симуляции служат для бенчмаркинга и подготовки к работе с реальными квантовыми устройствами, где важно понимать предполагаемую эволюцию состояния и оценивать чувствительность к ошибкам. Технологически такие симуляторы также стимулируют развитие софта: библиотеки для динамического разбиения памяти, оптимизированные CUDA-ядра для потоковой обработки амплитуд и механизмы прозрачного хранения на NVMe появляются в ответ на практические задачи.
В ближайшие годы, по мере роста объёмов видеопамяти и появления более быстрых NVMe-решений, граница симулируемых кубитов будет сдвигаться дальше. Но принципиальная идея останется прежней: разумная компрессия данных и использование структуры алгоритма позволяют пробить стену, которую без этих трюков преодолеть было бы невозможно. В заключение: 48 кубитов — это не «магическая» граница невозможности, а практическая точка, где приходится выбирать между скоростью и памятью.
Гибридные подходы показывают, что даже на доступном оборудовании можно запускать значимые квантовые алгоритмы, если использовать слайсинг, эксплуатировать разреженность и распараллеливание работы между GPU, CPU и быстрыми накопителями. Это не замена квантового компьютера, но мощный инструмент для исследований и обучения.
RAK Строй Групп.