Quantum Rings SDK 0.10 Release Notes
The Quantum Rings SDK 0.10 release is here, packed with groundbreaking features, powerful enhancements, and critical bug fixes that will supercharge your quantum development workflow!
Product Information
- Product: Quantum Rings SDK
- Version: 0.10.x
- Platforms: Windows, Linux, Mac OS
- Release Date: May 30, 2025
- Release Type: Feature Enhancement
- Audience: All Users
Installation Instructions
- Uninstall previous versions and install the new version the pypi distribution. CUDA
- Runtime is required for the GPU-enabled version and can be installed by following instructions on NVIDIA's website.
CPU Only version
Use this version if you do not have an NVIDIA GPU with a minimum compute capability of 8.0, or if you are running quantum circuits with fewer qubits and gate operations, or if you are using macOS.
pip install -i QuantumRingsLib
GPU Version
Use this version if you have a compatible NVIDIA GPU and a large quantum circuit to crack.
pip install -i quantumrings-nvidia-gpu
The CUDA Toolkit is required and should be installed before using the SDK. Refer to NVIDIA's website for CUDA Toolkit instructions. For detailed installation instructions, please refer to the "Setup and install the SDK Quantum Rings SDK" documentation.
New Features and Enhancements in this Release
GPU Support
Prepare to unleash the full power of your hardware with the addition of NVIDIA GPU support! For users with compatible GPUs, you can now harness the amber_quantum_rings
backend to achieve blazing-fast quantum circuit execution on Windows and Linux.
Just install quantumrings-nvidia-gpu
and ensure your CUDA Toolkit paths are correctly set – then watch your large quantum circuits crack with unprecedented speed! To use the CPU, just switch to the scarlet_quantum_rings
backend.
QASM2 Importer Enhancements
The QASM2 Importer now boasts support for conditional if
statements with indexed classical registers, opening up new possibilities for complex circuit design. The SDK previously executed these if
statements correctly when input via Python using the c_if
method.
Relaxed append API
Our append
API has been refined and relaxed, offering greater flexibility when combining circuits. The receiving circuit must have an equal or larger number of qubits or classical registers for it to work.
measure_all and measure_active enhancements
These methods will now intelligently create classical bits for you if they weren't defined initially, or when importing a QASM2 file.
QASM2 Importer and Classical Bits
For a more precise control, the QASM2 Importer will no longer create classical bits if they are not explicitly defined. To measure qubits with such imported circuits, you can use measure_all()
to create the required classical bits or create a new QuantumCircuit with an equal number of qubits and classical bits before appending the imported circuit and measuring specific qubits.
Configuration File Support
We've enhanced the workflow when using GPU by enabling the configuration file to store your backend name, making backend acquisition effortless! The QuantumRingsProvider.get_backend
API automatically loads the backend name from the configuration file if no argument is provided. To do this, save the credentials directly into the configuration file or use the QuantumRingsProvider.save_account
API.
Bug Fixes
- The run method is now more flexible, allowing positional arguments without needing parameter names. Users can provide them in the correct sequence.
- QASM2 files with problematic line feed characters are now fully supported.
- The inverse API finally behaves as expected, correctly inverting t and s family gates.
- If you experienced that annoying slowdown when acquiring the backend multiple times in the same Python instance? Gone!
- Qubit label printing in the circuit viewer on some Linux installations has been fixed, ensuring crystal-clear visuals, addressing issues due to codepage differences.
- During QASM2 Import,
c
ande
are now correctly accepted as QuantumRegisters.
Known Issues and Limitations:
QASM files with user-defined gates containing measure or reset instructions embedded inside those user-defined gates will not import. This will be supported in the future.
Important Changes Coming Soon:
When constructing QuantumCircuit objects, you will soon need to explicitly specify the number of classical bits required. If not specified, classical bits will not be created.
Example:
qc = QuantumCircuit(5, 3)
(creates five qubits and three classical bits).