Changed contract() input to interleaved format

This commit is contained in:
tankya2
2023-02-14 14:54:51 +08:00
committed by Alessandro Candido
parent 3b00c81330
commit 93ec07c237
2 changed files with 8 additions and 35 deletions

View File

@@ -62,7 +62,6 @@ def main_cuquantum(args: argparse.Namespace):
nqubits = args.nqubits
circuit_name = args.circuit
datatype = args.precision
# Create qibo quibit
if circuit_name in ("qft", "QFT"):
circuit = QFT(nqubits)
@@ -70,12 +69,10 @@ def main_cuquantum(args: argparse.Namespace):
raise NotImplementedError(f"Cannot find circuit {circuit_name}.")
myconvertor = QiboCircuitToEinsum(circuit, dtype=datatype)
expression, operands = myconvertor.state_vector()
operands_expression = myconvertor.state_vector()
result_qibo = run_bench(circuit, "Qibo")
sv_cutn = run_bench(
lambda: contract(expression, *operands), "cuQuantum cuTensorNet"
)
sv_cutn = run_bench(lambda: contract(*operands_expression), "cuQuantum cuTensorNet")
# print(f"is sv in agreement?", cp.allclose(sv_cutn.flatten(), result_qibo.state(numpy=True)))
assert cp.allclose(sv_cutn.flatten(), result_qibo.state(numpy=True))