Microsoft разработала единый интерфейс для совместной работы классических и квантовых вычислений

Microsoft разработала единый интерфейс для совместной работы классических и квантовых вычислений
13.10.2020
15014

Microsoft анонсировала промежуточное представление QIR (квантовое промежуточное представление), разработанное на основе  LLVM –  популярный промежуточный язык с открытым исходным кодом. Оно выполняет роль общего интерфейса между языками программирования и целевыми платформами квантовых вычислений.

Немного о LLVM

Проект LLVM – это набор модульных и многократно используемых технологий компилятора и инструментальных цепочек. LLVM разработан на основе независимого от языка промежуточного представления (IR). Он является переносимым языком ассемблера высокого уровня и может быть оптимизирован с помощью различных преобразований за несколько проходов. 

LLVM начинался как исследовательский проект в Университете Иллинойса. Целью проекта была разработка современной стратегии компиляции на основе SSA. Новый компилятор должен был поддерживать как статическую, так и динамическую компиляцию произвольных языков программирования. 

С тех пор LLVM превратился в зонтичный проект, состоящий из ряда подпроектов. Многие из этих проектов являются частью других коммерческих стартапов и стартапов с открытым исходным кодом, а также широко используются в академических исследованиях. 

Код в проекте LLVM находится под лицензией «Apache 2.0 с исключениями LLVM».

Что такое QIR

QIR используется в качестве общего интерфейса между многими языками и целевыми платформами квантовых вычислений. Хотя он поддерживает Q#, QIR не является специфическим для Q#: любой язык программирования для квантовых вычислений на основе вентилей может быть представлен в QIR. Точно так же QIR не зависит от оборудования. Он не определяет квантовую инструкцию или набор вентилей, оставляя это на усмотрение целевой вычислительной среды.

Квантовый логический вентиль (квантовый логический элемент) представляет собой базовую квантовую схему, работающую на небольшом количестве кубитов. Они являются строительными блоками квантовых схем, как классические логические вентили для обычных цифровых схем.

LLVM предоставляет QIR все возможности для описания разнообразных классических вычислений, полностью интегрированных с квантовыми вычислениями. Использование LLVM упрощает интеграцию со многими классическими языками и инструментами, которые уже поддерживаются цепочкой инструментов LLVM. Он также способствует разработке общих оптимизаций и преобразований кода, не зависящих от языка и серверной части.

Microsoft опубликовала черновик спецификации QIR, доступный в новом языковом репозитории Q# на GitHub. Компания выпустила расширение компилятора, которое генерирует QIR из Q#. Его можно найти в ветви feature/QIR репозитория компилятора Q#. Также были опубликованы инструкции по использованию расширения.

Промежуточное представление (ПП)

Обычный шаблон в компиляторах начинает работу с исходного языка в промежуточное представление. Эта промежуточная форма предназначена для представления множества различных исходных языков. Когда известна фактическая целевая платформа выполнения, ПП может быть скомпилировано в исполняемый код.

Такой подход позволяет исходным языкам применять общий набор оптимизаторов и исполняемых генераторов. Это также упрощает компиляцию единого исходного языка для множества различных целей. Промежуточное представление обеспечивает общую платформу для совместного использования между источниками и целевыми объектами и допускает повторное использование в машинах компилятора.

Как выглядит QIR

Поскольку QIR основан на LLVM, он выглядит как LLVM. Простой код Q# для генерации пары Bell:

 

 

При компиляции в QIR:

 

 

В этом фрагменте видны несколько функций QIR:

  • операции в Q# (или любом другом квантовом языке программирования) представлены функциями LLVM;
  • функции LLVM, имена которых начинаются с __quantum__qis__, зарезервированы для представления операций в используемом наборе квантовых команд;
  • кубиты представлены как указатели на именованный тип непрозрачной структуры %Qubit.

QIR наследует все возможности LLVM для выражения циклов, условных выражений и другого сложного потока управления, а также способность LLVM выражать произвольные классические вычисления.

Применение

