We recently upgraded from PennyLane v0.24 to v0.26 and our QAOA code running on lightning.gpu now returns this error:
2022-10-05 11:01:02,128 [ERROR] Error during benchmark run: Unable to allocate 16.0 PiB for an array with shape (33554432, 33554432) and data type complex128
Traceback (most recent call last):
File "/home/user1/dev/PennylaneQAOA.py", line 308, in run
params, cost_before = optimizer.step_and_cost(cost_function, params)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/optimize/gradient_descent.py", line 59, in step_and_cost
g, forward = self.compute_grad(objective_fn, args, kwargs, grad_fn=grad_fn)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/optimize/gradient_descent.py", line 117, in compute_grad
grad = g(*args, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_grad.py", line 115, in __call__
grad_value, ans = grad_fn(*args, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/wrap_util.py", line 20, in nary_f
return unary_operator(unary_f, x, *nary_op_args, **nary_op_kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_grad.py", line 133, in _grad_with_forward
vjp, ans = _make_vjp(fun, x)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/core.py", line 10, in make_vjp
end_value, end_node = trace(start_node, fun, x)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/tracer.py", line 10, in trace
end_box = fun(start_box)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/wrap_util.py", line 15, in unary_f
return fun(*subargs, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/qnode.py", line 661, in __call__
res = qml.execute(
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/interfaces/execution.py", line 443, in execute
res = _execute(
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/interfaces/autograd.py", line 66, in execute
return _execute(
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/tracer.py", line 44, in f_wrapped
ans = f_wrapped(*argvals, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/autograd/tracer.py", line 48, in f_wrapped
return f_raw(*args, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/interfaces/autograd.py", line 110, in _execute
res, jacs = execute_fn(tapes, **gradient_kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_device.py", line 566, in execute_and_gradients
res.append(self.batch_execute([circuit])[0])
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_qubit_device.py", line 586, in batch_execute
res = self.execute(circuit)
File "/home/user1/dev/quark/src/solvers/PennylaneQAOA.py", line 419, in ret_fun
returned_value = fun(*args, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_qubit_device.py", line 330, in execute
results = self.statistics(circuit.observables, circuit=circuit)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane_lightning_gpu/lightning_gpu.py", line 164, in statistics
return super().statistics(observables, shot_range, bin_size, circuit)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/_qubit_device.py", line 740, in statistics
results.append(self.expval(obs, shot_range=shot_range, bin_size=bin_size))
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane_lightning_gpu/lightning_gpu.py", line 436, in expval
device_wires, qml.matrix(observable).ravel(order="C")
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/transforms/op_transforms.py", line 213, in __call__
return self._create_wrapper(obj, *targs, **tkwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/transforms/op_transforms.py", line 412, in _create_wrapper
wrapper = self.fn(obj, *targs, **tkwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/transforms/op_transforms.py", line 274, in fn
raise e1 from None
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/transforms/op_transforms.py", line 258, in fn
return self._fn(obj, *args, **kwargs)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/pennylane/ops/functions/matrix.py", line 125, in matrix
return qml.utils.sparse_hamiltonian(op, wires=wire_order).toarray()
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/scipy/sparse/_compressed.py", line 1051, in toarray
out = self._process_toarray_args(order, out)
File "/home/user1/anaconda3/envs/my_env/lib/python3.9/site-packages/scipy/sparse/_base.py", line 1291, in _process_toarray_args
return np.zeros(self.shape, dtype=self.dtype, order=order)
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 16.0 PiB for an array with shape (33554432, 33554432) and data type complex128
2022-10-05 11:01:02,139 [ERROR] Wrong number of items passed 0, placement implies 1
The same code runs fine on v0.24.
The error happens in the step_and_cost() function when we call it with a 25 qubit problem.
Is there any explanation for this?