79
A systems view of quantum computer engineering Wednesday, October 27, 2021 Rutgers University Yipeng Huang

A systems view of quantum computer engineering

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A systems view of quantum computer engineering

A systems view of quantum computer engineering

Wednesday, October 27, 2021Rutgers University

Yipeng Huang

Page 2: A systems view of quantum computer engineering

Position statement for this graduate seminar

• Quantum computer engineering has become important.

• Requires computer systems expertise beyond quantum algorithms and quantum device physics.

Page 3: A systems view of quantum computer engineering

The role of abstractions in classical computing

What is an abstraction?

What are examples of abstractions?

Why are abstractions good and important?

Page 4: A systems view of quantum computer engineering

The role of abstractions in classical computing

What is an abstraction?

What are examples of abstractions?• APIs, Python, C, assembly, machine code (ISA), CPU-memory (von

Neumann), pipeline, gates, binary, discrete time evolution

Why are abstractions good and important?Hides details so that users & programmers can be creative

Page 5: A systems view of quantum computer engineering

The role of abstractions in classical computing

Are abstractions always good?

What are examples of deliberately breaking abstractions?

Page 6: A systems view of quantum computer engineering

The role of abstractions in classical computing

Are abstractions always good?

What are examples of deliberately breaking abstractions?• Python calling C binary (Breaking interpreted high level PL abstraction)• Assembly code routines (Breaking structured programming abstraction)• FPGAs (Breaking ISA abstraction)• ASICs (Breaking von Neumann abstraction)

Page 7: A systems view of quantum computer engineering

These two lectures: Broad view of open challenges in quantum computer engineering

• A complete view of full-stack quantum computing.

• In short, challenges are in finding and building abstractions.

• In each layer, why we don’t or can’t have good abstractions right now.

• Recent and rapidly developing field of research.

A Microarchitecture for a SuperconductingQuantum Processor. Fu et al.

Page 8: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 9: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 10: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.

Page 11: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.

Fault tolerant, error corrected quantum algorithms

Noisy, intermediate-scale quantum algorithms

Page 12: A systems view of quantum computer engineering

Shor’s integer factoring algorithm

Factoring underpins cryptosystems.For number represented as N bits—

Classical algorithm: needs 𝑶(𝟐𝟑 𝑵) operations

Factoring 512-bit integer: 8400 years. 1024-bit integer: 13*1012 years.

Quantum algorithm: needs 𝑶(𝑵𝟐 𝐥𝐨𝐠 𝑵 ) operationsFactoring 512-bit integer: 3.5 hours. 1024-bit integer: 31 hours.

A Practical Architecture for Reliable Quantum Computers. Oskin et al.

Page 13: A systems view of quantum computer engineering

A Blueprint for Building a Quantum Computer. Van Meter and Horsman.

Page 14: A systems view of quantum computer engineering

An Outlook for Quantum Computing. Maslov et al.

Page 15: A systems view of quantum computer engineering

An Outlook for Quantum Computing. Maslov et al.

How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. Gidneyand Ekerå. 2019.

Page 16: A systems view of quantum computer engineering

An Outlook for Quantum Computing. Maslov et al.

Need applications to motivate further research.

Page 17: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.

Fault tolerant, error corrected quantum algorithms

Noisy, intermediate-scale quantum algorithms

Page 18: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 19: A systems view of quantum computer engineering

Underappreciated fact:Programming languages aid discovery of algorithms

Algorithms

Coding

Programs

Computer science

Page 20: A systems view of quantum computer engineering

Underappreciated fact:Programming languages aid discovery of algorithmshttps://www.geeksforgeeks.org/random-walk-implementation-python/

Take classical random walks as an example. Notice:1. Ease of going from 1D example to 2D example (reusable code).2. Ease of generating a visualization.3. Code and simulation reveals properties useful for new algorithms.

Page 21: A systems view of quantum computer engineering

Underappreciated fact:Programming languages aid discovery of algorithms

Algorithms

Coding

Programs

Computer science

Page 22: A systems view of quantum computer engineering

Specification of algorithm as a procedure

https://www.geeksforgeeks.org/random-walk-implementation-python/

Take classical random walks as an example. Notice:1. Import library for random coin toss2. Data structures for time series3. Standard operators for increment and decrement

Page 23: A systems view of quantum computer engineering

What do we mean by high-level language?

// Create a list of strings ArrayList<String> al = new ArrayList<String>(); al.add("Quantum"); al.add("Computing"); al.add("Programs"); al.add("Systems");

/* Collections.sort method is sorting the elements of ArrayList in ascending order. */Collections.sort(al);

Page 24: A systems view of quantum computer engineering

High-level language hides all these concerns:

• Choice of sorting algorithm implementation and comparator function on Strings• Encoding of Strings as binary numbers• Memory allocation and deallocation for String storage• Execution of Java code on different ISAs• Correctness of library implementation• …

Page 25: A systems view of quantum computer engineering

• We want to get to that point with quantum programming

• Want to do things such as: initialize quantum data, perform search, without worrying about the detailed implementation

Page 26: A systems view of quantum computer engineering

