Langkau ke kandungan utama

Pengenalan kepada transpilasi

Gambaran keseluruhan transpilasi dan alatan yang relevan untuk digunakan, sama ada secara tempatan atau di awan.

Transpilasi ialah proses penulisan semula Circuit input yang diberikan untuk memenuhi topologi peranti kuantum tertentu, dan mengoptimumkan arahan Circuit untuk dilaksanakan pada komputer kuantum yang berderau. Dokumentasi ini merangkumi perkakas dan aliran kerja untuk transpilasi tempatan yang tersedia kepada semua pengguna Qiskit, serta untuk Perkhidmatan Transpiler Qiskit berasaskan awan yang tersedia kepada pengguna Pelan Premium, Pelan Flex, dan Pelan On-Prem (melalui IBM Quantum Platform API). Jika anda menggunakan primitif dan hanya berminat dengan pilihan transpilasi lalai yang disediakan oleh perkhidmatan Qiskit Runtime, baca topik Konfigurasi penyusunan runtime untuk Qiskit Runtime.

Proses transpilasi mengambil Circuit yang mengandungi arahan anda:

Circuit kuantum dua-Qubit yang mengandungi Hadamard dan dua Gate CNOT.

Transpilasi kemudian mengubahnya supaya hanya arahan yang tersedia pada Backend yang dipilih digunakan, dan mengoptimumkan arahan tersebut untuk meminimumkan kesan hingar:

Circuit kuantum dua-Qubit yang sama selepas transpilasi. Ia mengandungi Gate RZ, X, SX, dan ECR.


Sebagai komponen utama Qiskit SDK, Transpiler direka bentuk untuk modulariti dan kebolehpanjangan. Kegunaan utamanya adalah untuk menulis transformasi Circuit baharu (dikenali sebagai laluan Transpiler), dan menggabungkannya dengan laluan sedia ada yang lain, yang sangat mengurangkan kedalaman dan kerumitan Circuit kuantum. Laluan mana yang dirantai bersama dan dalam urutan mana mempunyai kesan besar pada hasil akhir. Saluran ini ditentukan oleh objek PassManager dan StagedPassManager. StagedPassManager mengatur pelaksanaan satu atau lebih PassManager dan menentukan urutan pelaksanaannya, manakala objek PassManager hanyalah koleksi satu atau lebih laluan. Bayangkan StagedPassManager sebagai konduktor dalam orkestra, PassManager sebagai bahagian instrumen yang berbeza, dan objek Pass sebagai pemuzik individu. Dengan cara ini, anda boleh menyusun Circuit kuantum yang cekap dari segi perkakasan yang membolehkan anda melaksanakan kerja berskala utiliti sambil mengekalkan hingar yang terkawal.

Cari maklumat lanjut tentang peringkat pengurus laluan dalam topik Peringkat Transpiler.

Seni bina set arahan​

Selain mengurangkan kedalaman dan kerumitan Circuit kuantum, Transpiler direka bentuk untuk mengubah arahan yang terkandung dalam QuantumCircuit yang diberikan agar mematuhi Seni Bina Set Arahan (ISA) Backend tertentu. Circuit yang mematuhi ISA hanya terdiri daripada arahan yang disokong oleh Target Backend, seperti Gate asas perkakasan yang tersedia, pengukuran, set semula, dan operasi aliran kawalan, serta mematuhi kekangan yang ditentukan oleh ketersambungan perkakasan, iaitu CouplingMap sasaran. Apabila menghantar job kepada Backend IBM Quantum®, Circuit mesti mematuhi ISA Backend.

Peringkat Transpiler​

Saluran Transpiler prabina Qiskit terdiri daripada enam peringkat asas:

  1. init - Laluan ini menjalankan sebarang laluan awal yang diperlukan sebelum Circuit boleh dibenamkan. Ini biasanya melibatkan pembukaan gulungan arahan tersuai dan penukaran Circuit ke semua Gate satu- dan dua-Qubit. Secara lalai, ini mengesahkan arahan Circuit dan menterjemah Gate berbilang-Qubit ke Gate satu- dan dua-Qubit.
  2. layout - Laluan ini menerapkan susun atur, memetakan Qubit maya dalam Circuit anda ke Qubit fizikal QPU.
  3. routing - Laluan ini dijalankan selepas susun atur diterapkan dan akan menyuntik Gate (iaitu, SWAP) ke dalam Circuit asal untuk membuatnya serasi dengan ketersambungan (peta gandingan) QPU.
  4. translation - Laluan ini menterjemah Gate dalam Circuit ke set asas arahan QPU.
  5. optimization - Laluan ini menjalankan gelung pengoptimuman untuk mencari penguraian Circuit kuantum yang lebih cekap sehingga syarat dipenuhi (seperti kedalaman tetap).
  6. scheduling - Peringkat ini untuk sebarang laluan penjadualan sedar-perkakasan. Jika pengguna menentukan kaedah penjadualan, peringkat ini mengambil kira semua masa terbiar dalam Circuit.

Jika anda menyesuaikan aliran kerja transpilasi, gunakan peringkat-peringkat ini sebagai panduan semasa pembangunan.

Transpilasi dengan pengurus laluan​

Cara yang disyorkan untuk mentranspilasi Circuit ialah dengan mencipta pengurus laluan berperingkat dan kemudian melaksanakan kaedah run-nya dengan Circuit anda sebagai input. Anda boleh menggunakan fungsi generate_preset_pass_manager untuk menjana pengurus laluan berperingkat dengan nilai lalai yang munasabah.

Pengguna lebih lanjut boleh menyesuaikan set objek PassManager dan StagedPassManager dan menentukan urutan pelaksanaan setiap peringkat. Ini boleh mengubah Circuit output akhir secara drastik. Malah, pendekatan tersuai untuk mentranspilasi algoritma kuantum sering menghasilkan penindasan ralat yang lebih cekap berbanding pendekatan lalai. Pendekatan tersuai melibatkan penulisan semula Circuit kuantum untuk memenuhi kekangan perkakasan dan mengurangkan kesan hingar. Aliran logik untuk rantaian alatan ini boleh disesuaikan dan tidak semestinya linear. Proses transpilasi boleh menyediakan gelung berulang, cawangan bersyarat, dan kelakuan kompleks lain. Titik permulaan yang baik semasa membangunkan set laluan tersuai adalah dengan memeriksa urutan transformasi lalai.

Untuk gambaran keseluruhan transpilasi menggunakan pengurus laluan, lihat Transpilasi dengan pengurus laluan.

Transpilasi lalai​

Untuk cara yang lebih mudah tetapi kurang boleh disesuaikan, menggunakan Transpiler "sedia pakai", gunakan fungsi qiskit.compiler.transpile. Ini menjana dan menjalankan salah satu objek StagedPassManager pratetap berdasarkan, antara pilihan lain, bendera optimization_level yang boleh ditetapkan kepada 0, 1, 2, atau 3. Tahap yang lebih tinggi menghasilkan Circuit yang lebih dioptimumkan dengan kos masa transpilasi yang lebih lama.

Langkah seterusnya​

Cadangan
Source: IBM Quantum docs — updated 27 Apr 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026