NVIDIA QODA: платформа для гибридных квантово-классических вычислений
12, июль 2022 Программисту , который хочет исследовать алгоритмы и создавать гибридные приложения для будущего квантового преимущества , необходима связующая технология , обеспечивающая динамические рабочие процессы в разрозненных системных архитектурах . Благодаря унифицированной модели программирования, NVIDIA Quantum-Optimized Device Architecture (QODA) является первой в своем роде платформой для гибридных квантово - классических компьютеров , позволяющей интегрировать и программировать квантовые процессоры (QPU , quantum processing units ), GPU и CPU в одном устройстве . система . QODA обеспечивает масштабируемость и производительность системы с ускорением на GPU для гетерогенных элементов QPU, CPU, GPU и эмулируемых квантовых систем . В последнее десятилетие квантовые вычисления перешли из академических лабораторий в мейнстрим. Усилия по созданию лучших квантовых компьютеров распространяются как в стартапах, так и в крупных компаниях. И хотя до сих пор неясно, насколько мы далеки от использования квантового преимущества для решения общих проблем, ясно, что сейчас самое время создать инструменты, необходимые для предоставления ценных квантовых приложений. Для начала нам нужно продвинуться в понимании квантовых алгоритмов. В прошлом году NVIDIA анонсировала cuQuantum , комплект разработки программного обеспечения (SDK) для ускорения моделирования квантовых вычислений. Моделирование квантовых схем с использованием cuQuantum на графических процессорах позволяет проводить исследования алгоритмов с производительностью и масштабированием, намного превосходящими возможности современных квантовых процессоров (QPU). Это прокладывает путь к прорывам в понимании того, как максимально эффективно использовать квантовые компьютеры. Помимо улучшения квантовых алгоритмов, нам также необходимо максимально использовать потенциал QPU наряду с классическими вычислительными ресурсами: процессорами и графическими процессорами. Сегодня ( на конференции Q2B в Токио ) NVIDIA объявляет о запуске Quantum Optimized Device Architecture ( QODA ) — платформы для гибридных квантово-классических вычислений, предназначенной для реализации этой утилиты. По мере развития квантовых вычислений все ценные квантовые приложения будут гибридными, когда квантовый компьютер будет работать вместе с высокопроизводительными классическими вычислениями. Графические процессоры, которые были созданы исключительно для графики, превратились в необходимое оборудование для высокопроизводительных вычислений (HPC). Для этого требовалось новое программное обеспечение, обеспечивающее мощное и простое программирование. Превращение квантовых компьютеров из научных экспериментов в полезные ускорители также требует нового программного обеспечения. Эта новая эра квантового программного обеспечения позволит выполнять высокопроизводительные гибридные вычисления и повысит доступность квантовых компьютеров для более широкой группы ученых и новаторов.
Рис. 1. NVIDIA QODA — первая в мире платформа для гибридных квантово-классических вычислений с приложениями, охватывающими поиск лекарств, химию, погоду, финансы, логистику и многое другое. Ключевые преимущества QOD A ( https://developer.nvidia.com/qoda ):
Ландшафт квантового программирования За последние пять лет были разработаны подходы к квантовому программированию, нацеленные на маломасштабные, шумные архитектуры квантовых вычислений. Эта разработка оказалась полезной для разработчиков алгоритмов и позволила на раннем этапе создать прототипы как стандартных квантовых алгоритмов, так и гибридных вариационных подходов. Из-за нехватки квантовых ресурсов и практичности аппаратных реализаций большинство этих подходов к программированию были на уровне чистого Python, поддерживающего модель удаленного облачного выполнения. Поскольку квантовые архитектуры совершенствуются, а разработчики алгоритмов рассматривают истинное квантовое ускорение существующих классических гетерогенных вычислений, возникает вопрос: как мы должны поддерживать квантовую совместную обработку в традиционном контексте высокопроизводительных вычислений? NVIDIA была настоящим пионером в разработке моделей программирования высокопроизводительных вычислений, платформ гетерогенных компиляторов и высокоуровневых библиотек приложений, которые ускоряют традиционные рабочие процессы научных вычислений с помощью одного или нескольких графических процессоров NVIDIA . Мы рассматриваем квантовые вычисления как еще один элемент архитектуры гетерогенной системы высокопроизводительных вычислений и представляем себе модель программирования, которая органично интегрирует квантовую совместную обработку в нашу существующую экосистему CUDA . Существующие подходы, которые начинаются на уровне языка Python, недостаточны в этом отношении и в конечном итоге ограничат эффективную интеграцию ресурсов классических и квантовых вычислений. QODA для HPC NVIDIA разрабатывает открытую спецификацию для программирования гибридных квантово-классических вычислительных архитектур в контексте высокопроизводительных вычислений. Мы анонсируем спецификацию модели программирования QODA и соответствующую платформу компилятора NVQ++, обеспечивающую независимый от серверной части (физический, смоделированный), современный подход C++ с одним исходным кодом к высокопроизводительным вычислениям с квантовым ускорением. QODA изначально совместим с существующими классическими моделями параллельного программирования, такими как CUDA, OpenMP и OpenACC . Эта реализация компилятора также уменьшает представления исходного кода квантово-классического C++ до двоичных исполняемых файлов, которые изначально нацелены на серверные части моделирования с поддержкой cuQuantum. Этот рабочий процесс программирования и компиляции обеспечивает эффективную среду программирования для ускорения исследований и разработок гибридных алгоритмов за счет стандартной совместимости с обработкой графических процессоров и моделированием схем, которая масштабируется от ноутбуков до распределенных архитектур с несколькими узлами и несколькими графическими процессорами. Как показано в примере кода, QODA предоставляет подход к программированию на основе ядра, подобный CUDA, с современным акцентом на C++. Вы можете определить код квантового устройства как автономные объекты функций или лямбда-выражения, аннотированные с помощью __qpu__, чтобы указать, что это должно быть скомпилировано и выполнено на квантовом устройстве. Полагаясь на функциональные объекты вместо свободных функций (подход ядра CUDA), вы можете обеспечить эффективный подход к созданию универсальных стандартных функций квантовой библиотеки, которые могут принимать любое выражение квантового ядра в качестве входных данных. Одним из простых примеров этого является стандартная функция выборки QODA ( qoda::sample(...) ), которая принимает экземпляр квантового ядра и любые конкретные аргументы, для которых ядро должно быть оценено, в качестве входных данных и возвращает знакомое отображение наблюдаемых строк битов измерения кубитов в соответствующие количество наблюдаемых раз. Программисты ядра QODA имеют доступ к некоторым встроенным типам, относящимся к квантовым вычислениям ( qoda::qubit , qoda::qreg , qoda::spin_op , и т. д.), операциям квантовых вентилей и всем традиционным классическим потокам управления, унаследованным от C++. Интересным аспектом подхода к языковой компиляции, описанным ранее, является возможность компилировать коды QODA, которые содержат ядра CUDA, прагмы OpenMP и OpenACC и вызовы API библиотеки CUDA более высокого уровня. Эта функция позволит разработчикам гибридных квантово-классических приложений по-настоящему воспользоваться преимуществами обработки с использованием нескольких графических процессоров в тандеме с квантовыми вычислениями. Будущие варианты использования квантовых вычислений потребуют классической параллельной обработки для таких вещей, как предварительная и постобработка данных, стандартные задачи квантовой компиляции и синдромное декодирование для исправления квантовых ошибок. Ранний взгляд на квантово-классические приложения Прототипом гибридного квантово-классического алгоритма, нацеленного на шумные, краткосрочные архитектуры квантовых вычислений, является вариационный квантовый собственный решатель (VQE). Целью VQE является вычисление минимального собственного значения для данного квантово-механического оператора, такого как гамильтониан, по отношению к параметризованной схеме подготовки состояния, опираясь на вариационный принцип из квантовой механики. Вы выполняете схему подготовки состояния для заданного набора параметров вращения вентиля и выполняете набор измерений, продиктованных структурой квантово-механического оператора, чтобы вычислить ожидаемое значение для этих конкретных параметров. Затем указанный пользователем классический оптимизатор используется для итеративного поиска минимального ожидаемого значения путем изменения этих параметров. Вы можете увидеть, как выглядит общий алгоритм, подобный VQE, с моделью программирования QODA: Основными требуемыми компонентами являются параметризованное выражение ядра Ansatz QODA, показанное в примере кода в виде лямбда-выражения, принимающего расширение std::vector<double> . Фактическое тело этой лямбды зависит от решаемой проблемы, но вы можете создать эту функцию со стандартным потоком управления C++, вызовами квантового ядра в области видимости и логическим набором встроенных квантовых операций. Следующим необходимым компонентом является оператор, математическое ожидание которого требуется для расчета. QODA представляет их как встроенный spin_op тип, и вы можете создавать их программно с вызовами функций Pauli x(int) , y(int) , и . z(int) Затем вам нужен классический оптимизатор функций, который представляет собой общую концепцию в спецификации языка QODA, предназначенную для создания подклассов для конкретных стратегий оптимизации, основанных на градиенте или без градиента. Наконец, язык предоставляет стандартную библиотечную функцию для вызова всего рабочего процесса VQE. Он параметризован на экземпляре ядра QODA, моделирующем анзац подготовки состояния, оператор для которого нужны следующие значения:
Затем вам возвращается структурированная привязка, которая кодирует оптимальное собственное значение и соответствующие оптимальные параметры для схемы подготовки состояния. Предыдущий рабочий процесс является чрезвычайно общим и подходит для разработки вариационных алгоритмов, которые в конечном итоге являются общими по отношению к выражениям квантового ядра, интересующим спиновым операторам и классическим процедурам оптимизации. Но это также демонстрирует основную философию модели программирования QODA: предоставить основные концепции для описания выражений квантового кода, а затем продвигать полезность стандартной библиотеки универсальных функций, обеспечивающих гибридную квантово-классическую алгоритмическую компоновку. Программа раннего интереса QODA Квантовые компьютеры обещают помочь нам решить некоторые из наших самых важных проблем. Мы открываем доступ к квантовым вычислениям ученым и экспертам в областях, где HPC и ИИ уже играют решающую роль, а также обеспечиваем простую интеграцию лучшего на сегодняшний день программного обеспечения с квантовым программным обеспечением. Это значительно ускорит реализацию потенциала квантовых компьютеров. QODA предоставляет открытую платформу для этого, и NVIDIA рада работать со всем квантовым сообществом, чтобы сделать полезные квантовые вычисления реальностью. Подайте заявку на участие в программе QODA Early Interest, чтобы быть в курсе последних разработок NVIDIA в области квантовых вычислений. Для получения дополнительной информации см. Решения NVIDIA для квантовых вычислений с публикациями, видеороликами и многим другим. Об Алексе Маккаски Доп. ресурсы:
|
|