Programmers’ time is scarce.Classical computing resources are abundant. Nonetheless, abstractions are expensive.

"There’s plenty of room at the Top: What will drive computer performance after Moore’s law?" Leiserson et al. Science. 2020.

Page 27: A systems view of quantum computer engineering

Programming languages aid discovery of algorithms:Is it currently true for quantum computer science?

Quantum algorithms

Quantum coding

Quantum programs

Quantum computer

science

Only ~100 known quantum algorithms

Page 28: A systems view of quantum computer engineering

Specification of quantum algorithmas a quantum procedure

Quantum algorithms

Quantum coding

Quantum programs

Quantum computer

science

As another example, QAOA on Cirq exercise:https://rutgers.instructure.com/courses/73314/assignments/1017995

Gates to code that we can run.

Need quantum equivalent of:1. Partition representation2. Edge constraints3. Way to perturb partitioning

Page 29: A systems view of quantum computer engineering

Specification of quantum algorithmas a quantum procedure

Quantum algorithms

Quantum coding

Quantum programs

Quantum computer

science

Functional quantum programming languages(emphasis on specifying the mathematics)Microsoft LiquidQuipperQWIREMicrosoft Q#Etc.

Imperative quantum programming languages(emphasis on specifying the resources)ScaffoldMicrosoft ProjectQRigetti PyQuilIBM QiskitGoogle CirqEtc.

Page 30: A systems view of quantum computer engineering

Programming languages aid discovery of algorithms:Is it currently true for quantum computer science?

Quantum algorithms

Quantum coding

Quantum programs

Quantum computer

science

Only ~100 known quantum algorithms

Some progress in the past two years.Qiskit AquaOpenFermion-CirqTensorFlow Quantum

Given the implementation for Deutsch’s algorithm, is it obvious how to implement Deutsch-Jozsa’s algorithm?

Page 31: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.

Page 32: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 33: A systems view of quantum computer engineering

12 / 15From: https://www.seas.upenn.edu/~cis500/current/lectures/lec01.pdf

Page 34: A systems view of quantum computer engineering

Execution in target machine w/ facilities for validation

• Exception handling.• Printf debugging.• GDB breakpoints.• Assertions.• Etc.

Page 35: A systems view of quantum computer engineering

• “Exception handling” (i.e., quantum error correction) is costly.• No printf. No intermediate measurements.• Can’t set arbitrary breakpoints.• Few obvious assertions.

Page 36: A systems view of quantum computer engineering

Even simple quantum programming bugs lead to non-obvious symptoms

U

q0

q1 C

q0

q1 B A

D=

Page 37: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

U

q0

q1 C

q0

q1 B A

D=

Even simple quantum programming bugs lead to non-obvious symptoms

Page 38: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

U

q0

q1 C

q0

q1 B A

D=

Elementary single-qubit operations

Even simple quantum programming bugs lead to non-obvious symptoms

Page 39: A systems view of quantum computer engineering

U

q0

q1 C

q0

q1 B A

D=

Elementary two-qubit operationsRz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Even simple quantum programming bugs lead to non-obvious symptoms

Page 40: A systems view of quantum computer engineering

Unneeded

U

q0

q1 C

q0

q1 B A

D=

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Even simple quantum programming bugs lead to non-obvious symptoms

Page 41: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D

Correct,operation A unneeded

Correct,operation C unneeded

Unneeded

U

q0

q1 C

q0

q1 B A

D=

Even simple quantum programming bugs lead to non-obvious symptoms

Page 42: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D

Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Correct,operation C unneeded

Incorrect,angles flipped

Unneeded?But signs on angles wrong!

U

q0

q1 C

q0

q1 B A

D=

Many ways to translate basic quantum operations to program code—many details to get right!

Even simple quantum programming bugs lead to non-obvious symptoms

Page 43: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D

Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Correct,operation C unneeded

Incorrect,angles flipped

|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1

U

q0

q1 C

q0

q1 B A

D=

Even simple quantum programming bugs lead to non-obvious symptoms

Page 44: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D

Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Correct,operation C unneeded

Incorrect,angles flipped

|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1

U

q0

q1 C

q0

q1 B A

D=

Even simple quantum programming bugs lead to non-obvious symptoms

Page 45: A systems view of quantum computer engineering

Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D

CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D

Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D

Correct,operation A unneeded

Correct,operation C unneeded

Incorrect,angles flipped

|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1

U

q0

q1 C

q0

q1 B A

D=

Even simple quantum programming bugs lead to non-obvious symptoms

Page 46: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 46

Detailed debugging of Shor’s factorization algorithm

Image credit: Metodi, Faruque, and Chong, Quantum Computing for Computer Architects, 2nd Ed., p26

Page 47: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 47

Detailed debugging of Shor’s factorization algorithm

Image credit: Metodi, Faruque, and Chong, Quantum Computing for Computer Architects, 2nd Ed., p26

Quantum part of algorithm Classical post processing

Page 48: A systems view of quantum computer engineering

48

Bug type 3-B: mistake in composing gates using mirroringMirror imagesubmodules

Mirror imagesubmodules

Page 49: A systems view of quantum computer engineering

