منصوبے کے بارے میں

PRISM-Q ایک کوانٹم سرکٹ سمیولیٹر ہے جو Rust میں لکھا گیا ہے، Python بائنڈنگز کے ساتھ۔ یہ سرکٹ کی ساخت سے خودکار طور پر بیک اینڈ منتخب کرتا ہے، ملٹی پاس گیٹ فیوژن پائپ لائن چلاتا ہے، اور اندرونی لوپ میں AVX2، FMA اور BMI2 کرنل استعمال کرتا ہے (ARM64 پر NEON)۔ CUDA سپورٹ اختیاری ہے اور statevector، stabilizer (تجرباتی) اور density-matrix بیک اینڈز کا احاطہ کرتی ہے۔ ان پٹ OpenQASM 3.0 ہے جس میں پسماندہ مطابقت پذیر 2.0 سنٹیکس ہے، اور سرکٹس کو واپس OpenQASM 3.0 میں ایکسپورٹ کیا جا سکتا ہے۔ انسٹالیشن cargo (prism-q) یا pip (prism-q) کے ذریعے دستیاب ہے۔ ڈیفالٹ فیچر سیٹ میں Rayon parallelism اور faer SVD شامل ہیں؛ no-default-features بلڈ سنگل تھریڈڈ ہے جس میں کم سے کم ڈیپنڈنسیز ہیں۔ gpu فیچر کے لیے CUDA Toolkit 12.x یا اس سے نیا درکار ہے۔ بیک اینڈز میں Statevector (عمومی سرکٹس، O(2^n))، Stabilizer (صرف Clifford، O(n^2))، Factored Stabilizer (آزاد بلاکس کے ساتھ Clifford)، Sparse (کم لائیو ایمپلیٹیوڈز)، MPS (کم اینٹینگلمنٹ یا 1D، O(n*chi^2))، Product State (کوئی اینٹینگلمنٹ نہیں)، Tensor Network (کم treewidth)، Factored (جزوی اینٹینگلمنٹ)، Density Matrix (درست نوائزی ایوولوشن، O(4^n)، صرف واضح ڈسپیچ)، اور Distributed Statevector (سنگل ہوسٹ میموری سے زیادہ، MPI رینکس، درست نتائج) شامل ہیں۔ BackendKind::Auto ڈیفالٹ ہے؛ statevector میموری بجٹ مشین کی فزیکل میموری کا نصف ہے، جسے PRISM_MAX_SV_QUBITS کے ذریعے اوور رائیڈ کیا جا سکتا ہے۔ OpenQASM پارسر stdgates.inc سیٹ، عام کنٹرولڈ اور ملٹی کنٹرولڈ ویریئنٹس، Qiskit ایکسپورٹر گیٹس، IonQ اور Google/Cirq نیٹو گیٹ نام، ڈی کمپوزڈ ملٹی انسٹرکشن گیٹس، IBM لیگیسی u1/u2/u3، اور صارف کی متعین کردہ گیٹ ڈیکلیریشنز قبول کرتا ہے۔ inv @، ctrl @ اور pow(k) @ موڈیفائرز ڈائریکٹ گیٹس پر چین ہوتے ہیں۔ qasm_export::to_qasm3 ایک Circuit کو واپس OpenQASM 3.0 کے طور پر لکھتا ہے۔ فیچرز میں شاٹس اور سیمپل کاؤنٹس، ایکسپیکٹیشن ویلیوز اور مارجنلز، ری بائنڈنگ کے ساتھ پیرامیٹرک سرکٹس، اور adjoint طریقہ یا parameter-shift رول کے ذریعے گریڈینٹس شامل ہیں۔ GPU فیچر ڈیوائس کی کمپیوٹ کیپبلٹی کے لیے NVRTC کے ذریعے رن ٹائم پر PTX کمپائل کرتا ہے؛ ایک سائز کروس اوور چھوٹے سب سرکٹس کو CPU پر رکھتا ہے۔ بینچ مارکس سرکٹ میکرو بینچ مارکس، گیٹ مائیکرو بینچ مارکس اور GPU ڈسپیچ کے لیے فراہم کیے گئے ہیں۔ روڈ میپ میں مڈ سرکٹ برانچنگ، ملٹی GPU اور ڈسٹری بیوٹڈ GPU ایگزیکیوشن، ROCm پورٹس، اور ڈسٹری بیوٹڈ بیک اینڈ پر نوائزی شاٹس کا ذکر ہے۔