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 CHANGED
@@ -38,4 +38,4 @@ __all__ = [
38
38
  "DensityMatrix",
39
39
  ]
40
40
 
41
- __version__ = "2.4.1"
41
+ __version__ = "2.4.2"
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
- "gr": torch.tensor([[0.0, 0.0], [1.0, 0.0]], dtype=dtype),
142
- "rg": torch.tensor([[0.0, 1.0], [0.0, 0.0]], dtype=dtype),
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._config.gpu)
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._config.gpu,
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._config.gpu)
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._config.gpu
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: Use 1 gpu if True, and a GPU is available, otherwise, cpu.
47
- Will cause errors if True when a gpu is not available
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 = True,
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.1
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.1
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=Sv7BbiGYuZzUh30AqMZpyA9m2zM8z-UKh_D2C6LACNs,771
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=AvgntJNwwtf3Wl66CIWSwUezVYV3vignCL24SQQQwQg,5901
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=OYsJK_DJ8dmq3QZLKiBejXrq22R5Auyye-pai07NeeY,8798
10
- emu_sv/sv_config.py,sha256=6fcuC9RKc7Pp55Yb-lWCGtZ7UJP53oLyZsy1f9wBtRg,6100
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.1.dist-info/METADATA,sha256=5nUzMJNramhABPKHG1D7h78W6L2MeSJpkZg1wAmDg2c,3595
14
- emu_sv-2.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- emu_sv-2.4.1.dist-info/RECORD,,
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