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

13.10.2020      14870

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# – языке для квантовых компьютеров.

Автор:
Обозреватель


См. также

Новость Искусственный интеллект ИТ-Новость

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    919    AnastasiaKl    3       

3

Новость ИТ-Новость

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    829    VKuser24342747    2       

1

Новость ИТ-Новость

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    611    VKuser24342747    0       

2

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    769    VKuser24342747    2       

1

Новость Мобильные приложения ИТ-Новость

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    990    VKuser24342747    2       

3

Новость GitHub ИТ-Новость

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    626    VKuser24342747    1       

2

Новость ИТ-компания ИТ-Новость

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    785    VKuser24342747    2       

3

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    829    VKuser24342747    0       

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