Приложение, поддерживаемое QIR, включает компилятор Clang на основе LLVM для компиляции QIR в исполняемый машинный код. Таким образом, путем реализации функций квантового набора команд, создается симулятор на C или C++. 

Другое применение – использовать стандартную «проходную» инфраструктуру LLVM для написания квантовых оптимизаторов, работающих с QIR. Независимо от источника и цели проекта, разработанные оптимизаторы работают со множеством различных языков вычислений и вычислительных платформ.

QIR уже был предоставлен партнерам для получения обратной связи. Например, специалист по квантовым компьютерам из Окриджской национальной лаборатории и проект XACC Алекс Маккаски говорит: «ORNL тесно сотрудничает с командой Microsoft, чтобы обеспечить компиляцию программ Q# высокого уровня для разнообразного набора платформ квантового оборудования OLCF посредством интеграции с фреймворк XACC».

Microsoft ожидает большего прогресса во взаимодействии классических и квантовых вычислений на аппаратном уровне. Цель QIR – создать единое представление, которое можно использовать как для существующих систем, так и для более мощных систем в будущем. 

Компания заявила, что по мере развития возможностей квантовых вычислений большинство крупномасштабных приложений будут использовать преимущества совместной работы как классических, так и квантовых ресурсов. 

Напомним, что в июле прошлого года Microsoft расширила набор инструментов Quantum Development Kit и открыла код дополнений для редакторов Visual Studio и VS Code. Теперь в этих редакторах можно комфортно программировать на Q# – языке для квантовых компьютеров.
Автор:
Обозреватель

См. также

Минцифры подготовило проект постановления по запуску платформы, на которой ИТ-специалисты могут пройти добровольное тестирование и подтвердить свою квалификацию.

11.12.2024    995    user1915669    3       

2

Федеральная налоговая служба запустила интерактивный сервис, позволяющий формировать в машиночитаемом виде договоры, контракты, соглашения и спецификации. Чтобы создать документ и скачать получившийся файл, регистрация не требуется.

03.12.2024    795    user2114475    0       

2

Российский Альянс по искусственному интеллекту обновил требования к специалистам по ИИ: вышла новая модель с основными профессиями и навыками. Теперь базовых профессий в сфере ИИ осталось только четыре.

01.11.2024    954    user1915669    0       

3

Система платежей «Волна» по планам сделает возможной бесконтактную оплату для владельцев IPhone в России, а BRICS Pay позволит совершать безналичные расчеты иностранцам по картам Visa и Mastercard.

23.10.2024    1262    AnastasiaKl    0       

4

Конструктор сайтов Wix уходит из России с 12 сентября 2024 года – перестанут работать все российский аккаунты. Сайты, привязанные к аккаунтам, также перестанут работать.

11.09.2024    1241    user1915669    2       

2

ИИ научат разработке цифровых интегральных микросхем – несколько российских научных институтов заявили об участии в проекте. Проект рассчитан на 3 года – с 2024 по 2026.

23.07.2024    876    user1915669    0       

2

Развитие искусственного интеллекта и цифровых сервисов в России стало причиной роста потребности в мощных центрах обработки данных. Эксперты прогнозируют, что дефицит ЦОД, который уже наблюдается сегодня, в ближайшие годы будет только усиливаться.

18.07.2024    988    AnastasiaKl    0       

1

В сентябре 2024 года видеоигры в России начнут маркировать – пока на добровольной основе. Геймерам будут сообщать о семи видах чувствительного (неприятного) контента в игре.

17.07.2024    1066    user1915669    0       

1

Комментарии

Инфостарт бот
1. succub1_5 13.10.20 15:47 Сейчас в теме
Круто конечно звучит. А ошибки пользователей при закрытии месяца уже умеет находить?
2. Brawler 13.10.20 19:23 Сейчас в теме
(1) любой системе будет лучше без пользователей
SKravchenko; +1 Ответить
3. awk 14.10.20 10:39 Сейчас в теме
(2) В любой системе будут ошибки. :)

Оставьте свое сообщение