Am dat peste o postare pe LinkedIn scrisă de Michaela Eichinger (de la Quantum Machines), care a pus o întrebare importantă și relevantă despre semnificația unui QPU, rezumată mai jos:

Cip cuantic conectat la o placă de circuit - credite: QUtech

Unitatea de procesare cuantică (QPU) nu este doar cipul simplu: în semiconductorii clasici, procesoarele sunt mai mult decât niște simple matrițe de siliciu după deconectare. Fără carcase, distribuția ceasului, ierarhiile memoriei și microcodul, matrița respectivă este doar nisip de înaltă calitate.

Exact aceeași rigoare a ingineriei de sisteme este valabilă și pentru QPU. De unul singur, cipul cuantic nu face nimic. Are nevoie de ambalajul și mediul potrivit (cum ar fi un frigider de diluție sau o cameră de vid), precum și de circuitele de control și infrastructura pentru a executa efectiv porți logice.

Terminologie Link to heading

Dintre toate comentariile la această întrebare, cel al lui Olivier Ezratty a fost deosebit de practic. El a sugerat definirea a doi termeni cheie pentru a clarifica lucrurile: „computer cuantic” și „sistem de calcul cuantic”.

  • Computer cuantic: rulează un circuit cuantic predefinit, de obicei de mai multe ori, și oferă rezultate utile. Prin urmare, include compilarea, optimizarea, implementarea QEC/FTQC, dacă există, toate acționările clasice ale sistemului (electronică, fotonică), măsurători la mijlocul circuitului, optimizator clasic (pentru circuite variaționale NISQ) și post-procesare. Și toate tehnologiile de facilitare, inclusiv criogenia.

  • Sistem de calcul cuantic: rezolvă o problemă a utilizatorului folosind un computer cuantic. Ar trebui să includă toate resursele clasice implicate în generarea circuitelor cuantice, până la unele calcule de înaltă performanță (HPC), dacă este necesar. Și computerul cuantic utilizat.

Diagrama din dreapta reprezintă aceste două definiții.

Perspectiva sistemului: [ QPU || GPU ] Link to heading

Partea interesantă este Sistemul de calcul cuantic. Îmi place să fac o paralelă între stiva QPU și GPU, așa cum se arată în următoarea diagramă:

Din perspectiva unui sistem, un QPU nu este foarte diferit de un GPU. Există analogii între diferitele straturi ale stivelor QPU și GPU.

De asemenea, este util să se identifice care părți funcționează pe hardware-ul cuantic și care componente logice rulează pe computerul clasic, chiar dacă ambele fac parte din computerul cuantic.

Olivier Erzaty a oferit feedback util cu privire la diagrama originală pe care am postat-o pe LinkedIn:

  • Interconectare: Există cel puțin două interconexiuni. Interconectarea cuantică transportă entități cuantice înlănțuite. Interconectarea clasică în timp real, numită interconectare în timp real (RTI) în termeni NVQLink, este o altă opțiune. Există, de asemenea, o rețea clasică standard care conectează procesoarele, care nu este prezentată în această diagramă.

  • Calibrare: În mod ideal, calibrarea ar trebui să fie în timp real, dar în majoritatea cazurilor nu este încă așa. Astăzi, există două tipuri: calibrarea în timp real, care rulează în cadrul hardware-ului cuantic folosind NPU-uri integrate și date de citire sau sindrom, și calibrarea mai lentă, care rulează pe CPU sau GPU folosind modele vLLM avansate precum Ising. Aceste două abordări ar putea fuziona în cele din urmă, dar acest lucru ar putea dura câțiva ani.

  • Accelerare: Prima diagramă a folosit termenul „accelerare hardware cuantică” pentru a evidenția faptul că circuitele cuantice pot rula și pe simulatoare accelerate de GPU, chiar și fără un QPU. Cu toate acestea, așa cum a remarcat Olivier, unele domenii cuantice, cum ar fi QML, utilizează soluții cuantice pentru a îmbunătăți rezultatele, dar nu neapărat pentru viteză. Pentru a evita confuziile, părțile specifice hardware-ului cuantic (secvențiator, controlere, pulsar, crio și cipuri cuantice) sunt numite „Hardware Cuantic”.

Ierarhia sistemului Link to heading

Aceasta duce la următoarea ierarhie, similară cu cea propusă de Olivier:

  1. Sistem cuantic: Un sistem eterogen și hibrid care operează împreună GPU-uri, CPU-uri și QPU-uri. 2. Calculator cuantic: Un sistem care execută circuite cuantice și generează citiri probabilistice. 3. Hardware cuantic: Partea fizică în care se află QPU-ul, împreună cu criogenul și PPU-ul.

Iată câteva aspecte de reținut:

  • xPU-uri: Am menționat „GPU-uri, CPU-uri și QPU-uri”, dar aș fi putut folosi „xPU” ca termen general pentru orice unitate de procesare, deoarece sistemul ar putea utiliza și TPU-uri și NPU-uri.

  • PPU-uri: PPU este prescurtarea de la „Unitate de procesare a impulsurilor”. Este componenta pe care rulează firmware-ul, responsabilă pentru controlul și citirea pulsarilor, secvențierea (la mijlocul circuitului), QEC și conectarea la rețeaua RTI.

  • GPU vs PPU: Rularea kernelurilor pe GPU sau PPU implică un compromis între costul mutării informațiilor și puterea de calcul, în special atunci când PPU-urile sunt plasate în interiorul criostatului.

Concluzie Link to heading

Această scurtă notă m-a ajutat să clarific diferitele componente dintr-un sistem de calcul cuantic care operează QPU-uri. Am folosit analogia GPU în mod intenționat pentru a facilita înțelegerea componentelor implicate într-un QPU.

Desigur, aceasta este o imagine simplificată și am omis multe detalii intenționat. Voi acoperi aceste detalii în viitoarele note. Între timp, dacă sunteți interesați, consultați CudaQ de la Nvidia, care abordează deja multe dintre provocările de design prezentate în partea de sus a acestei diagrame.

Aș dori, de asemenea, să-i mulțumesc lui Oliver Erzaty pentru feedback și Michaelei Eichinger pentru întrebările și postările ei mereu perspicace.


References:

  • NVQLink: Real-time accelerated computing for every quantum processor
  • CudaQ: NVIDIA’s open platform for quantum computing and the foundation for accelerated quantum supercomputing
  • PPU: Real-Time Quantum Control at the Pulse Level
  • NVIDIA Ising

For reference, this is the initial diagram posted on LinkedIn:

Hybrid Quantum Computing System (incomplete version)

DrawIO diagrams used in this memo:


.drawio .webp .svg
gpu vs qpu stack v2

.drawio .webp .svg
gpu vs qpu stack v1

.drawio .webp .svg
gpu vs qpu stack v0