Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Кванттық есептеудің моделі
Model of quantum computing
Кванттық ақпарат теориясында кванттық тізбек – классикалық тізбектерге ұқсас кванттық есептеудің моделі болып табылады, онда есептеу кванттық қақпалар, өлшемдер, кубиттерді белгілі мәндерге бастамалау және мүмкін басқа да амалдардың тізбегінен тұрады. Кванттық есептеуді жүзеге асыру үшін тізбектің кубиттерде орындауы тиіс амалдардың ең минималды жиынтығы ДиВинченцо критерийлері деп аталады. Тізбектер уақыт осын көлденең бағытта жазылады, сол жағынан басталып оң жағында аяқталады. Көлденең сызықтар кубиттерді, ал қос сызықтар – классикалық биттерді көрсетеді. Осы сызықтармен байланысқан элементтер – кубиттерде орындалатын операциялар, мысалы өлшемдер немесе қақпалар. Бұл сызықтар оқиғалардың реттілігін анықтайды және әдетте физикалық кабельдер емес. Кванттық тізбек элементтерінің графикалық бейнесі Пенроуз графикалық нотациясының бір түрі арқылы сипатталады. Ричард Фейнман 1986 жылы кванттық тізбек нотациясының алғашқы нұсқасын қолданды.
In quantum information theory, a quantum circuit is a model for quantum computation, similar to classical circuits, in which a computation is a sequence of quantum gates, measurements, initializations of qubits to known values, and possibly other actions. The minimum set of actions that a circuit needs to be able to perform on the qubits to enable quantum computation is known as DiVincenzo's criteria. Circuits are written such that the horizontal axis is time, starting at the left hand side and ending at the right. Horizontal lines are qubits, doubled lines represent classical bits. The items that are connected by these lines are operations performed on the qubits, such as measurements or gates. These lines define the sequence of events, and are usually not physical cables. The graphical depiction of quantum circuit elements is described using a variant of the Penrose graphical notation. Richard Feynman used an early version of the quantum circuit notation in 1986.
Қайталанатын классикалық логикалық қақпалар
Классикалық компьютердің көптеген қарапайым логикалық қақпалары кері қайтарылмайды. Мысалы, AND қақпасы үшін шығыс биттен екі кіріс битті әрқашан қалпына келтіру мүмкін емес; мысалы, егер шығыс биті 0 болса, кіріс биттері 01, 10 немесе 00 екенін анықтай алмаймыз. Дегенмен, классикалық компьютерлерде кез келген ұзындықтағы бит тізбектері үшін кері қайтарылатын қақпаларды жасау оңай; сонымен қатар, бұл қақпалар іс жүзінде маңызды, себебі кері қайтарылмайтын қақпалар физикалық энтропияны міндетті түрде арттыруы керек. Кері қайтарылатын қақпа – n бит деректі кері қайтаратын n бит деректің функциясы, мұнда n бит дерек – n ұзындығындағы x1, x2, ..., xn биттер тізбегі. n бит деректер жиыны – {0,1}n кеңістігі, ол 2n нөлдер мен біліктерден тұрады. Нақтырақ айтқанда: n биттік кері қайтарылатын қақпа – n биттік деректер жиынынан өзіне-өзі бейнелеу (mapping) жасаушы f функциясы. Мұндай кері қайтарылатын қақпаның мысалы – кірістеріне белгілі бір реттеу (permutation) қолданатын функция. Практикалық инженерлік себептерге байланысты, қақпаларды әдетте n-нің кіші мәндері үшін зерттейді, мысалы n=1, n=2 немесе n=3. Бұл қақпаларды кестелер арқылы оңай сипаттауға болады.
Most elementary logic gates of a classical computer are not reversible. Thus, for instance, for an AND gate one cannot always recover the two input bits from the output bit; for example, if the output bit is 0, we cannot tell from this whether the input bits are 01 or 10 or 00. However, reversible gates in classical computers are easily constructed for bit strings of any length; moreover, these are actually of practical interest, since irreversible gates must always increase physical entropy. A reversible gate is a reversible function on n bit data that returns n bit data, where an n bit data is a string of bits x1,x2, ,xn of length n. The set of n bit data is the space {0,1}n, which consists of 2n strings of 0's and 1's. More precisely: an n bit reversible gate is a bijective mapping f from the set {0,1}n of n bit data onto itself. An example of such a reversible gate f is a mapping that applies a fixed permutation to its inputs. For reasons of practical engineering, one typically studies gates only for small values of n, e. g. n=1, n=2 or n=3. These gates can be easily described by tables.
Кванттық есептеу симуляцияларын FPGA-мен жеделдету
Кванттық есептеудің пайда болуымен бірге әзірлеушілердің саны да, қолжетімді құралдар да едәуір артты. Дегенмен, технологиялық прогрестің жай темпі және кванттық компьютерлерді күтіп ұстаудың жоғары құны осы салаға кең қатысуды шектеді. Оған жауап ретінде әзірлеушілер IBM-нің Qiskit сияқты симуляторларға жүгінді, олар нақты кванттық аппараттарға толығымен сенбей кванттық мінез-құлықты модельдеуге мүмкіндік береді. Бірақ симуляторлар классикалық компьютерлер болғандықтан, олардың есептеу жылдамдығы шектеулі. Кванттық компьютерлердің басты артықшылығы – кубиттерді өңдеу қабілеті, олар бір мезгілде өзара байланыс және суперпозиция сияқты қасиеттерді пайдаланады. Кванттық симуляцияларды классикалық компьютерлерде іске қосу кванттық есептеудің ішкі параллельдігін жояды. Сонымен қатар, симуляцияланатын кубиттердің саны артқан сайын, симуляция жылдамдығы да пропорционалды түрде төмендейді. Кванттық схемада векторлар кубиттердің күйін көрсету үшін, ал түрлі матрицалар кубиттерге қолданылатын қақпаларды көрсету үшін қолданылады. Сызықтық алгебра кванттық симуляцияның маңызды бөлігі болғандықтан, кванттық есептеуді симуляциялауды жеделдету үшін өрісте бағдарламаланатын қақпалар тізімі (FPGA) қолданылуы мүмкін. FPGA – операцияларды параллель орындауға, құбыржолдарды қолдауға, жадқа жылдам қол жеткізуге және аппараттық архитектураны қажеттілікке қарай қайта конфигурациялауға мүмкіндік беретін аппараттық құрал, бұл оны матрицалық көбейтуді орындау үшін өте қолайлы етеді. Кванттық есептеу симуляцияларын жеделдетудің басты идеясы – ауыр есептеулердің бір бөлігін FPGA сияқты арнайы аппаратқа жүктеу арқылы бүкіл симуляция процесін жылдамдату. Қаншалықты үлкен кванттық схеманы (көп кубиттер мен көп қақпалар) симуляцияласақ, CPU-дағы бағдарламалық симуляциямен салыстырғанда FPGA-ға жүктеуден жылдамдық артықшылығы соғұрлым артады. Симуляцияның дерек ағыны төменде түсіндірілген. Біріншіден, пайдаланушы кванттық схема туралы барлық ақпаратты, бастапқы күйі мен түрлі қақпаларды пайдаланушы интерфейсі арқылы енгізеді. Содан кейін, барлық ақпарат сығымдалады және AXI сияқты аппараттық байланыс протоколдары арқылы FPGA-ға жіберіледі. Содан кейін барлық ақпарат FPGA-дағы чип жадында сақталады. Симуляция деректерді жадтан оқып, матрицалық көбейту модуліне жібергенде басталады. Барлық есептеулер аяқталғаннан кейін нәтиже жадқа және процессорға жіберіледі. Егер біз 5 кубиттік схеманы симуляцияласақ, онда 32 (2⁵) 16 биттік мәнді қамтитын векторды сақтау қажет, олардың әрқайсысы мүмкін болатын күйдің квадрат түбірлі ықтималдығын көрсетеді. Сондай-ақ, қақпаны көрсететін 32x32 матрицаны сақтау қажет. Бұл есептеуді параллельдеу үшін матрицаның 32 жолын бөлек сақтаймыз және әр жол үшін көбейтуді параллель орындай алатын 32 жолды қайталаймыз. Бұл FPGA-да аппараттық және жадты көп пайдаланудың есебінен симуляцияны едәуір жеделдетеді. Мұқият аппараттық жобалау арқылы аппараттық архитектураны O(n) уақыт күрделілігімен жасауға болады, мұнда 'n' кубиттер санын білдіреді. Ал Numpy-нің жұмыс уақыты O(2^2^n) шамасына жақын. Бұл жайт FPGA-ны кванттық есептеу симуляцияларын жеделдету үшін пайдаланудың мүмкіндігін көрсетеді.
With the advent of quantum computing, there has been a significant surge in both the number of developers and available tools. However, the slow pace of technological advancement and the high maintenance costs associated with quantum computers have limited broader participation in this field. In response, developers have turned to simulators, such as IBM's Qiskit, to model quantum behavior without relying solely on real quantum hardware. Nevertheless, simulators, being classical computers, are constrained by computation speed. The fundamental advantage of quantum computers lies in their ability to process qubits, leveraging properties like entanglement and superposition simultaneously. By running quantum simulations on classical computers, the inherent parallelism of quantum computing is taken away. Moreover, as the number of simulated qubits increases, the simulation's speed decreases proportionally. In a quantum circuit, the vectors are used to represent the state of the qubits and different matrices are used to represent the gate that is applied on the qubits. Since linear algebra is a major component of the quantum simulation, Field Programmable Gate Arrays (FPGAs) could be used to accelerate the simulation of quantum computing. FPGA is a kind of hardware that excels at executing operations in parallel, supports pipelining, has on chip memory resources with low access latency, and offers the flexibility to reconfigure the hardware architecture on the fly which make it a well suited tool to handle matrix multiplication. The main idea of accelerating quantum computing simulations is to offload some of the heavy computation to special hardware like FPGA in order to speed up the whole simulation process. And the bigger quantum circuits (more qubits and more gates) we simulate, the more speedup we gain from offloading to FPGA compared with software simulations on CPU. The data flow of the simulation is explained below. First, the user inputs all the information of the quantum circuit including initial state and various gates through the user interface. Then, all this information is compressed and sent to the FPGA through some hardware communication protocols like AXI. Then, all the information is stored in the on chip memory in the FPGA. And the simulation starts when the data is read from the memory and sent to the Matrix multiplication module. After all the calculation is done, the result will be sent back to the memory and to the CPU. Suppose we are simulating 5 qubit circuits, then we need to store the vector that holds 32 (2⁵) 16 bit values, each of which represents the square root probability of a possible existing state. We also need to store the 32x32 matrix that represents the gate. In order to parallel this computation, we can store the 32 rows of the matrix separately and replicate 32 row vec mult hardware such that each row can calculate the multiplication in parallel. This will dramtically speed up the simulation with a price of more hardware and memory usage in FPGA. It has been discovered that with careful hardware design, it's possible to achieve a hardware architecture with O(n) time complexity, where 'n' denotes the number of qubits. In contrast, the runtime of Numpy approaches O(2^2^n). This finding underscores the feasibility of leveraging FPGAs to accelerate quantum computing simulations.