Call to re-think quantum computers
The constant breathing of the dilution refrigerator as it pumps Helium-3 around the system is the only thing you hear in a lab with a superconducting quantum computer. Every 10 nanoseconds a pulse is triggered from an FPGA, a programmable piece of hardware, that causes the next signal to be sent into the fridge. Other signals spark measurements of the quantum system buried deep inside. All of this happens with exquisite timing as the entire operation lasts less than a single millisecond.
Quantum computers are much more than just qubits – they are a complex control system with different computing elements, from analogue hardware to FPGAs and CPUs. These elements keep the qubits alive. If we want to build great quantum computers, we need the infrastructure to manage this stack. We must start deep down in the control stack and build up.
Early in the development of traditional computers, von Neumann proposed a new model of a computer. One of its first realisations, the EDSAC, was built here in Cambridge by Maurice Wilkes. It was so successful that it was mentioned in three Nobel Prize speeches.
In this architecture, the elements that store information are distinct from those that process information. Programmes and data are stored in memory in the same fashion that enabled reprogramming and automated programming tools. This allowed engineers to build assembly languages and compilers, then high-level languages like FORTRAN and, today, easy-to-use languages like python, with libraries and SaaS tools that have accelerated the pace of the software industry. The stack was built from the bottom up.
The quantum stack is being built upside down. We have qubits and – since we know how to design great languages – many high-level development kits. All of those are based on the circuit model, a CPU directly controlling a QPU, which was popularised in the 1990s in the classic textbook by Nielsen and Chuang. This model disregards what actually goes on in the heterogeneous control stack. It presents quantum computers as black boxes in which only the bottom and the top layers are of relevance. All the middle layers are hidden away.
As programmers we want to use every bit of resource that we have and that means every bit of coherence time. We want to write programmes with the capability to react fast to what’s happening down at the qubit level. This is especially true in the NISQ era in which quantum-classical hybrid algorithms are (hopefully) going to carry us to quantum advantage. To achieve that, all layers of quantum and classical compute will need to be integrated as tightly as possible. This includes the middle layers.
These middle layers of the quantum stack currently consist of fast programmable logic, FPGAs, and non-programmable logic, the waveform generators, digitisers etc. FPGAs allow for fast feedback and flexibility whilst we refine the next generation of quantum hardware. Eventually, they will likely get replaced by custom hardware with a fixed function, for example, error correction, but that custom hardware can’t get built without the software layer providing the infrastructure.
Lowering latency in the quantum system also allows for system testing between program runs, which means you can run more tune-up experiments, such as randomised benchmarking. All of this is essential to reduce the cost and time to build a truly ground-breaking computer that will undoubtably be mentioned in future Nobel Prize speeches.
With that thought in mind, we need to develop a better model of computing – similar to the von Neumann model – and build the stack from the bottom up. This is what will make quantum software thrive. It will allow quantum hardware developers to focus on the physics and build the next generation QPUs.
This is our mission at Riverlane. We are proud to be working with some of the best hardware labs in the world. If you are interested in joining us on this quest, drop us a note at firstname.lastname@example.org.