Kredit:CC0 Public Domain
En nyligen genomförd studie ledd av Princeton University-forskare, i samarbete med University of Maryland och IBM, utforskade den arkitektoniska designen av kvantdatorer (QC). I en artikel som presenterades vid 2019 ACM/IEEE International Symposium on Computer Architecture, forskarna utförde den största verkliga systemutvärderingen av kvantdatorer hittills, använder sju kvantdatorer från IBM, Rigetti och University of Maryland.
Forskarna utvecklade ny programvara för att kompilera från QC-applikationer till hårdvaruprototyper; på felbenägen QC-hårdvara i ett tidigt skede, den här kompilatorn ger upp till 28 gånger förbättringen av programkorrekthetsgrader jämfört med branschkompilatorer. Studien betonar vikten av noggrann instruktionsuppsättning, rika anslutningstopologier och behovet av att samdesigna applikationer och hårdvara för att uppnå bästa prestanda från nya QC-system.
Mycket olika kvantberäkningstekniker
Quantum computing är ett fundamentalt nytt beräkningsparadigm med lovande tillämpningar inom läkemedelsdesign, gödningsmedel design, artificiell intelligens och säker informationsbehandling, bland annat. Från starten på 1980-talet som en rent teoretisk strävan, quantum computing har nu kommit så långt att små prototypsystem är tillgängliga för experiment. Företag som IBM och Rigetti erbjuder nu fri tillgång till sina fem- till 16-qubit-system över molnet. Dessa system kan programmeras med hjälp av sekvenser av instruktioner, även känd som operationer eller grindar.
Analogt med de tidiga dagarna av klassisk datoranvändning som involverar system byggda med vakuumrörsreläkretsar eller transistorer, QC-system kan idag byggas av flera hårdvaruteknologier. Främsta teknologier inkluderar supraledande qubits och fångade jon-qubits, med andra kandidatteknologier också av stort intresse. Dock, till skillnad från klassiska binära datorer, QC-tekniker är så olika att till och med de grundläggande grindoperationerna som kan utföras på en enda qubit skiljer sig mycket åt. Att välja de lämpligaste grindoperationerna som ska exponeras för programvaruanvändning är ett viktigt QC-designbeslut.
Nuvarande QC-system skiljer sig också i termer av tillförlitligheten av operationer mellan par av qubits. Till exempel, i supraledande qubits som de från IBM och Rigetti, qubits skrivs ut på en 2-D wafer med en metod som liknar klassisk processortillverkning. I dessa system, inter-qubit-operationer är endast tillåtna mellan qubits som är nära varandra och anslutna med speciella ledningar. Denna tillverkningsmetod innebär begränsningar i hur olika qubits kan kommunicera, nämligen att tillåta varje qubit i systemet att interagera direkt med endast ett fåtal andra nära-granne qubits. I kontrast, för de fångade jonbitarna i UMD, inter-qubit-operationer utförs med hjälp av vibrationsrörelsen hos en jonkedja. Eftersom detta tillvägagångssätt inte använder fysiska anslutningar i form av ledningar, det tillåter inter-qubit-operationer mellan valfritt par av qubits i systemet. Denna mer expansiva kommunikationsmodell kan vara till hjälp för vissa QC-algoritmer.
En tredje egenskap att notera är att i alla dessa kandidatteknologier, kvanttillståndet är mycket svårt att manipulera exakt. Detta leder till operativa felfrekvenser. Dessutom, omfattningen av dessa fel varierar avsevärt, både över qubits i systemet och över tid. Som ett resultat, dessa stora brusvariationer förändrar driftens tillförlitlighet med upp till en faktor 10. Eftersom QC-algoritmer kopplar ihop flera av dessa operationer, felfrekvenser per operation sammansatta för att göra det svårt för programmet att få rätt svar totalt sett.
Arkitektur för kvantdatorer
De dramatiska skillnaderna mellan olika QC-implementeringar har sporrat forskare att designa programmeringsgränssnitt som skyddar programmeraren från implementeringsdetaljerna och felfrekvenserna för qubits. Ett sådant gränssnitt, allmänt känd som instruktionsuppsättningsarkitektur (ISA), fungerar som en hörnsten i moderna datorsystem.
ISA inkluderar en uppsättning instruktioner som kan köras på hårdvaran och fungerar som ett kontrakt mellan hårdvaruimplementeringen och mjukvaran. Så länge som programmet använder operationer som tillåts av ISA, det kan köras utan ändringar på någon hårdvara, som också implementerar samma ISA, oberoende av eventuella skillnader mellan hårdvaruimplementeringarna.
QC-leverantörer fattar ett antal designbeslut om ISA och anslutningen av qubits. Varje leverantör väljer att tillhandahålla en uppsättning mjukvarusynliga grindar som maskerar de särskilda detaljerna i grindimplementeringarna. Dessa grindar är vanligtvis inte desamma som de grundläggande operationerna, och är vanligtvis valda för att vara operationer som ofta används av kvantalgoritmdesigners och programmerare.
"Vilka grindar bör en leverantör välja att exponera för hårdvara? Ska vi abstrahera dessa grindar i en gemensam ISA över leverantörer eller skräddarsy dem till de underliggande enhetens egenskaper?" frågar Prakash Murali, en doktorand vid Princeton och en författare om studien. Liknande, valet av qubit-anslutning, även om det påverkas av hårdvarutekniken, bestämmer vilka inter-qubit-operationer ett program kan använda. "Hur ska leverantören koppla ihop sina qubits? Hur påverkar samspelet mellan variabla brushastigheter och anslutningsmöjligheter programmen?" säger Murali.
Designinsikter för kvantdatorarkitektur
För att svara på dessa designfrågor, forskarna utvärderade arkitekturen för sju system från tre leverantörer, IBM, Rigetti och UMD, med olika anslutningstopologier, spänner över två hårdvaru-qubit-teknologier. Eftersom kvantdatorer är bullriga, det är standardpraxis inom området att köra program flera tusen gånger och rapportera det svar som förekommer oftast som korrekt svar. För att öka sannolikheten för korrekta körningar, detta arbete utvecklade TriQ, en kompilator för optimering av flera leverantörer som överträffar leverantörskompilatorer med betydande marginaler, trots plattformsoberoende tillämplighet.
Med hjälp av TriQ, forskarna visade att de arkitektoniska designvalen för ett system avsevärt kan påverka korrekthetsgraden för programkörningar, understryker vikten av att göra dessa designval med programkrav i åtanke. De observerade att leverantörens val av den mjukvarusynliga grinduppsättningen kan påverka både antalet operationer som krävs för att köra ett program och korrekthetsgraden. När leverantören avslöjar den ursprungliga eller grundläggande verksamheten, TriQ kan avsevärt minska antalet inbyggda operationer som krävs för att utföra en uppsättning programinstruktioner, och öka korrekthetsgraden. Detta tyder på att på kvantdatorer, det är för tidigt att skydda all kunskap om de ursprungliga instruktionerna genom en enhet eller leverantörsoberoende ISA på ett sätt som liknar klassiska system.
"Vi fann också att matchningen mellan applikationens kommunikationskrav och hårdvaruanslutningstopologin är avgörande. När hårdvaran kan stödja en applikation med endast ett litet antal kommunikationsoperationer, applikationen har vanligtvis högre chanser att köras korrekt. När det finns en obalans, och många kommunikationsoperationer krävs, applikationsriktighetsgraden lider, sa Murali.
Med sina mjukvaruverktyg med öppen källkod nu tillgängliga på github, arbetet i det här dokumentet har potential att erbjuda betydande verkliga förbättringar i kompilering av QC-programvara, samtidigt som det ger möjlighet till bredare insikter om de designmetoder som är mest effektiva för QC-hårdvara.