Skip to main content
QUICK REVIEW

[논문 리뷰] Extending C++ for Heterogeneous Quantum-Classical Computing

Thien Nguyen, Anthony Santana|arXiv (Cornell University)|2020. 10. 08.
Quantum Computing Algorithms and Architecture참고 문헌 36인용 수 4
한 줄 요약

이 논문은 C++ 언어 확장 및 컴파일러인 qcor을 제시한다. qcor은 새로운 Clang 플러그인 인터페이스를 통해 이종 양자-고전 컴퓨팅을 원활하게 가능하게 한다. 이 컴파일러는 양자 커널을 XACC 중간 표현으로 컴파일하며, 하드웨어에 종속되지 않는 컴파일링을 지원하고, 양자 최적화 및 오류 정정 워크플로우와 통합되어, 근접된 장치에서 고수준의 성능을 발휘하는 변량 양자 알고리즘을 실행할 수 있도록 한다.

ABSTRACT

We present qcor - a language extension to C++ and compiler implementation that enables heterogeneous quantum-classical programming, compilation, and execution in a single-source context. Our work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language agnostic manner, as well as a hardware-agnostic, retargetable compiler workflow targeting a number of physical and virtual quantum computing backends. qcor leverages novel Clang plugin interfaces and builds upon the XACC system-level quantum programming framework to provide a state-of-the-art integration mechanism for quantum-classical compilation that leverages the best from the community at-large. qcor translates quantum kernels ultimately to the XACC intermediate representation, and provides user-extensible hooks for quantum compilation routines like circuit optimization, analysis, and placement. This work details the overall architecture and compiler workflow for qcor, and provides a number of illuminating programming examples demonstrating its utility for near-term variational tasks, quantum algorithm expression, and feed-forward error correction schemes.

연구 동기 및 목표

  • 근접된 양자 하드웨어를 위한 C++에서 고수준의 성능을 발휘하는 양자-고전 프로그래밍을 가능하게 하기 위해.
  • 다양한 물리적 및 가상의 양자 백엔드를 대상으로 하는, 하드웨어에 종속되지 않고 재목표화 가능한 컴파일러 파이프라인을 제공하기 위해.
  • 회로 최적화, 분석, 큐비트 배치와 같은 양자 컴파일링 작업을 단일 확장 가능한 워크플로우에 통합하기 위해.
  • 변량 방법과 피드포워드 오류 정정을 포함한 고급 양자 알고리즘을 단일 소스 C++ 환경 내에서 지원하기 위해.
  • 표준 준수이고 오픈소스인 컴파일러 인프라를 통해 기존 고성능 컴퓨팅 스택과의 밀접한 통합을 촉진하기 위해.

제안 방법

  • qcor 컴파일러는 C++ 내에서 양자 커널 표현식을 위한 도메인 특화 언어 사전 처리를 가능하게 하는 새로운 Clang 플러그인인 SyntaxHandler를 사용한다.
  • 양자 커널은 하드웨어에 종속되지 않는 컴파일링과 다양한 양자 백엔드로의 재목표화를 가능하게 하는 XACC 중간 표현으로 변환된다.
  • 시스템은 XACC 프레임워크와 통합되어, 회로 최적화 및 큐비트 배치와 같은 양자 컴파일링 루틴을 사용자 정의 가능한 후크를 노출한다.
  • 고수준 라이브러리인 qcor_hybrid는 ADAPT-VQE와 같은 고급 알고리즘을 추상화하여, 저수준 회로 구성 및 최적화를 간소화한다.
  • 컴파일러는 피드포워드 제어와 기울기 기반 최적화를 지원하여, VQE 및 QAOA와 같은 반복적 양자 알고리즘을 가능하게 한다.
  • 워크플로우는 완전히 오픈소스이며 GitHub를 통해 이용 가능하며, 시뮬레이션과 실제 양자 프로세서에서의 실행을 모두 지원한다.

실험 결과

연구 질문

  • RQ1C++는 어떻게 단일 소스, 이종 양자-고전 프로그래밍 모델 내에서 양자 커널을 원천적으로 표현할 수 있는가?
  • RQ2성능과 확장성을 유지하면서도 하드웨어에 종속되지 않고 재목표화 가능한 양자 커널 컴파일링을 가능하게 하는 컴파일러 아키텍처는 무엇인가?
  • RQ3최적화, 분석, 큐비트 배치와 같은 양자 컴파일링 작업은 C++ 기반 시스템 내에서 어떻게 단일 확장 가능한 워크플로우에 통합될 수 있는가?
  • RQ4ADAPT-VQE와 같은 고수준 양자 알고리즘은 성능 오버헤드를 최소화하면서 C++에서 효율적으로 표현되고 실행될 수 있는가?
  • RQ5근접된 양자 응용을 위한 C++ 기반 양자 컴파일러에서 피드포워드 제어와 기울기 기반 최적화는 어떻게 지원될 수 있는가?

주요 결과

  • qcor 컴파일러는 C++ 양자 커널을 XACC 중간 표현으로 성공적으로 컴파일하여, TNQVM 시뮬레이터를 포함한 여러 양자 백엔드에서 실행할 수 있도록 했다.
  • ADAPT-VQE 알고리즘이 qcor_hybrid 라이브러리를 사용하여 성공적으로 구현되고 실행되었으며, 네 히드로젠 체인 시스템에서 약 -1.81363 하트리의 에너지로 수렴하였다.
  • VQE 워크플로우 내에서 반복적이고 적응형 회로 앤사츠 생성을 지원하여, 기울기 분석 기반으로 가장 관련성이 높은 파울리 또는 페르미온 연산자를 동적으로 선택할 수 있었다.
  • L-BFGS 최적화와 중심 유한 차분 기울기 계산이 통합되어 ADAPT 프레임워크 내에서 효율적인 변량 매개변수 업데이트를 가능하게 하였다.
  • 컴파일러는 피드포워드 오류 정정 기법과 기타 복잡한 제어 흐름을 지원하여 고급 양자-고전 워크로드에 대한 실현 가능성을 입증하였다.
  • 전체 스택은 오픈소스이며 https://github.com/ornl-qci/qcor 에서 이용 가능하여 커뮤니티의 확장과 HPC 워크로드와의 통합을 가능하게 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.