Kuantum dinamiği, karmaşık kuantum sistemlerinin zaman içinde nasıl evrimleştiğini ve çevreleriyle nasıl etkileşimde bulunduğunu tanımlar. Kuantum dinamiği simülasyonları son derece zor olsa da, malzemelerin temel özelliklerini anlamak ve tahmin etmek için kritik öneme sahiptir. Bu, kuantum işleme birimleri (QPUs) geliştirilmesinde özellikle önemlidir; çünkü kuantum dinamiği simülasyonları, QPU geliştiricilerine donanımlarının fizikini anlama ve geliştirme konusunda yardımcı olur.
Kuantu dinamiği simülasyonları, gelecekteki kuantum algoritmalarının nasıl çalışacağını incelemek için kullanılan yaygın devre simülasyonlarından farklıdır. Devre simülasyonları, kuantum mantıksal kapılarının uygulanmasıyla qubit’lerin evrimini modellemektedir. Bu basitleştirilmiş bakış açısı, qubit’lerin çevreleriyle nasıl etkileşime girdiğini idealize eder ve gerçek dünya gürültüsü gibi faktörleri göz ardı eder. Buna karşın, kuantum dinamiği simülasyonları, kuantum sistemlerin zaman içindeki evrimini kapsamlı bir şekilde temsil ederek, kuantum süreçlerinin hız ve doğruluk açısından temel sınırlarını ortaya koyar.
Bir klasik analoji yapmak gerekirse, klasik bir bilgisayarın mantığı, transistörler üzerinde uygulanacak ikili mantık (VE, VEYA, XOR) kullanılarak modellenebilir; bu da soyut biçimde 0 ve 1’ler olarak temsil edilir. Ancak, daha hızlı ve yüksek performanslı transistörler tasarlamak için elektrik mühendisleri, gerilim, kapasitans ve akım dalgalanmalarını da içeren karmaşık modeller çalıştırırlar.
Aynı mantık, daha iyi qubit ve QPU’lar tasarlamak için de geçerlidir; analog dinamik simülasyonlar, bir QPU’nun fiziksel özelliklerini tamamen yakalar. Bu, transistörlerin fizikini modellemek için kullanılan kuantum karşılığıdır.
Dinamik simülasyonlar, hesaplama açısından zorludur. QPU’ların boyutları arttıkça, yalnızca GPU süper hesaplama ile hızlandırıldığında gerçekleştirilebilir hale gelir.
NVIDIA, GPU hızlandırmalı kuantum dinamiği simülasyonlarını tüm QPU araştırmacıları ve geliştiricileri için erişilebilir kılan araçlar sunmaktadır. Yeni dinamik API’leri, NVIDIA CUDA-Q platformuna entegre edilmiştir ve bir dizi paketlenmiş çözücü ile bir arada kullanılabilir. Araştırmacılar, ayrıca CUDA-Q dinamik hesaplamalarına gücüyle doğrudan erişip, kendi özel çözücülerini geliştirmek için düşük seviyeli NVIDIA cuQuantum SDK kütüphanesini kullanarak kuantum dinamiği simülatörleri oluşturabilirler.
Google’un kuantum hesaplama R&D’sini hızlandırma
Google, NVIDIA ile işbirliği içinde çözücülerini hızlandırarak QPU geliştirmelerine yol gösterecek simülasyonlar gerçekleştirmektedir. Doğru simülasyon, bir QPU’nun dijital temsilini sağlayabilir ve tasarım sürecinde pahalı veya pratik olmayan deneylerin önüne geçilebilir. Google, kendi çözücülerini geliştirirken, cuQuantum kütüphanesi tarafından sağlanan dinamik API’ye başvurmuştur.
Google ve NVIDIA, dinamik simülasyonlar aracılığıyla iki başlangıç sistemi keşfetmiştir. İlk olarak, Google QPU’nun analog modda çalıştığı Heisenberg model spin-dizisi ele alınmıştır. Bu sistemin simülasyonlarından elde edilen doğru sonuçlar, Google’ın QPU’sunun benchmark edilmesi ve analog modda çalıştırmak için umut verici uygulamaların belirlenmesi konusunda bir temel oluşturur. İkincisi, ölçümleri sınırlayan önemli bir alt sistem olan rezonatör ve Purcell filtresi ile bağlantılı bir transmon qubit’tir.
Bir 40 qubit spin-dizisi simülasyonu, cuQuantum dinamik API’leri tarafından sağlanan çoklu GPU ve çok düğümlü yeteneklerden faydalanılarak tamamlanmıştır. Bu simülasyon, NVIDIA Eos AI süper bilgisayarında 1,024 NVIDIA H100 GPU kullanılarak gerçekleştirilmiştir. Bu, bugüne kadar yapılan en büyük tam dinamik simülasyondur ve Google’a daha önce çözülemeyen sistemleri keşfetme fırsatı sunmaktadır.
Şekil 2’de, parlak mavi ve sarı noktalar, bireysel qubit’lere uygulanan ölçümleri gösterir. Artan sıklıklarla ölçüm yapılması, bir ölçüm kaynaklı faz geçişi oluşturur ve sonuçta yerelleşmiş kuantum durumları meydana gelir.
Google sonuçları, multinode ve çoklu GPU yeteneklerinin araştırmacılar için daha önce ulaşılmaz problem boyutları üzerinde simülasyon yapılmasını sağladığını gösteriyor. Yazılım ayrıca, daha fazla GPU eklendikçe etkileyici bir şekilde ölçeklenme göstermektedir.
Şekil 3, 64 seviyeye kadar çıkan bir transmon qubit simülasyonu için ustalık denklemi değerlendirme sürelerini göstermektedir. Rezonatör ile 256 seviyeye ve Purcell filtresi ile dört seviyeye (64, 256, 4) bağlanarak, GPU sayısını artırdıkça süreler değişmektedir. Qiskit Dynamics kullanarak yapılan çift soket Intel Xeon 8480CL’de 100 zaman adımıyla (her zaman adımında dört eylem ile RK4 integrasyonu, toplamda 400 operatör eylemi) çözüm süresi, 12 günden 8 GPU ile yalnızca 2 dakikaya düşmektedir.
Bu simülasyondan elde edilen sonuçlar, Google’ın donanım geliştirme döngüsüne doğrudan fayda sağlamaktadır. Google, daha hızlı bir şekilde daha büyük birim hücrelerin simülasyonlarını gerçekleştirerek, üretimden önce uygun tasarımları daha iyi belirleyebilir ve bu da önemli zaman ve kaynak tasarrufu sağlar.
CUDA-Q ile kuantum dinamiğini hızlandırma
CUDA-Q, ayrıca Lindblad ustalık denklemini çözmek için yerleşik çözücüler içeren tam bir iş akışını simüle etme yeteneği sunmaktadır. Tek GPU üzerinde, bir N qubit spin dizisi simülasyonları, NVIDIA H100 GPU kullanarak 14 gürültülü qubit ile gerçekleştirilmiştir.
Sonuçlar, iki önde gelen CPU simülatörü (Intel Xeon Platinum 8480CL’de çalıştırılan) ve bir önde gelen GPU simülatörüyle karşılaştırılmıştır. Şekil 4, CUDA-Q’nun en iyi çalışma süresine sahip olduğu ve 14 qubit simülasyonu sırasındaki hızının neredeyse 22 kat olduğu gösterilmektedir. Diğer CPU simülatörünün ise, qubit sayısı arttıkça hızının üssel bir şekilde düştüğü gözlemlenmiştir.
Kendi hızlandırılmış simülasyonlarınızı oluşturma
Kendi GPU hızlandırmalı simülasyonlarınızı, NVIDIA CUDA-Q’nun kuantum dinamiği yeteneklerini kullanarak kolaylıkla hazırlayabilirsiniz. Bu bölüm, Kooperatif Çift Kutusu’ndan Türetildiği Belirlenen Şarj Duyarsız Qubit Tasarımı adlı makaleyi temel alan bir transmon qubit’i rezonatöre bağlamak için bir örnek sunmaktadır.
Bu simülasyonun amacı, sistemin parçacık sayısı ve karenin zaman içinde nasıl evrimleştiğini anlamaktır. Kare, transmon qubit ölçüm sürecini anlamada önemli bir gözlemdir. Kullanımı kolay bir şekilde CUDA-Q ile bu simülasyonu çalıştırmak için gerekli adımları takip edelim.
Öncelikle, CUDA-Q ve gerekli yardımcı paketi içe aktarın ve CUDA-Q’nun dynamics hedefini ayarlayın.
import cudaq
from cudaq import operators, spin, Schedule, ScipyZvodeIntegrator
from cudaq.operator import coherent_state
import numpy as np
import cupy as cp
cudaq.set_target("dynamics")
Ardından, makalede kullanılan simülasyon parametrelerini hazırlayın.
# Cavity foton sayısı
N = 20
# Sistem boyutları: transmon + cavity
dimensions = {0: 2, 1: N}
# Sistem parametreleri
# Birim: GHz
omega_01 = 3.0 * 2 * np.pi # transmon qubit frekansı
omega_r = 2.0 * 2 * np.pi # rezonatör frekansı
# Dağıtıcı kaydırma
chi_01 = 0.025 * 2 * np.pi
chi_12 = 0.0
CUDA-Q ile, yaratma, yok etme, sayı ve Pauli operatörleri gibi yaygın operatörleri tanımlamak için kullanılabilir. Ayrıca, bu simülasyonda kullanılacak rezonatör ve transmon operatörleri için takma adlar ayarlanabilir.
# Sık kullanılan operatörler için takma adlar
# Rezonatör operatörleri
a = operators.annihilate(1)
a_dag = operators.create(1)
nc = operators.number(1)
xc = operators.annihilate(1) + operators.create(1)
# Transmon operatörleri
sz = spin.z(0)
sx = spin.x(0)
nq = operators.number(0)
xq = operators.annihilate(0) + operators.create(0)
Belirtilen operatörler ve parametrelerle, sistemin etkili Hamiltonyeni olarak tanımlanır. Bu Hamiltonyenin türevine dair daha fazla bilgi için Kooperatif Çift Kutusu’ndan Türetildiği Belirlenen Şarj Duyarsız Qubit Tasarımı makalesinin 3.8 bölümüne göz atabilirsiniz.
omega_01_prime = omega_01 + chi_01
omega_r_prime = omega_r - chi_12 / 2.0
chi = chi_01 - chi_12 / 2.0
hamiltonian = 0.5 * omega_01_prime * sz + (omega_r_prime + chi * sz) * a_dag * a
Transmon ve cavity’nin başlangıç durumlarını da hazırlamak gerekiyor. Bu örnek için her iki sistemi de bir süperpozisyon durumunda oluşturmayı seçiyoruz.
# Transmon süperpozisyon durumu
transmon_state = cp.array([1. / np.sqrt(2.), 1. / np.sqrt(2.)],
dtype=cp.complex128)
# Cavity süperpozisyon durumu
cavity_state = coherent_state(N, 2.0)
psi0 = cudaq.State.from_data(cp.kron(transmon_state, cavity_state))
Son olarak, programın belirli adımları ve gözlemlerin ayarlandığı bir zaman çizelgesi belirlenmelidir.
steps = np.linspace(0, 250, 1000)
schedule = Schedule(steps, ["time"])
Bunlar, Hamiltonyeni, sistem boyutlarını, zaman çizelgesini, başlangıç durumlarını ve gözlemleri alacak şekilde simülasyonu çalıştırmak için evolve
fonksiyonu ile hazırlıklardır. Ayrıca, sayısal zaman entegrasyonu https://medium.com/@arif.kp/12-amazing-kraken-capture-pictures-e0f6690d6c5d için de bir integratör belirleyebilirsiniz. Bu örnekte SciPy kütüphanesinden bir tane kullanılmaktadır:
evolution_result = cudaq.evolve(hamiltonian,
dimensions,
schedule,
psi0,
observables=[nc, nq, xc, xq],
collapse_operators=[],
store_intermediate_results=True,
integrator=ScipyZvodeIntegrator())
Simülasyon tamamlandıktan sonra, beklenen değerler çıkartılarak cavity foton sayısı ve kare gibi nicelikler elde edilebilir. Önceki kodda tanımlanan observables
listesi, hangi gözlemlerin hesaplanacağını ve nasıl indeksleneceğini belirler.
get_result = lambda idx, res: [
exp_vals[idx].expectation() for exp_vals in res.expectation_values()
]
count_results = [
get_result(0, evolution_result),
get_result(1, evolution_result)
]
quadrature_results = [
get_result(2, evolution_result),
get_result(3, evolution_result)
]
Gürültülü sonuçlar, yukarıdaki simülasyonda hem transmon hem de cavity’yi azaltan çöküş operatörleri eklenerek elde edilebilir. Prosedür aynı kalmakla birlikte, bu durumda çöküş operatörleri—0.1*a
ve 0.1*spin.minus(0)
—daha önce boş olan collapse_operators
listesine dahil edilmelidir ve evolve
fonksiyonu bir kez daha çağrılmalıdır. Gürültü ile ve gürültüsüz sonuçların üretimi için tam kodu görmek üzere, NVIDIA / cuda-quantum GitHub repo’suna başvurabilirsiniz.
Şekil 5, gürültülü ve gürültüsüz sonuçları gösterirken, cavity foton sayısı ve transmisyon uyarılma olasılığını içermektedir. Gürültünün eklenmesi, cavity foton sayısının zamanla azalması gibi daha gerçekçi davranışları ortaya koyar. Bu simülasyondan elde edilen kare sonuçları, transmon qubit’in ölçüm sırasında rezonatörle nasıl etkileşimde bulunduğunu daha iyi anlamak için kullanılabilir.
Simülasyonların nasıl yapılacağına dair CUDA-Q belgeleri üzerinden başka sistemleri simüle etmek için daha fazla bilgi temin edebilir ve dinamik simülasyonlarda kullanılabilecek diğer özellikleri öğrenebilirsiniz. Bu, aynı API’leri kullanarak ve minimum kod değişiklikleriyle doğrudan QuEra analog kuantum işlemcisi üzerinde çalıştırılabilecek bir simülasyon hazırlama örneğini içerir.
Hızlandırılmış dinamik simülasyonlar başlatma
Yeni CUDA-Q ve cuQuantum dinamik yetenekleri, araştırmacıların kuantum dinamiği simülasyonlarını daha önce mümkün olmayan hızlarda ve ölçeklerde çalıştırmasına olanak tanımaktadır. QPU inşa edenler, donanımlarını erken kuantum hata düzeltme alanına genişlettikçe böyle bir araca ihtiyaç duymaktadırlar.
CUDA-Q’yu indirin ve dinamik simülasyonlarla deney yapmaya başlayın. Dakikalar içinde kod çalıştırmaya başlayabilir ve yerleşik çözücülerinden faydalanabilirsiniz. Birkaç dinamik örnek not defteri görmek için NVIDIA / cuda-quantum GitHub sayfasını ziyaret edin.
Kendi özel kuantum dinamiği çözücülerinizi inşa etmek isterseniz, cuQuantum’u indirerek bunları birkaç kat hızlandırabilirsiniz.
Daha fazlasını öğrenmek için NVIDIA kuantum hesaplama sayfasını ziyaret edebilirsiniz.