Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kuantum bilişimi hala gelişmekte olan bir teknolojidir. Tüm kuantum donanımları tüm kuantum programlarını çalıştıramayabilir. Örneğin, kubit ölçüm sonuçlarına göre koşullu dallara sahip programları çalıştırmak için gereken orta devre ölçümlerini yalnızca belirli donanımlar gerçekleştirebilir.
üzerinde çalıştırılacak bir program gönderdiğinizde Azure Quantum, programınız kuantum ara gösterimi (QIR) biçimine dönüştürülür. QIR programınızın üzerinde çalıştığı programlama diline veya kuantum donanımının türüne bağlı değildir. Microsoft Quantum Development Kit (QDK), farklı donanım özellikleri için çeşitli QIR hedef profilleri destekler.
hakkında QIRdaha fazla bilgi için bkz . Kuantum ara gösterimi.
Hedef profillere genel bakış
Azure Quantum ve QDK, birkaç QIR hedef profilini destekler. Seçtiğiniz hedef profilin türü, programınızın hangi programlama yapılarını kullanabileceğini belirler.
- Kubit ölçüm sonuçlarına dayanan
ififadeleri içeren koşullu dallanmalar - Kubit ölçüm sonuçlarından hesaplanan kayan noktalı sayılarda aritmetik işlemler
- Kubit ölçüm sonuçlarına dayalı sabit ve ilişkisiz döngüler
Aşağıdaki tabloda, QDK içindeki tüm QIR hedef profilleri ve bu hedef profillerin desteklediği programlama yapıları, en kısıtlayıcıdan en az kısıtlayıcıya doğru listelenmektedir.
| QIR hedef profil | Koşullu dallar | Kayan nokta işlemleri | Loops |
|---|---|---|---|
| Base | ❌ | ❌ | ❌ |
| Adaptive RI | ✅ | ❌ | ❌ |
| Adaptive RIF | ✅ | ✅ | ❌ |
| Adaptive | ✅ | ✅ | ✅ |
| Unrestricted | ✅ | ✅ | ✅ |
Hedef profillerini QDK içinde ayarlayın
Simülatörlerde veya QDK hedefte Azure Quantum bir program çalıştırmak için bir QIR hedef profil ayarlamanız gerekir. Bir hedef profili el ile ayarlamazsanız, QDK seçilen hedef için uygun profili otomatik olarak ayarlamaya çalışır.
hizmette Azure Quantum çalıştırılacak programları gönderirken, QDK seçilen yürütme hedefi için uygun profili otomatik olarak seçmeye çalışır.
Base QIR profil
Temel QIR hedef profili en kısıtlayıcı profildir. Dallar ve döngüler gibi klasik programlama yapılarını kullanmayan daha basit programlar için temel profili kullanın. Kuantum donanım hedefiniz orta devre ölçümleri gerçekleştiremiyorsa büyük olasılıkla temel profili kullanmanız gerekir.
Aşağıdaki Azure Quantum hedefler, temel QIR profili kullanan programları çalıştırabilir.
| Provider | Simülatör | Kuantum İşlem Birimi (QPU) |
|---|---|---|
| IonQ | ionq.simulator |
ionq.qpu.* |
| Rigetti | rigetti.sim.* |
rigetti.qpu.* |
Bu Azure Quantum sağlayıcılar hakkında daha fazla bilgi edinmek için bkz. IonQ sağlayıcısı ve Rigetti sağlayıcısı.
Temel profili ayarlama
Visual Studio Code (VS Code) uzantısında QIR temel QDK hedef profili ayarlamak için aşağıdaki seçeneklerden birini seçin.
Bir Q# projesi ayarlarsanız projenizin
qsharp.jsondosyasına aşağıdaki komutu ekleyin.{ "targetProfile": "base" }Q# projesinin parçası olmayan bir
.qsdosyada çalışıyorsanız, hedef profili doğrudan Q# kodunuzda ayarlayın. Bunu yapmak için, programınızdaki giriş noktası işleminden önceki satıra ekleyin@EntryPoint(Base).@EntryPoint(Base) operation Main() : Unit { ... }
Python kitaplığında QDK temel hedef profili ayarlamak için aşağıdaki kodu çalıştırın.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Base)
Temel profilli Q# programlarında sınırlamalar
Temel hedef profili çok çeşitli Q# programları çalıştırabilir. Temel kısıtlama, Q# programlarının ölçüm işlemlerinden tür değerleriyle Result mantıksal karşılaştırmalar gerçekleştirememeleridir.
Örneğin, program ölçüm sonucu kullanan bir FlipQubitOnZero deyim içerdiğinden, temel hedefte aşağıdaki if işlemi çalıştıramazsınız.
@EntryPoint(Base)
operation FlipQubitOnZero() : Unit {
use q = Qubit();
if M(q) == Zero {
X(q);
}
}
Adaptive RI QIR profil
Uyarlamalı RI hedef profili, temel profilden daha geniş bir program çeşitliliği çalıştırabilir, ancak bazı sınırlamaları vardır.
Adaptive RI hedefleri, koşullu if deyimlerde orta devre ölçümleri kullanan programları destekler. Kuantum donanımınız orta devre ölçümleri gerçekleştirebiliyorsa ve programınız ölçüm sonuçlarına göre deyimler kullanıyorsa if , büyük olasılıkla uyarlamalı RI profilini kullanmanız gerekir.
Örneğin, aşağıdaki Q# programı uyarlamalı bir RI hedefinde çalıştırılabilir.
@EntryPoint(Adaptive_RI)
operation MeasureQubit(q : Qubit) : Result {
return M(q);
}
operation SetToZero(q : Qubit) : Unit {
if MeasureQubit(q) == One { X(q); }
}
Aşağıdaki Azure Quantum hedefler, uyarlamalı RI hedef profilini kullanan programları çalıştırabilir.
| Provider | Simülatör | Kuantum İşlem Birimi (QPU) |
|---|---|---|
| Quantinuum | quantinuum.sim.h2-1e |
quantinuum.qpu.h2-1 |
| Quantinuum | quantinuum.sim.h2-2e |
quantinuum.qpu.h2-2 |
Azure Quantum içinde Quantinuum hakkında daha fazla bilgi için Quantinuum sağlayıcısı bölümüne bakın.
Uyarlamalı RI profilini ayarlama
VS Code uzantısında QIR uyarlamalı RI QDK hedef profilini ayarlamak için aşağıdaki seçeneklerden birini belirleyin.
Bir Q# projesi ayarlarsanız projenizin
qsharp.jsondosyasına aşağıdaki komutu ekleyin:{ "targetProfile": "adaptive_ri" }Q# projesinin parçası olmayan bir
.qsdosyada çalışıyorsanız, hedef profili doğrudan Q# kodunuzda ayarlayın. Bunu yapmak için, programınızdaki giriş noktası işleminden önceki satıra ekleyin@EntryPoint(Adaptive_RI).@EntryPoint(Adaptive_RI) operation Main() : Unit { ... }
Python kitaplığında QDK uyarlamalı RI hedef profilini ayarlamak için aşağıdaki kodu çalıştırın.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive_RI)
Adaptive RIF QIR profil
Uyarlamalı RIF hedef profili, uyarlamalı RI profiliyle aynı özelliklere sahiptir, ancak kayan nokta aritmetik işlemleri içeren programları da destekler. Kuantum donanımınız orta devre ölçümleri gerçekleştirebiliyorsa ve programınız ölçüm sonuçlarından hesaplanan deyimleri ve kayan nokta numaralarını kullanıyorsa if , büyük olasılıkla uyarlamalı RIF profilini kullanmanız gerekir.
Örneğin, aşağıdaki Q# programı uyarlamalı bir RIF hedefinde çalıştırılabilir.
@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 şu anda uyarlamalı RIF hedeflerine sahip değildir, ancak yerel QDK simülatörlerde uyarlamalı RIF hedefleri için programlar çalıştırabilirsiniz. içindeki QDKsimülatörler hakkında daha fazla bilgi için, içindeki kuantum simülatörlerine QDKgenel bakış bölümüne bakın.
Uyarlamalı RIF profilini ayarlama
VS Code uzantısında QIR uyarlamalı RIF QDK hedef profilini ayarlamak için aşağıdaki seçeneklerden birini belirleyin.
Bir Q# projesi ayarlarsanız projenizin
qsharp.jsondosyasına aşağıdaki komutu ekleyin:{ "targetProfile": "adaptive_rif" }Q# projesinin parçası olmayan bir
.qsdosyada çalışıyorsanız, hedef profili doğrudan Q# kodunuzda ayarlayın. Bunu yapmak için, programınızdaki giriş noktası işleminden önceki satıra ekleyin@EntryPoint(Adaptive_RIF).@EntryPoint(Adaptive_RIF) operation Main() : Unit { ... }
Python kitaplığında QDK uyarlamalı RIF hedef profilini ayarlamak için aşağıdaki kodu çalıştırın.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive_RIF)
Adaptive QIR profil
Uyarlamalı hedef profili, uyarlamalı RIF profiliyle aynı özelliklere sahiptir, ancak ölçüm sonuçlarına göre döngü kullanan programları da destekler. Adaptive programlar, belirli sayıda yineleme ve başarıya kadar yineleme (RUS) döngüleri içeren döngüleri kullanabilir.
Azure Quantum şu anda uyarlamalı hedeflere sahip değildir, ancak yerel QDK simülatörlerde uyarlamalı hedefler için programlar çalıştırabilirsiniz. içindeki QDKsimülatörler hakkında daha fazla bilgi için, içindeki kuantum simülatörlerine QDKgenel bakış bölümüne bakın.
Uyarlamalı profili ayarlama
VS Code uzantısında QIR uyarlamalı QDK hedef profili ayarlamak için aşağıdaki seçeneklerden birini belirleyin.
Bir Q# projesi ayarlarsanız projenizin
qsharp.jsondosyasına aşağıdaki komutu ekleyin:{ "targetProfile": "adaptive" }Q# projesinin parçası olmayan bir
.qsdosyada çalışıyorsanız, hedef profili doğrudan Q# kodunuzda ayarlayın. Bunu yapmak için, programınızdaki giriş noktası işleminden önceki satıra ekleyin@EntryPoint(Adaptive).@EntryPoint(Adaptive) operation Main() : Unit { ... }
Python kitaplığında QDK uyarlamalı hedef profili ayarlamak için aşağıdaki kodu çalıştırın.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Adaptive)
Unrestricted QIR profil
Sınırsız hedef profil tüm kuantum programlarını çalıştırabilir. Şu anda hiçbir kuantum hedefi kısıtlanmamış QIR desteği sunmaz, ancak kuantum geliştirme amacıyla QDK simülatörlerinde karmaşık programlar çalıştırmak için kısıtlanmamış profili kullanabilirsiniz.
Kısıtlanmamış profili ayarlama
VS Code uzantısında QIR kısıtlanmamış QDK hedef profili ayarlamak için aşağıdaki seçeneklerden birini belirleyin.
Bir Q# projesi ayarlarsanız projenizin
qsharp.jsondosyasına aşağıdaki komutu ekleyin:{ "targetProfile": "unrestricted" }Q# projesinin parçası olmayan bir
.qsdosyada çalışıyorsanız, hedef profili doğrudan Q# kodunuzda ayarlayın. Bunu yapmak için, programınızdaki giriş noktası işleminden önceki satıra ekleyin@EntryPoint(Unrestricted).@EntryPoint(Unrestricted) operation Main() : Unit { ... }
Python kitaplığında QDK kısıtlanmamış hedef profili ayarlamak için aşağıdaki kodu çalıştırın.
from qdk import init, TargetProfile
init(target_profile=TargetProfile.Unrestricted)