Assertions on classical & superposition stateshelp us decide whetherprograms are correct

Testbench for quantum Fourier transform,consisting of controlled-rotations

Page 50: A systems view of quantum computer engineering

Assertions on classical & superposition stateshelp us decide whetherprograms are correct

Testbench for quantum Fourier transform,consisting of controlled-rotations

QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion

Page 51: A systems view of quantum computer engineering

Assertions on classical & superposition stateshelp us decide whetherprograms are correct

Testbench for quantum Fourier transform,consisting of controlled-rotations

QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion

Page 52: A systems view of quantum computer engineering

Assertions on classical & superposition stateshelp us decide whetherprograms are correct

Testbench for quantum Fourier transform,consisting of controlled-rotations

QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion

Flawed inversion caught infailure of classical assertionbased on Chi-squared tests

Page 53: A systems view of quantum computer engineering

Assertions on classical & superposition stateshelp us decide whetherprograms are correct

Testbench for quantum Fourier transform,consisting of controlled-rotations

QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion

Flawed inversion caught infailure of classical assertionbased on Chi-squared tests

Page 54: A systems view of quantum computer engineering

Toolchain for debugging programs with tests on measurements

Breakpoint annotations

Quantum assembly

code

Simulate / execute on prototype quantum computer

Ensembleof

measurements

Statistical test:Is therea bug?

Assertion annotations

Page 55: A systems view of quantum computer engineering

QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 55

Quantum program bug types

1. Quantum initial values2. Basic operations3. Composing operations

A. IterationB. Mirroring

4. Classical input parameters5. Garbage collection of qubits

Defenses, debugging, and assertions

1. Preconditions2. Subroutines / unit tests3. Quantum specific language support

A. Numeric data typesB. Reversible computation

4. Algorithm progress assertions5. Postconditions

A first taxonomy of quantum program bugs and defenses.

Page 56: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 57: A systems view of quantum computer engineering

Hq0m0

q1m0

q0m2

q1m3

PDγ=.36

q0m1

Page 58: A systems view of quantum computer engineering

Hq0m0

q1m0

q0m2

q1m3

PDγ=.36

q0m1

q0m0

q0m2rv

q1m0

q0m1

q1m3

Page 59: A systems view of quantum computer engineering

Hq0m0

q1m0

q0m2

q1m3

PDγ=.36

q0m1

q0m0

q0m2rv

q1m0

q0m1

q1m3

Page 60: A systems view of quantum computer engineering

Hq0m0

q1m0

q0m2

q1m3

PDγ=.36

q0m1

q0m0

q0m2rv

q1m0

q0m1

q1m3

Benchmarking ZX Calculus Circuit Optimization Against Qiskit Transpilation. Yeh et al.

Page 61: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 62: A systems view of quantum computer engineering

Role of simulation in classical computer engineering

• VirtualBox• Gem5• Synopsys / Cadence• Spice

Warner Brothers Pictures

Page 63: A systems view of quantum computer engineering

Why is simulation important?

• "Developing good classical simulations (or even attempting to and failing) would also help clarify the quantum/classical boundary.”—Aram Harrow

• Development and debugging of quantum algorithm implementations

Page 64: A systems view of quantum computer engineering

Classical simulations of quantum computing

Quantum supremacy using a programmable superconducting processor (supplement). Arute et al.

Page 65: A systems view of quantum computer engineering

• Until we have quantum computer systems, building and testing quantum computers will rely on classical computer systems.

Page 66: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 67: A systems view of quantum computer engineering

A small set of quantum gates are universal…

Quantum Computer Systems for Scientific Discovery. Alexeev et al.

Page 68: A systems view of quantum computer engineering

…but those universal gates decompose various ways…

A systems perspective of quantum computing. Matsuura et al.

Page 69: A systems view of quantum computer engineering

…and different quantum hardware support different gates.

Architecting Noisy Intermediate-Scale Quantum Computers: A Real-System Study. Murali et al.

Page 70: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 71: A systems view of quantum computer engineering

Challenges and Opportunities of Near-Term Quantum Computing Systems. Corcoles et al.

Page 72: A systems view of quantum computer engineering

Compiling quantum program abstractions to optimal quantum execution

Compilation for maximum correctness, while respecting constraints:• variable qubit, operation, measurement reliability• connectivity constraints• parallelism

Will be topic of chapter on “extracting success.”

Page 73: A systems view of quantum computer engineering

All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices

Page 74: A systems view of quantum computer engineering

Challenges and Opportunities of Near-Term Quantum Computing Systems. Corcoles et al.

Page 75: A systems view of quantum computer engineering

Quantum Computing Progress and Prospects. National Academies Press.

Page 76: A systems view of quantum computer engineering

Quantum Computing Progress and Prospects. National Academies Press.

Intel

Page 77: A systems view of quantum computer engineering

Intel Computer History Museum

Page 78: A systems view of quantum computer engineering

Intel

Wikipedia

Page 79: A systems view of quantum computer engineering

Position statement for this graduate seminar

• Quantum computer engineering has become important.

• Requires computer systems expertise beyond quantum algorithms and quantum device physics.