Skip to content

Commit ddb2005

Browse files
authored
docs: add supported status for cpu/gpu architectures (#80)
1 parent 3967113 commit ddb2005

5 files changed

Lines changed: 66 additions & 1 deletion

File tree

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ and BMI2 SIMD kernels in the inner loop. CPU kernels are the default path, with
2121
optional CUDA support for statevector and experimental stabilizer workloads. Input is
2222
OpenQASM 3.0 with backward compatible 2.0 syntax.
2323

24+
For which CPU and GPU architectures each backend supports, see the
25+
[capability and support matrix](https://abecoull.github.io/prism-q/guides/capabilities.html).
26+
2427
## Documentation
2528

2629
Full documentation is published at <https://abecoull.github.io/prism-q/>. The generated

docs/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# Guides
1313

1414
- [Backends Deep Dive](./guides/backends.md)
15+
- [Capability and Support Matrix](./guides/capabilities.md)
1516
- [Performance and SIMD](./guides/performance.md)
1617
- [OpenQASM Support](./guides/openqasm.md)
1718
- [Clifford+T Simulation](./guides/clifford-t.md)

docs/architecture/threading-simd.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Threading, SIMD, and Memory Layout
22

3+
For which SIMD tiers and architectures each backend supports, see the
4+
[Capability and Support Matrix](../guides/capabilities.md).
5+
36
## Memory layout
47

58
| Backend | State representation | Memory | Access pattern |

docs/guides/backends.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ PRISM-Q does not have one simulation algorithm. It has eight, each optimal for a
44
different class of circuit. This guide is the task-oriented companion to the
55
[architecture reference](../architecture/backends.md): it focuses on scaling and when to
66
reach for each one. To select a backend in code, see
7-
[Choosing a Backend](../getting-started/choosing-a-backend.md).
7+
[Choosing a Backend](../getting-started/choosing-a-backend.md). For which CPU and
8+
GPU architectures each backend supports, see the
9+
[Capability and Support Matrix](./capabilities.md).
810

911
## Scaling at a glance
1012

docs/guides/capabilities.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Capability and Support Matrix
2+
3+
This page records which CPU and GPU architectures each PRISM-Q backend supports,
4+
and where distributed execution stands. CPU backends are written in portable Rust
5+
and run on every supported architecture; SIMD acceleration (AVX2/FMA/BMI2 on
6+
x86-64, NEON on ARM64) is selected at runtime where a kernel exists, otherwise a
7+
scalar path is used.
8+
9+
## Legend
10+
11+
| Mark | Meaning |
12+
| --- | --- |
13+
| Yes | Supported |
14+
| SIMD | Supported with a dedicated SIMD-accelerated kernel on this architecture |
15+
| Scalar | Runs, but without a dedicated SIMD kernel (portable fallback) |
16+
| No | Not available for this backend |
17+
| Planned | Not implemented yet; on the roadmap |
18+
19+
## Backend support by architecture
20+
21+
| Backend | x86-64 | AVX2/FMA/BMI2 | ARM64 | NEON | CUDA (NVIDIA) | ROCm (AMD) | Distributed |
22+
| --- | --- | --- | --- | --- | --- | --- | --- |
23+
| Statevector | Yes | SIMD | Yes | SIMD | Yes | Planned | Planned |
24+
| Stabilizer | Yes | SIMD | Yes | SIMD | Yes | Planned | Planned |
25+
| Factored Stabilizer | Yes | SIMD | Yes | SIMD | No | Planned | Planned |
26+
| Sparse | Yes | Scalar | Yes | Scalar | No | Planned | Planned |
27+
| MPS | Yes | SIMD | Yes | SIMD | No | Planned | Planned |
28+
| Product State | Yes | Scalar | Yes | Scalar | No | Planned | Planned |
29+
| Tensor Network | Yes | Scalar | Yes | Scalar | No | Planned | Planned |
30+
| Factored | Yes | SIMD | Yes | SIMD | No | Planned | Planned |
31+
| Stabilizer Rank | Yes | SIMD | Yes | SIMD | No | Planned | Planned |
32+
| Stochastic Pauli | Yes | Scalar | Yes | Scalar | No | Planned | Planned |
33+
| Deterministic Pauli | Yes | Scalar | Yes | Scalar | No | Planned | Planned |
34+
35+
Notes:
36+
37+
- **AVX2/FMA/BMI2** is the x86-64 SIMD tier. The active tier is chosen at runtime
38+
(AVX2+FMA, then FMA, then SSE2 baseline). See
39+
[Threading, SIMD, and Memory Layout](../architecture/threading-simd.md).
40+
- **NEON** is the ARM64 SIMD tier. Backends marked `SIMD` carry a NEON kernel that
41+
mirrors the x86-64 path; the rest fall back to scalar code on ARM64.
42+
- **CUDA** covers the optional `gpu` feature. Only the statevector and stabilizer
43+
paths have device kernels; every other backend runs on CPU. See the
44+
[GPU Backend](./gpu.md) guide.
45+
46+
## Not yet supported
47+
48+
| Target | Status | Notes |
49+
| --- | --- | --- |
50+
| ROCm (AMD GPU) | Planned | No AMD device kernels; the GPU path is CUDA-only |
51+
| Distributed CPU | Planned | No multi-node execution |
52+
| Distributed GPU | Planned | No multi-node GPU execution |
53+
| Multi-GPU | Planned | A GPU context binds a single device |
54+
55+
These targets are listed so the matrix reflects the roadmap rather than hiding
56+
the gaps. Distributed execution is not a code path PRISM-Q exposes today.

0 commit comments

Comments
 (0)