Skip to main content

Open quantum simulation network for Apple Silicon

Project description

Zilver

PyPI version Python MLX License Apple Silicon

Open quantum simulation network for Apple Silicon.

Zilver turns your Apple Silicon Mac into a quantum simulation node.

Built on MLX. Statevector, density matrix, and tensor network backends.


Join the network

Two commands to become a node operator:

pip install zilver[network]
zilver-node start --registry https://registry.siriusquantum.com:7701 --backends sv,dm

Your node auto-detects chip, RAM, and qubit ceilings. It registers, starts serving simulation jobs, and sends heartbeats every 30 seconds. That is it.

Early node operators will receive priority allocation of Sirius Quantum network rewards when the incentive layer launches. The simulation network is live. Rewards are retroactive to genesis nodes.


Hardware

Every Apple Silicon chip is supported. Qubit ceilings scale with unified memory.

Chip RAM SV qubits DM qubits TN qubits
M1 8 GB 28 14 50
M1 / M2 16 GB 30 15 50
M1 Pro / M2 Pro 32 GB 31 15 50
M1 Max / M2 Max 64 GB 32 16 50
M1 Ultra / M2 Ultra 128 GB 33 16 50
M3 / M4 16–24 GB 30–31 15 50
M3 Max / M4 Max 64–128 GB 32–33 16 50

SV = statevector (exact). DM = density matrix (noise-aware). TN = tensor network / MPS (sparse circuits, scales to 50+ qubits regardless of RAM).


What Zilver does

Local simulation

MLX-native simulator with full mx.vmap and mx.compile support. One Metal dispatch evaluates an entire loss landscape 400 parameter points in a single GPU kernel instead of 400 sequential circuit runs.

from zilver.circuit import hardware_efficient
from zilver.landscape import LossLandscape

circuit = hardware_efficient(n_qubits=6, depth=3)
result = LossLandscape(circuit, sweep_params=(0, 1), resolution=20).compute()

print(f"Plateau coverage:   {result.plateau_coverage():.1%}")
print(f"Trainability score: {result.trainability_score():.3f}")
print(f"Wall time:          {result.wall_time_seconds:.3f}s")

Distributed network

Submit jobs to any registered node. The coordinator finds an eligible node, dispatches the job, and returns a verified result with a cryptographic proof.

from zilver.client import NetworkCoordinator
from zilver.node import SimJob

coord = NetworkCoordinator("https://registry.siriusquantum.com:7701")

job = SimJob(
    circuit_ops=[{"type": "ry", "qubits": [0], "param_idx": 0}],
    n_qubits=4, n_params=1, params=[1.57], backend="sv",
)
result = coord.submit(job)
print(result.expectation)
print(result.verify(job))   # True cryptographic proof check

Gradient computation

Parameter-shift gradients, fully batched over parameter vectors. Plug directly into any VQA optimizer.

from zilver.gradients import param_shift_gradient

f = circuit.compile(observable="sum_z")
grads = param_shift_gradient(f, params)

Install

Simulator only

pip install zilver

Full network node

pip install zilver[network]

Requirements: Apple Silicon Mac, macOS 13 Ventura or later, Python 3.10+.


Gate library

Gate Type Params
H, X, Y, Z, S, T Fixed single-qubit
RX, RY, RZ Rotation 1
U3 Universal single-qubit 3 (theta, phi, lambda)
CNOT, CZ, SWAP, iSWAP Fixed two-qubit
RZZ, RXX Ising coupling 1
CRZ Controlled rotation 1

All parameterized gates are MLX-native compatible with mx.vmap and mx.compile.


Development

git clone https://github.com/Sirius-Quantum/zilver
cd zilver
pip install -e ".[dev,network]"
pytest tests/   # 540 tests

License

Apache 2.0. See LICENSE.


Manifesto

We believe quantum compute should be open, distributed, and owned by the people who run it.

Read the Sirius Quantum Manifesto

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zilver-0.3.0-py3-none-any.whl (84.9 kB view details)

Uploaded Python 3

File details

Details for the file zilver-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: zilver-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 84.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for zilver-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a140b5806627e3cb4d98daa222d55d115769206aae66ad4bf3e23d0b4c1f4860
MD5 af1acfd8d547ca8820ad3bc9e2c4ab9b
BLAKE2b-256 7f7d2f8300d7639a21aa319049a62e16c3fecf7af772572527a43570ca44416e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page