Microsoft utiliza la LLVM para la computación cuántica

0
25

Microsoft ha introducido una representación intermedia para programas cuánticos, llamada QIR (Quantum Intermediate Representation), para servir como una interfaz común entre los lenguajes de programación para computación cuántica basada en puertas y plataformas de computación cuántica de destino.

Introducido el 23 de septiembre y basado en el lenguaje intermedio LLVM, QIR especifica las reglas para representar construcciones cuánticas en LLVM. No se necesitan extensiones o modificaciones en el LLVM.

QIR soporta el lenguaje de código abierto Q# de Microsoft para el desarrollo de algoritmos cuánticos, pero no es específico de Q#. Cualquier lenguaje para computación cuántica basado en gate puede ser representado. QIR también es agnóstico en cuanto a hardware, no especifica una instrucción cuántica o un conjunto de gates.

Una aplicación citada como habilitada por QIR implica el uso del compilador Clang basado en LLVM para compilar QIR en código máquina ejecutable para un objetivo clásico, proporcionando una ruta para construir un simulador en C o C++ mediante la implementación de funciones de conjuntos de instrucciones cuánticas.

Microsoft ha puesto a disposición el borrador de la especificación QIR en el nuevo repositorio de lenguaje Q# en GitHub. La compañía también ha desplegado una extensión del compilador que genera QIR a partir de Q#; se puede encontrar en la rama feature/QIR del repositorio del compilador Q#. También se han publicado las instrucciones de uso de la extensión.

Microsoft dijo que a medida que las capacidades de computación cuántica maduren, la mayoría de las aplicaciones cuánticas a gran escala aprovecharán tanto los recursos clásicos como los cuánticos trabajando juntos. LLVM ofrece capacidades QIR para describir la rica computación clásica integrada con la computación cuántica. LLVM también soporta la integración con muchos lenguajes clásicos y herramientas ya soportadas por la cadena de herramientas de LLVM.

Un patrón común en los compiladores es comenzar compilando el lenguaje fuente en una representación intermedia, típicamente diseñada para permitir la representación de diferentes lenguajes fuente. Con esta representación intermedia, el código puede ser optimizado y transformado. Una vez que se conoce la plataforma de ejecución de destino real, la representación intermedia puede ser compilada en código ejecutable.

A través de una representación intermedia, muchos lenguajes fuente pueden compartir un conjunto común de optimizadores y generadores de ejecutables. Además, se hace fácil compilar un solo lenguaje fuente para muchos objetivos diferentes. La representación intermedia proporciona una plataforma común para ser compartida entre las fuentes y los objetivos, y permite la reutilización en la maquinaria de compilación.

Microsoft anticipa más avances en la forma en que los cálculos clásicos y cuánticos interactúen a nivel de hardware. Con QIR, el objetivo es proporcionar una representación única que pueda ser utilizada tanto para las capacidades restringidas actuales, como para sistemas más poderosos en el futuro. La comunidad será capaz de desarrollar optimizaciones y transformaciones de código.

Paul Krill, InfoWorld.com