Введение

Модель квантовых вычислений

В квантовой теории информации квантовая схема является моделью квантовых вычислений, аналогичной классическим схемам, в которой вычисление представляет собой последовательность квантовых ворот, измерений, инициализаций кубитов в известные состояния и, возможно, других операций. Минимальный набор операций, который схема должна быть способна выполнять над кубитами для обеспечения квантовых вычислений, известен как критерии Ди Винченцо. Схемы изображаются таким образом, что горизонтальная ось представляет время, начиная слева и заканчивая справа. Горизонтальные линии обозначают кубиты, а утолщенные линии – классические биты. Элементы, соединенные этими линиями, представляют собой операции, выполняемые над кубитами, такие как измерения или квантовые ворота. Эти линии определяют последовательность событий и обычно не являются физическими соединениями. Графическое представление элементов квантовой схемы описывается с использованием варианта графической нотации Пенроуза. Ричард Фейнман использовал раннюю версию обозначения квантовых схем в 1986 году.

Обратные классические логические ворота

Большинство элементарных логических элементов классического компьютера необратимы. Таким образом, например, для элемента И нельзя всегда восстановить два входных бита по выходному; например, если выходной бит равен 0, мы не можем определить, были ли входные биты 01, 10 или 00. Однако обратимые элементы в классических компьютерах легко конструируются для битовых строк любой длины; более того, они представляют практический интерес, поскольку необратимые элементы всегда увеличивают физическую энтропию. Обратимый элемент – это обратимая функция, действующая на n-битные данные и возвращающая n-битные данные, где n-битные данные – это строка битов x1, x2, …, xn длиной n. Множество n-битных данных – это пространство {0,1}n, состоящее из 2n строк, состоящих из 0 и 1. Более точно: n-битный обратимый элемент – это биективное отображение f из множества {0,1}n n-битных данных в себя. Примером такого обратимого элемента f является отображение, применяющее фиксированную перестановку к своим входам. По причинам практической инженерии обычно изучаются элементы только для небольших значений n, например, n=1, n=2 или n=3. Эти элементы можно легко описать таблицами.

Ускорение квантовых вычислительных симуляций с помощью FPGA

С появлением квантовых вычислений наблюдается значительный рост как числа разработчиков, так и доступных инструментов. Однако медленный темп технологического прогресса и высокие затраты на обслуживание, связанные с квантовыми компьютерами, ограничили широкое участие в этой области. В ответ разработчики обратились к симуляторам, таким как Qiskit от IBM, для моделирования квантового поведения без использования исключительно реального квантового оборудования. Тем не менее, симуляторы, будучи классическими компьютерами, ограничены скоростью вычислений. Фундаментальное преимущество квантовых компьютеров заключается в их способности обрабатывать кубиты, используя такие свойства, как запутанность и суперпозиция, одновременно. Запуская квантовые симуляции на классических компьютерах, теряется присущий квантовым вычислениям параллелизм. Более того, по мере увеличения числа симулируемых кубитов скорость моделирования пропорционально снижается. В квантовой схеме векторы используются для представления состояния кубитов, а различные матрицы – для представления гейтов, применяемых к кубитам. Поскольку линейная алгебра является ключевым компонентом квантовой симуляции, полевые программируемые вентильные матрицы (FPGA) могут быть использованы для ускорения симуляции квантовых вычислений. FPGA – это тип аппаратного обеспечения, которое отлично справляется с параллельным выполнением операций, поддерживает конвейеризацию, обладает встроенными ресурсами памяти с низкой задержкой доступа и обеспечивает гибкость для переконфигурации аппаратной архитектуры на лету, что делает его подходящим инструментом для обработки матричных умножений. Основная идея ускорения квантовых вычислительных симуляций заключается в переносе части вычислительной нагрузки на специализированное оборудование, такое как FPGA, для повышения скорости всего процесса моделирования. И чем больше квантовых схем (больше кубитов и гейтов) мы моделируем, тем больше выигрыша в скорости мы получаем от переноса вычислений на FPGA по сравнению с программными симуляциями на CPU. Ниже описан поток данных симуляции. Сначала пользователь вводит всю информацию о квантовой схеме, включая начальное состояние и различные гейты, через пользовательский интерфейс. Затем вся эта информация сжимается и отправляется на FPGA через аппаратные протоколы связи, такие как AXI. Далее вся информация сохраняется во встроенной памяти FPGA. И симуляция начинается, когда данные считываются из памяти и отправляются в модуль матричного умножения. После завершения всех вычислений результат отправляется обратно в память и в CPU. Предположим, мы моделируем 5-кубитные схемы, тогда нам необходимо сохранить вектор, содержащий 32 (2⁵) 16-битных значения, каждое из которых представляет квадратный корень вероятности возможного существующего состояния. Нам также необходимо сохранить матрицу 32x32, представляющую гейт. Для параллелизации этих вычислений мы можем хранить 32 строки матрицы отдельно и создать 32 аппаратных блока умножения строк, чтобы каждая строка могла вычислять умножение параллельно. Это значительно ускорит моделирование, но потребует больше аппаратных ресурсов и памяти в FPGA. Было обнаружено, что при грамотном проектировании аппаратного обеспечения можно достичь аппаратной архитектуры со временной сложностью O(n), где 'n' обозначает количество кубитов. В отличие от этого, время работы Numpy приближается к O(2^(2^n)). Этот вывод подчеркивает возможность использования FPGA для ускорения квантовых вычислительных симуляций.