Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De MicrosoftQuantum Development-kit (QDK) bevat kwantumsimulators die kwantumprogramma's uitvoeren op uw lokale computer. Gebruik deze lokale simulators om uw programma's te testen en te ontwikkelen voordat u ze naar Azure Quantum targets verzendt.
De QDK biedt vier primaire simulators voor het uitvoeren van kwantumprogramma's:
- De spaarzame simulator
- De stabilisatorsimulator
- De GPU simulator
- De CPU simulator
De spaarzame simulator
De sparse simulator vertegenwoordigt qubitstatussen als sparse vectoren en gebruikt sparse matrix algebra om snel programma's te simuleren die weinig niet-nul-amplitudes genereren. Het is de standaardsimulator voor Q# en OpenQASM programma's in de QDK extensie en voor de qsharp.run api openqasm.runPython 's. Gebruik de sparse-simulator wanneer u snelle simulaties van Q#, OpenQASMprogramma's of Qiskit programma's wilt gebruiken of wanneer u de kwantumstatus van uw programma tijdens simulatie wilt weergeven.
De sparse-simulator is beschikbaar in zowel de QDK extensie voor Visual Studio Code (VS Code) als het QDKPython pakket. Deze simulator is de enige simulator die beschikbaar is in de QDK extensie, dus de extensie gebruikt deze automatisch wanneer u Q#- en OpenQASM-programma's uitvoert in VS Code. Gebruik in VS Codede functie Q#DumpMachine of de debugger om qubitstatusvectoren weer te geven op verschillende punten in de simulatie.
Zowel de VS Code extensie als het Python pakket ondersteunen ruismodellen voor sparsesimulaties van Q# en OpenQASM programma's. Alleen het Python pakket ondersteunt sparse-simulatie van Qiskit programma's, maar biedt geen ondersteuning voor ruismodellen voor Qiskit simulaties.
Zie QDK voor meer informatie over het uitvoeren van simulaties in de extensie.
De stabilisatorsimulator
De stabilisatorsimulator simuleert snel en efficiënt Clifford-gedomineerde programma's met duizenden qubits. Clifford poorten zijn veelvoorkomende onderdelen van kwantumfoutcorrectiecircuits. Clifford bewerkingen verhogen het aantal stabilisatorvertakkingen niet, zodat de simulator ze efficiënt kan toepassen, zelfs in brede circuits. Veelvoorkomende Clifford bewerkingen zijn:
- $X$, $Y$ en $Z$
- $S$ en $S^\dagger$
- $H$, of Hadamard
- $CX$, $CY$ en $CZ$
- $SWAP$
De stabilisatorsimulator maakt ook gebruik van stabilisatorvertakkingen om circuits met een beperkt aantal niet-Clifford-bewerkingen te simuleren. De simulator ondersteunt de volgende niet-Cliffordbewerkingen:
- $T$ en $T^\dagger$
- Willekeurige hoek $R_X$, $R_Y$, $R_Z$, $R_{XX}$, $R_{YY}$, en $R_{ZZ}$ rotaties
Elke niet-Clifford-bewerking kan het aantal stabilisatortakken verhogen. Het toevoegen van niet-Cliffordbewerkingen kan het geheugengebruik en de opnametijd exponentieel verhogen. Gebruik de stabilisatorsimulator voor brede circuits met voornamelijk Clifford bewerkingen en een bescheiden aantal niet-Clifford bewerkingen. Gebruik een sparse- of full-state simulator voor circuits met veel niet-Clifford-bewerkingen.
De stabilisatorsimulator ondersteunt adaptieve uitvoering, Pauli ruis en qubitverlies. Het is beschikbaar in het QDKQ#-pakket voor OpenQASM, QIR, Qiskit en QDK-programma's, maar is niet beschikbaar in de VS Code-extensie voor Python.
Gebruik in API's met een simulatorkiezer "stabilizer" of "clifford" om de stabilisatorsimulator te selecteren.
De GPU simulator
De GPU simulator is een volledig-toestandsimulator die gebruikmaakt van uw machine's GPU om veel uitvoeringen van uw kwantumprogramma parallel uit te voeren. De simulator ondersteunt alle poorttypen, maar vereist aanzienlijke rekenresources. De simulator kan maximaal 27 qubits modelleren. De kracht van de machine GPU bepaalt de prestaties, maar de prestaties zijn optimaal voor programma's met ongeveer 20 qubits en veel opnamen.
De GPU simulator accepteert QIR of Qiskit als invoer via bepaalde QDKPython pakket-API's. De VS Code extensie biedt geen ondersteuning voor de GPU simulator. Er is ook uitgebreide ondersteuning voor ruismodellen op elk type kwantumpoort of -bewerking.
De CPU simulator
Net als de GPU simulator is de CPU simulator een full-state-simulator die programma's uitvoert met elk type kwantumpoort. Maar het is langzamer omdat er niet meerdere runs parallel kunnen worden uitgevoerd. Deze simulator schaalt tot ongeveer 25 qubits, maar vertraagt exponentieel met meer qubits vanwege geheugenproblemen. Gebruik de CPU simulator wanneer uw computer geen GPU heeft, of wanneer uw programma weinig qubits heeft en er niet veel opnamen nodig zijn.
De CPU simulator accepteert QIR of Qiskit invoer. U kunt het gebruiken via bepaalde QDKPython pakket-API's, maar niet via de VS Code extensie. Er is ook uitgebreide ondersteuning voor ruismodellen op elk type kwantumpoort of -bewerking.
Welke simulator moet ik gebruiken?
Houd rekening met deze factoren wanneer u een simulator kiest:
- Uw ontwikkelomgeving (VS Code of Python)
- Het kwantumprogrammeerframework dat u gebruikt
- De complexiteit van uw programma en het aantal opnamen
- De hardwaremogelijkheden van uw lokale computer
- De Azure Quantum doelapparatuur of andere kwantumhardware waarop u uw programma's wilt uitvoeren
- De ruismodellen die u wilt bouwen
De volgende tabel bevat een overzicht van de beschikbaarheid van elke QDK simulator en ondersteunde frameworks voor kwantumprogrammering:
| Simulator | Availability | Ondersteunde frameworks |
|---|---|---|
| Spaarzaam | VS Code extensie en Python pakket | Q#, OpenQASM, Qiskit |
| Stabilizer | Python Pakket | Q#,OpenQASM,Qiskit,QIR |
| GPU | Python Pakket | Qiskit, QIR |
| CPU | Python Pakket | Qiskit, QIR |
Simulaties in de QDK extensie voor VS Code
De QDK extensie voor VS Code ondersteunt alleen de sparse-simulator. Als u de sparse-simulator wilt gebruiken, voert u uw Q#- of OpenQASM-bestand uit in VS Code. U kunt Q#ruismodellen toevoegen aan sparse simulaties van VS Codeprogramma's in Pauli, maar niet aan OpenQASMprogramma's.
Simulaties in het QDKPython pakket
Het QDKPython pakket ondersteunt meerdere frameworks voor kwantumprogrammering en alle vier QDK de simulators. Compatibiliteit varieert per framework en API.
De volgende tabel bevat de simulators en programmeerframeworks die door elke Python API worden ondersteund:
| Python API | Spaarzaam | Stabilizer | GPU | CPU | Programmeerframework |
|---|---|---|---|---|---|
qsharp.run |
Supported | Supported | Niet ondersteund | Niet ondersteund | Q# |
openqasm.run |
Supported | Supported | Niet ondersteund | Niet ondersteund | OpenQASM |
qiskit.QSharpBackend |
Supported | Niet ondersteund | Niet ondersteund | Niet ondersteund | Qiskit |
simulation.NeutralAtomDevice |
Niet ondersteund | Supported | Supported | Supported | QIR |
qiskit.NeutralAtomBackend |
Niet ondersteund | Supported | Supported | Supported | Qiskit |
simulation.run_qir |
Niet ondersteund | Supported | Supported | Supported | QIR |