-
Notifications
You must be signed in to change notification settings - Fork 194
Open
Labels
area/performanceInvolves performance problems or improvementsInvolves performance problems or improvementsarea/pythonInvolves the Python code in qsimInvolves the Python code in qsimarea/qsimcirqInvolves the qsim-Cirq integration layerInvolves the qsim-Cirq integration layercontributors welcomeHelp with this would be appreciatedHelp with this would be appreciatedno QC knowledge neededDoes not require knowledge of quantum computingDoes not require knowledge of quantum computingpriority/p2Medium priorityMedium priority
Description
What is your request or suggestion?
An internal user reported getting the following error with a 40 qubit simulation:
Traceback (most recent call last):
File "/tmp/test/exact_sim.py", line 23, in <module>
psi = qsim.simulate(circuit, qubit_order=qubits).state_vector()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib64/python3.12/site-packages/cirq/sim/simulator.py", line 496, in simulate
return self.simulate_sweep(
^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib64/python3.12/site-packages/cirq/sim/simulator.py", line 511, in simulate_sweep
return list(self.simulate_sweep_iter(program, params, qubit_order, initial_state))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib64/python3.12/site-packages/qsimcirq/qsim_simulator.py", line 560, in simulate_sweep_iter
final_state = cirq.StateVectorSimulationState(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib64/python3.12/site-packages/cirq/sim/state_vector_simulation_state.py", line 351, in __init__
state = _BufferedStateVector.create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib64/python3.12/site-packages/cirq/sim/state_vector_simulation_state.py", line 84, in create
state_vector = state_vector.copy()
^^^^^^^^^^^^^^^^^^^
numpy._core._exceptions._ArrayMemoryError: Unable to allocate 8.00 TiB for an array with shape (2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) and data type complex64
They were able to work around the problem by calling QSimSimulator()._simulate_impl() directly.
What solution or approach do you envision?
We should investigate whether the copy can be handled in a more user-friendly way.
How urgent is this for you?
P2 – needed within two quarters
Metadata
Metadata
Assignees
Labels
area/performanceInvolves performance problems or improvementsInvolves performance problems or improvementsarea/pythonInvolves the Python code in qsimInvolves the Python code in qsimarea/qsimcirqInvolves the qsim-Cirq integration layerInvolves the qsim-Cirq integration layercontributors welcomeHelp with this would be appreciatedHelp with this would be appreciatedno QC knowledge neededDoes not require knowledge of quantum computingDoes not require knowledge of quantum computingpriority/p2Medium priorityMedium priority