Kuantum ara gösterimi
Quantum Intermediate Representation (QIR), kuantum programlama dilleri/çerçeveleri ile hedeflenen kuantum hesaplama platformları arasında ortak bir arabirim görevi üstlenen bir ara temsildir. QIR, LLVM IR'de dil ve donanımdan bağımsız bir biçim kullanarak kuantum programlarını temsil etmek için bir dizi kural belirtir. QIR, QIR Alliance tarafından geliştirilen ve Microsoft'un üyelerinden biri olduğu bir projedir.
Ara temsil nedir?
Klasik derleyicilerde yaygın bir desen, başlangıç olarak kaynak dili ara bir gösterime derlemektir. Bir ara gösterim, kaynak koddan makine diline yönergelerin dönüştürülmesinde aracı bir adımdır.
Ara gösterim, bir programın soyut bir temsili olarak hareket eder. Yazıldıkları dilden bağımsız olarak tüm programlar, ön uç derleyicisi olarak adlandırılan bu ara gösterime çevrilirken, arka uç bileşeni bu ara gösterimi makine gösterimine çevirmekle sorumludur. Ara gösterim, kaynak dilleri donanım platformlarından ayırmaya olanak tanır ve her yeni dilin yalnızca arka ucun kullanılabildiği tüm platformlarda yeni bir ön ucun desteklenmesi gereken modüler bir şekilde derleyici oluşturmayı mümkün kılar.
Ara gösterim genellikle birçok farklı kaynak dilin temsil edilmesine izin verecek şekilde tasarlanmıştır. Ayrıca, bu ara düzeyde, son uygulamayı daha verimli hale getiren bazı iyileştirme ve devre yeniden düzenlemesi yapmak da mümkündür. Son target yürütme platformu bilindikten sonra, ara gösterim gerçek yürütülebilir koda derlenebilir.
Bu yaklaşım birçok kaynak dilin ortak bir iyileştirici ve yürütülebilir oluşturucu kümesini paylaşmasına olanak tanır. Ayrıca, birçok farklı targetsiçin tek bir kaynak dil derlemeyi de kolaylaştırır. Ara gösterim, birçok kaynakta paylaşılabilen ortak bir platform sağlar ve targets derleyici makinelerinde çok fazla yeniden kullanılabilirlik sağlar.
Quantum Intermediate Representation nedir?
QIR, Microsoft'un ait olduğu QIR Alliance tarafından geliştirilen kuantum programları için bir ara temsildir. Kuantum hesaplaması için birçok dili ve target platformu destekleyen ortak bir arabirim sağlar. QIR'i, üst düzey dillerle makineler arasında iletişim sağlayan evrensel bir orta katman dili olarak düşünebilirsiniz. QIR için derlenirken Q# , QIR özgü Q#değildir: herhangi bir kuantum programlama çerçevesi bir kuantum programını temsil etmek için QIR'yi kullanabilir. Donanımdan bağımsızdır ve bu da kuantum yönergesi veya geçit kümesi belirtmediği ve bunu bilgi işlem ortamına target bıraktığı anlamına gelir.
QIR, popüler açık kaynak LLVM klasik derleyicisini temel alır. LLVM, çok çeşitli diller tarafından uyarlanmış modüler ve yeniden kullanılabilir derleyici ve araç zinciri teknolojilerinden oluşan bir koleksiyondur. QIR, LLVM'deki kuantum yapılarını temsil etmek için bir dizi kural belirtir, ancak LLVM'de herhangi bir uzantı veya değişiklik gerektirmez.
LLVM'nin temel araç zinciri olması, QIR'nin doğal olarak hem klasik hem de kuantum mantığını işleyebileceği anlamına gelir. Bu özellik, kuantum bilişim uygulamaları için giderek daha önemli hale gelen hibrit kuantum-klasik algoritmalar için gereklidir. Buna ek olarak, klasik bilgi işlem sektöründeki derleme ve iyileştirme araçlarından yararlanmanıza ve bu nedenle çeviri yazma maliyetini azaltmanıza olanak tanır.
Birçok önde gelen kuantum bilişim sektörü QIR'i zaten benimsemiştir. Örneğin NVIDIA, Oak Ridge Ulusal Laboratuvarı, Quantinuum, Quantum Circuits Inc. ve Rigetti Computing, QIR'yi kullanan araç zincirleri oluşturuyor.
Daha fazla bilgi için bkz . QIR Belirtimi. QIR kullanan derleyici araçları ve projeleriyle ilgileniyorsanız lütfen bu QIR depolarına göz atın.
QIR alliance nedir?
QIR Alliance, kuantum ekosistemi içinde tam birlikte çalışabilirlik sağlama, tüm tarafların geliştirme çabalarını azaltma ve mevcut ve gelecekteki heterojen kuantum işlemcileri için uygun bir temsil sağlama hedefiyle ileriye dönük bir kuantum ara gösterimi geliştirmek için ortak bir çabadır.
Kuantum SDK'ları ve dilleri, birbirinden benzersiz ve farklı özelliklere sahip yeni kuantum işlemcileriyle birlikte hızlı bir şekilde görünür ve gelişir. Yeni diller ve yeni donanım özellikleri arasında birlikte çalışabilirlik sağlamak için ekosistemin mevcut ve gelecekteki kuantum donanımıyla çalışan bir ara temsili geliştirmesi ve paylaşması zorunludur.
QIR alliance, kolektif çalışmaları ve ortaklıklarıyla şunları hedefledi:
- Farklı çerçeveler ve diller arasında birlikte çalışabilirliği teşvik ederek tüm taraflar için gerekli geliştirme çalışmalarını azaltın.
- Hem kuantum uygulaması geliştirme hem de kuantum derleyicisi geliştirme için paylaşılan kitaplıkların geliştirilmesini etkinleştirin.
- En son teknoloji derleyici teknolojisini temel alın ve yüksek performanslı bilgi işlemden mevcut araçlardan, kitaplıklardan ve öğrenmelerden yararlanın.
- Klasik ve kuantum hesaplamalarının donanım düzeyinde nasıl etkileşim kurabileceği konusunda artımlı ve aşamalı gelişime izin verin.
- Gelişmekte olan teknolojileri farklı ve farklı donanım özellikleriyle denemelere izin veren bir şekilde kolayca bağlama esnekliği sağlayın.
QIR Alliance, Linux Foundation'ın açık standartlar üzerinde müşterek Geliştirme Vakfı çalışmalarının bir parçasıdır. Kuruluş üyeleri arasında Microsoft'un yanı sıra Quantinuum (eski adı Honeywell), Oak Ridge Ulusal Laboratuvarı, Quantum Circuits Inc. ve Rigetti Computing yer alır.
Neye Quantum Intermediate Representation benziyor?
QIR, LLVM'yi temel alır. QIR, LLVM'ye benzer.
Örneğin, bir Bell çifti oluşturmak için aşağıdaki Q# kodu göz önünde bulundurun:
operation CreateBellPair(q1 : Qubit, q2 : Qubit) : Unit {
H(q1);
CNOT(q1, q2);
}
QIR'ye derlendiğinde şu duruma gelir:
define void @CreateBellPair__body(%Qubit* %q1, %Qubit* %q2) {
entry:
call void @__quantum__qis__h(%Qubit* %q1)
call void @__quantum__qis__cnot(%Qubit* %q1, %Qubit* %q2)
ret void
}
Bu kod parçacığında birkaç QIR özelliği görebilirsiniz:
- içindeki Q# işlemler (veya başka bir kuantum programlama dili) LLVM işlevleriyle temsil edilir.
- Kubitler, adlı
%Qubit
adlandırılmış bir opak yapı türüne yönelik işaretçiler olarak temsil edilir.
İşlem için CreateBellPair
QIR çok basit olsa da, QIR döngüleri, koşulluları ve diğer karmaşık denetim akışını ifade etmek için LLVM'nin tüm özelliklerini devralır. QIR ayrıca LLVM'nin rastgele klasik hesaplamaları ifade etme yeteneğini de devralır.
Daha fazla bilgi için 2021 Q2B etkinliğinden Microsoft'un geliştirici oturumunu izleyin.
Neden önemlidir Quantum Intermediate Representation ?
QIR, gerçek donanımda kuantum algoritmaları çalıştırırken temel bir araçtır. Ancak yalnızca daha teorik düzeyde algoritmalar geliştirmek isteseniz bile ara gösterimler önemli bir rol oynayabilir.
Örneğin, QIR tarafından etkinleştirilen bir uygulama, QIR'yi klasik targetbir için yürütülebilir makine kodunda derlemek için LLVM için C dil ön ucu olan Clang derleyicisini kullanmaktır. Bu, kuantum simülatörlerinin oluşturulmasını basitleştirebilecek kuantum yönergelerini uygulayarak C veya C++ içinde simülatör oluşturmanın kolay bir yolunu sağlar.
Ayrıca ara gösterimini kullanarak daha sonra gerçek bir cihaz yerine kuantum simülatörüne giriş olarak sağlanan ve kaynak koddan farklı bir dil kullanabilecek bir kod oluşturabilirsiniz. Bu şekilde, ortak bir çerçeve kullanarak farklı dilleri veya simülatörleri kolayca karşılaştırabilir ve karşılaştırabilirsiniz.
Kod iyileştirme açısından, genel algoritma uygulamasını daha verimli hale getirebilecek ara düzeyde gerçekleştirilebilecek iyileştirme adımları vardır. Giriş kodunuzun bu iyileştirmesini araştırmak, algoritmaları nerede daha verimli hale getirebileceğinizi ve kuantum programlama dillerini nasıl geliştirebileceğinizi daha iyi anlamanıza yardımcı olabilir.
Başka bir uygulama, QIR üzerinde çalışan kuantum kodu iyileştiricileri oluşturmak için standart LLVM "pass" altyapısını kullanmaktır. QIR'nin dilden ve donanımdan bağımsız yaklaşımı, bu iyileştiricilerin farklı hesaplama dilleri ve bilgi işlem platformları için neredeyse hiç çaba harcamadan yeniden kullanımına olanak tanır.