emu-sv 2.4.1__py3-none-any.whl → 2.4.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- emu_sv/__init__.py +1 -1
- emu_sv/dense_operator.py +2 -2
- emu_sv/sv_backend_impl.py +9 -5
- emu_sv/sv_config.py +6 -3
- {emu_sv-2.4.1.dist-info → emu_sv-2.4.2.dist-info}/METADATA +2 -2
- {emu_sv-2.4.1.dist-info → emu_sv-2.4.2.dist-info}/RECORD +7 -7
- {emu_sv-2.4.1.dist-info → emu_sv-2.4.2.dist-info}/WHEEL +0 -0
emu_sv/__init__.py
CHANGED
emu_sv/dense_operator.py
CHANGED
|
@@ -138,8 +138,8 @@ class DenseOperator(Operator[complex, torch.Tensor, StateVector]):
|
|
|
138
138
|
# and potentially user defined strings in terms of {r, g} or {0, 1}
|
|
139
139
|
operators_with_tensors |= {
|
|
140
140
|
"gg": torch.tensor([[1.0, 0.0], [0.0, 0.0]], dtype=dtype),
|
|
141
|
-
"
|
|
142
|
-
"
|
|
141
|
+
"rg": torch.tensor([[0.0, 0.0], [1.0, 0.0]], dtype=dtype),
|
|
142
|
+
"gr": torch.tensor([[0.0, 1.0], [0.0, 0.0]], dtype=dtype),
|
|
143
143
|
"rr": torch.tensor([[0.0, 0.0], [0.0, 1.0]], dtype=dtype),
|
|
144
144
|
}
|
|
145
145
|
elif set(eigenstates) == {"0", "1"}:
|
emu_sv/sv_backend_impl.py
CHANGED
|
@@ -105,6 +105,11 @@ class BaseSVBackendImpl:
|
|
|
105
105
|
raise NotImplementedError(
|
|
106
106
|
"Initial state and state preparation error can not be together."
|
|
107
107
|
)
|
|
108
|
+
requested_gpu = self._config.gpu
|
|
109
|
+
if requested_gpu is None:
|
|
110
|
+
requested_gpu = True
|
|
111
|
+
|
|
112
|
+
self.resolved_gpu = requested_gpu
|
|
108
113
|
|
|
109
114
|
def init_dark_qubits(self) -> None:
|
|
110
115
|
if self._config.noise_model.state_prep_error > 0.0:
|
|
@@ -180,13 +185,12 @@ class SVBackendImpl(BaseSVBackendImpl):
|
|
|
180
185
|
pulser_data: The data for the sequence to be emulated.
|
|
181
186
|
"""
|
|
182
187
|
super().__init__(config, pulser_data)
|
|
183
|
-
|
|
184
188
|
self.state: StateVector = (
|
|
185
|
-
StateVector.make(self.nqubits, gpu=self.
|
|
189
|
+
StateVector.make(self.nqubits, gpu=self.resolved_gpu)
|
|
186
190
|
if self._config.initial_state is None
|
|
187
191
|
else StateVector(
|
|
188
192
|
self._config.initial_state.vector.clone(),
|
|
189
|
-
gpu=self.
|
|
193
|
+
gpu=self.resolved_gpu,
|
|
190
194
|
)
|
|
191
195
|
)
|
|
192
196
|
|
|
@@ -222,10 +226,10 @@ class NoisySVBackendImpl(BaseSVBackendImpl):
|
|
|
222
226
|
self.pulser_lindblads = pulser_data.lindblad_ops
|
|
223
227
|
|
|
224
228
|
self.state: DensityMatrix = (
|
|
225
|
-
DensityMatrix.make(self.nqubits, gpu=self.
|
|
229
|
+
DensityMatrix.make(self.nqubits, gpu=self.resolved_gpu)
|
|
226
230
|
if self._config.initial_state is None
|
|
227
231
|
else DensityMatrix(
|
|
228
|
-
self._config.initial_state.matrix.clone(), gpu=self.
|
|
232
|
+
self._config.initial_state.matrix.clone(), gpu=self.resolved_gpu
|
|
229
233
|
)
|
|
230
234
|
)
|
|
231
235
|
|
emu_sv/sv_config.py
CHANGED
|
@@ -43,8 +43,11 @@ class SVConfig(EmulationConfig):
|
|
|
43
43
|
the size of the krylov subspace that the Lanczos algorithm maximally builds
|
|
44
44
|
krylov_tolerance:
|
|
45
45
|
the Lanczos algorithm uses this as the convergence tolerance
|
|
46
|
-
gpu:
|
|
47
|
-
|
|
46
|
+
gpu: choosing the number of gpus to use during the simulation
|
|
47
|
+
- if `gpu = True`, use 1 GPU to store the state.
|
|
48
|
+
(causes errors if True when GPU not available)
|
|
49
|
+
- if `gpu = False`, use CPU to run the entire simulation.
|
|
50
|
+
- if `gpu = None` (the default value), the backend internally chooses 1 GPU.
|
|
48
51
|
interaction_cutoff: Set interaction coefficients below this value to `0`.
|
|
49
52
|
Potentially improves runtime and memory consumption.
|
|
50
53
|
log_level: How much to log. Set to `logging.WARN` to get rid of the timestep info.
|
|
@@ -70,7 +73,7 @@ class SVConfig(EmulationConfig):
|
|
|
70
73
|
dt: int = 10,
|
|
71
74
|
max_krylov_dim: int = 100,
|
|
72
75
|
krylov_tolerance: float = 1e-10,
|
|
73
|
-
gpu: bool =
|
|
76
|
+
gpu: bool | None = None,
|
|
74
77
|
interaction_cutoff: float = 0.0,
|
|
75
78
|
log_level: int = logging.INFO,
|
|
76
79
|
log_file: pathlib.Path | None = None,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emu-sv
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Pasqal State Vector based pulse emulator built on PyTorch
|
|
5
5
|
Project-URL: Documentation, https://pasqal-io.github.io/emulators/
|
|
6
6
|
Project-URL: Repository, https://github.com/pasqal-io/emulators
|
|
@@ -25,7 +25,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
25
25
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
27
27
|
Requires-Python: >=3.10
|
|
28
|
-
Requires-Dist: emu-base==2.4.
|
|
28
|
+
Requires-Dist: emu-base==2.4.2
|
|
29
29
|
Description-Content-Type: text/markdown
|
|
30
30
|
|
|
31
31
|
<div align="center">
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
emu_sv/__init__.py,sha256=
|
|
1
|
+
emu_sv/__init__.py,sha256=HmN1DY_0fQUrgBqa3eRVIqqSg1pg11_w4FwuwepfgV4,771
|
|
2
2
|
emu_sv/custom_callback_implementations.py,sha256=_7XLIDzJ-p3DVqz-Jyv0eYbl8nih2x2p-pM4cBCLumA,6367
|
|
3
|
-
emu_sv/dense_operator.py,sha256=
|
|
3
|
+
emu_sv/dense_operator.py,sha256=GvF0swsiFRqp83bpyaU_CXap2vm74-JLI5lHo-0Hbdk,5901
|
|
4
4
|
emu_sv/density_matrix_state.py,sha256=6QmLZvqEHLR64r0nD7D2jZIiAYOgciNVCjh3ywfvIs0,7243
|
|
5
5
|
emu_sv/hamiltonian.py,sha256=CqNGuWJlO2ZljK47wt130s-5uKiOldQUsC3tjwk1mKA,6106
|
|
6
6
|
emu_sv/lindblad_operator.py,sha256=pgjRNLBcvEM2-qxM8uy9wL74OtrD4A8trQeERi_AXH8,8892
|
|
7
7
|
emu_sv/state_vector.py,sha256=Ookw_BDqzs9OFppQd7kaMxDSkaj5F_clhOCgo-LSaMg,9910
|
|
8
8
|
emu_sv/sv_backend.py,sha256=-soOkSEzEBK1dCKnYnbtvYjmNZtZra1_4jP3H1ROOtM,737
|
|
9
|
-
emu_sv/sv_backend_impl.py,sha256
|
|
10
|
-
emu_sv/sv_config.py,sha256=
|
|
9
|
+
emu_sv/sv_backend_impl.py,sha256=-xWE30B5RI32nOG2pUR8lL3q-wufwvzxegiJexW5g4w,8952
|
|
10
|
+
emu_sv/sv_config.py,sha256=xgKyEPOGzqM-jC_xJ5VYJak4CNntbp2wywbdYqCGEoM,6318
|
|
11
11
|
emu_sv/time_evolution.py,sha256=Uy3qMdt3BlLB6Aq1-o5uajRTu_3fPuBCtcusHxFPPJc,13545
|
|
12
12
|
emu_sv/utils.py,sha256=t0nMDVo6DF5bQW-vbsyRMCmvkyNxCU-v0Enmns9aOAU,1151
|
|
13
|
-
emu_sv-2.4.
|
|
14
|
-
emu_sv-2.4.
|
|
15
|
-
emu_sv-2.4.
|
|
13
|
+
emu_sv-2.4.2.dist-info/METADATA,sha256=RuXcAiQTi84jywPv_UkYs5OVJ0QQAGap55xNEgVSlvY,3595
|
|
14
|
+
emu_sv-2.4.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
15
|
+
emu_sv-2.4.2.dist-info/RECORD,,
|
|
File without changes
|