Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Komputasi Quantum masih merupakan teknologi yang muncul. Tidak semua perangkat keras kuantum dapat menjalankan semua program kuantum. Misalnya, hanya perangkat keras tertentu yang dapat melakukan pengukuran pertengahan sirkuit, yang diperlukan untuk menjalankan program dengan cabang bersyarat berdasarkan hasil pengukuran kubit.
Ketika Anda mengirimkan program untuk dijalankan pada Azure Quantum, program Anda dikonversi ke format representasi perantara kuantum (QIR). QIR tidak bergantung pada bahasa pemrograman atau jenis perangkat keras kuantum yang dijalankan program Anda. Microsoft Quantum Development Kit (QDK) mendukung beberapa QIR profil target untuk kemampuan perangkat keras yang berbeda.
Untuk informasi selengkapnya tentang QIR, lihat Representasi perantara Quantum.
Gambaran umum profil target
Azure Quantum dan QDK mendukung beberapa profil target QIR. Jenis profil target yang Anda pilih menentukan konstruksi pemrograman mana yang dapat digunakan program Anda.
- Percabangan kondisional dengan pernyataan
ifberdasarkan hasil pengukuran qubit - Operasi aritmatika pada angka titik mengambang yang dihitung dari hasil pengukuran kubit
- Loop tetap dan tak terbatas berdasarkan hasil pengukuran qubit
Tabel berikut mencantumkan semua QIR profil target di QDK serta konstruksi pemrograman yang didukung oleh profil target tersebut, diurutkan dari yang paling ketat hingga yang paling tidak ketat.
| QIR profil sasaran | Cabang kondisional | Operasi titik mengambang | Loops |
|---|---|---|---|
| Base | ❌ | ❌ | ❌ |
| Adaptive RI | ✅ | ❌ | ❌ |
| Adaptive RIF | ✅ | ✅ | ❌ |
| Adaptive | ✅ | ✅ | ✅ |
| Unrestricted | ✅ | ✅ | ✅ |
Atur profil target di QDK
Untuk menjalankan program pada simulator QDK atau target Azure Quantum, Anda perlu menetapkan profil target QIR. Jika Anda tidak mengatur profil target secara manual, QDK coba atur profil yang sesuai secara otomatis untuk target yang dipilih.
saat mengirimkan program untuk dijalankan melalui Azure Quantum layanan, QDK mencoba untuk secara otomatis memilih profil yang sesuai untuk target eksekusi yang dipilih.
Base QIR profil
Profil target dasar QIR adalah yang paling ketat. Gunakan profil dasar untuk program yang lebih sederhana yang tidak menggunakan struktur pemrograman klasik seperti cabang dan perulangan. Jika target perangkat keras kuantum Anda tidak dapat melakukan pengukuran pertengahan sirkuit, maka Anda mungkin perlu menggunakan profil dasar.
Target berikut Azure Quantum dapat menjalankan program yang menggunakan profil dasar QIR .
| Provider | Simulator | Unit Pengolahan Kuantum (QPU) |
|---|---|---|
| IonQ | ionq.simulator |
ionq.qpu.* |
| Rigetti | rigetti.sim.* |
rigetti.qpu.* |
Untuk mempelajari selengkapnya tentang penyedia ini Azure Quantum , lihat penyedia IonQ dan penyedia Rigetti.
Mengatur profil dasar
Untuk mengatur profil target dasar QIR di QDK ekstensi untuk Visual Studio Code (Visual Studio Code), pilih salah satu opsi berikut.
Jika Anda menyiapkan proyek Q#, tambahkan perintah berikut ke file proyek
qsharp.jsonAnda.{ "targetProfile": "base" }Jika Anda bekerja dalam
.qsfile yang bukan bagian dari proyek Q#, atur profil target langsung dalam kode Q#Anda. Untuk melakukannya, tambahkan@EntryPoint(Base)pada baris sebelum operasi entry point di program Anda.@EntryPoint(Base) operation Main() : Unit { ... }
Untuk mengatur profil target dasar dalam QDK paket Python, jalankan kode berikut.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Base)
Batasan pada program Q# dengan profil dasar
Profil target dasar dapat menjalankan berbagai program Q#. Batasan utamanya adalah bahwa program Q# tidak dapat melakukan perbandingan logis dengan Result nilai jenis dari operasi pengukuran.
Misalnya, Anda tidak dapat menjalankan operasi berikut FlipQubitOnZero pada target dasar karena program berisi if pernyataan yang menggunakan hasil pengukuran.
@EntryPoint(Base)
operation FlipQubitOnZero() : Unit {
use q = Qubit();
if M(q) == Zero {
X(q);
}
}
Adaptive RI QIR profil
Profil target RI adaptif dapat menjalankan berbagai program yang lebih luas daripada profil dasar, tetapi masih memiliki beberapa batasan.
Adaptive RI menargetkan program dukungan yang menggunakan pengukuran pertengahan sirkuit dalam pernyataan kondisi if . Jika perangkat keras kuantum Anda dapat melakukan pengukuran pertengahan sirkuit dan program Anda menggunakan if pernyataan berdasarkan hasil pengukuran, maka Anda mungkin perlu menggunakan profil RI adaptif.
Misalnya, program Q# berikut dapat berjalan pada target RI adaptif.
@EntryPoint(Adaptive_RI)
operation MeasureQubit(q : Qubit) : Result {
return M(q);
}
operation SetToZero(q : Qubit) : Unit {
if MeasureQubit(q) == One { X(q); }
}
Target berikut Azure Quantum dapat menjalankan program yang menggunakan profil target RI adaptif.
| Provider | Simulator | Unit Pengolahan Kuantum (QPU) |
|---|---|---|
| Quantinuum | quantinuum.sim.h2-1e |
quantinuum.qpu.h2-1 |
| Quantinuum | quantinuum.sim.h2-2e |
quantinuum.qpu.h2-2 |
Untuk informasi selengkapnya tentang Quantinuum di Azure Quantum, lihat Penyedia Quantinuum.
Mengatur profil RI adaptif
Untuk mengatur profil target RI QIR adaptif dalam QDK ekstensi untuk Visual Studio Code, pilih salah satu opsi berikut.
Jika Anda menyiapkan proyek Q#, tambahkan perintah berikut ke file proyek
qsharp.jsonAnda:{ "targetProfile": "adaptive_ri" }Jika Anda bekerja dalam
.qsfile yang bukan bagian dari proyek Q#, atur profil target langsung dalam kode Q#Anda. Untuk melakukannya, tambahkan@EntryPoint(Adaptive_RI)pada baris sebelum operasi entry point di program Anda.@EntryPoint(Adaptive_RI) operation Main() : Unit { ... }
Untuk mengatur profil target RI adaptif dalam QDK paket Python, jalankan kode berikut.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive_RI)
Adaptive RIF QIR profil
Profil target RIF adaptif memiliki kemampuan yang sama dengan profil RI adaptif, tetapi juga mendukung program yang berisi operasi aritmatika floating point. Jika perangkat keras kuantum Anda dapat melakukan pengukuran pertengahan sirkuit, dan program Anda menggunakan if pernyataan dan angka titik mengambang yang dihitung dari hasil pengukuran, maka Anda mungkin perlu menggunakan profil RIF adaptif.
Misalnya, program Q# berikut dapat berjalan pada target RIF adaptif.
@EntryPoint(Adaptive_RIF)
operation DynamicFloat() : Double {
use q = Qubit();
H(q);
mutable f = 0.0;
if M(q) == One {
f = 0.5;
}
Reset(q);
return f;
}
Azure Quantum tidak memiliki target RIF adaptif saat ini, tetapi Anda dapat menjalankan program untuk target RIF adaptif pada simulator lokal QDK . Untuk informasi selengkapnya tentang simulator di QDK, lihat Gambaran umum simulator kuantum di QDK.
Mengatur profil RIF adaptif
Untuk mengatur profil target RIF QIR adaptif di QDK ekstensi untuk Visual Studio Code, pilih salah satu opsi berikut.
Jika Anda menyiapkan proyek Q#, tambahkan perintah berikut ke file proyek
qsharp.jsonAnda:{ "targetProfile": "adaptive_rif" }Jika Anda bekerja dalam
.qsfile yang bukan bagian dari proyek Q#, atur profil target langsung dalam kode Q#Anda. Untuk melakukannya, tambahkan@EntryPoint(Adaptive_RIF)pada baris sebelum operasi entry point di program Anda.@EntryPoint(Adaptive_RIF) operation Main() : Unit { ... }
Untuk mengatur profil target RIF adaptif dalam QDK paket Python, jalankan kode berikut.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive_RIF)
Adaptive QIR profil
Profil target adaptif memiliki kemampuan yang sama dengan profil RIF adaptif, tetapi juga mendukung program yang menggunakan perulangan berdasarkan hasil pengukuran. Adaptive program-program dapat menggunakan perulangan dengan jumlah iterasi tertentu, dan perulangan ulangi-sampai-berhasil (RUS).
Azure Quantum tidak memiliki target adaptif saat ini, tetapi Anda dapat menjalankan program untuk target adaptif pada simulator lokal QDK . Untuk informasi selengkapnya tentang simulator di QDK, lihat Gambaran umum simulator kuantum di QDK.
Mengatur profil adaptif
Untuk mengatur profil target adaptif QIR dalam QDK ekstensi untuk Visual Studio Code, pilih salah satu opsi berikut.
Jika Anda menyiapkan proyek Q#, tambahkan perintah berikut ke file proyek
qsharp.jsonAnda:{ "targetProfile": "adaptive" }Jika Anda bekerja dalam
.qsfile yang bukan bagian dari proyek Q#, atur profil target langsung dalam kode Q#Anda. Untuk melakukannya, tambahkan@EntryPoint(Adaptive)pada baris sebelum operasi entry point di program Anda.@EntryPoint(Adaptive) operation Main() : Unit { ... }
Untuk mengatur profil target adaptif dalam QDK paket Python, jalankan kode berikut.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive)
Unrestricted QIR profil
Profil target yang tidak dibatasi dapat menjalankan semua program kuantum. Tidak ada target kuantum saat ini yang mendukung unrestricted QIR, tetapi Anda dapat menggunakan profil yang tidak dibatasi untuk menjalankan program kompleks pada QDK simulator untuk pengembangan kuantum.
Mengatur profil yang tidak dibatasi
Untuk mengatur profil target yang tidak dibatasi QIR dalam QDK ekstensi untuk Visual Studio Code, pilih salah satu opsi berikut.
Jika Anda menyiapkan proyek Q#, tambahkan perintah berikut ke file proyek
qsharp.jsonAnda:{ "targetProfile": "unrestricted" }Jika Anda bekerja dalam
.qsfile yang bukan bagian dari proyek Q#, atur profil target langsung dalam kode Q#Anda. Untuk melakukannya, tambahkan@EntryPoint(Unrestricted)pada baris sebelum operasi entry point di program Anda.@EntryPoint(Unrestricted) operation Main() : Unit { ... }
Untuk mengatur profil target yang tidak dibatasi dalam QDK paket Python, jalankan kode berikut.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Unrestricted)