Loading benchmarks/openqasm3/trotter/qsharp/timing_driver.py +25 −15 Original line number Diff line number Diff line Loading @@ -2,7 +2,14 @@ # Reference: https://github.com/microsoft/qsharp-compiler/tree/main/examples/QIR/Optimization import time, os, sys from statistics import mean, stdev os.chdir(sys.path[0]) n_runs = 10 data = [] for run_id in range(n_runs): start = time.time() # Dotnet build -> generate ll file (unoptimized) os.system('dotnet build') Loading @@ -13,10 +20,13 @@ os.system('/usr/local/aideqc/llvm/bin/clang -S qir/trotter.ll -O3 -emit-llvm -o # Compile and link: os.system('/usr/local/aideqc/llvm/bin/llvm-as qir/trotter-o3.ll -o qir/trotter.bc') os.system('/usr/local/aideqc/llvm/bin/llc -filetype=obj qir/trotter.bc -o qir/trotter.o') os.system('/usr/local/aideqc/llvm/bin/clang++ -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/root/.xacc/lib:/root/.xacc/lib:/usr/local/aideqc/llvm/lib:/root/.xacc/clang-plugins -L /root/.xacc/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /root/.xacc/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out') os.system('/usr/local/aideqc/llvm/bin/clang++ -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/usr/local/aideqc/qcor/lib:/usr/local/aideqc/qcor/lib:/usr/local/aideqc/llvm/lib:/usr/local/aideqc/qcor/clang-plugins -L /usr/local/aideqc/qcor/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /usr/local/aideqc/qcor/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out') end = time.time() print('Elapsed time:', end - start, ' [secs]') data.append(end - start) # Clean up (no incremental builds) os.system('rm -rf bin') os.system('rm -rf obj') os.system('rm -rf qir') print('==> Elapsed time =', mean(data), '+/-', stdev(data), '[secs]') No newline at end of file benchmarks/openqasm3/trotter/trotter.qasm +11 −10 Original line number Diff line number Diff line Loading @@ -7,15 +7,16 @@ const Jz = 1.0; const h = 1.0; qubit r[nb_qubits]; for step in [0:nb_steps] { // -h*sigma_x layers for i in [0:nb_steps] { for i in [0:nb_qubits] { rx(-h * step_size) r[i]; } // -Jz*sigma_z*sigma_z layers for i in [0:nb_steps - 1] { for i in [0:nb_qubits - 1] { cx r[i], r[i+1]; rz(-Jz * step_size) r[i + 1]; cx r[i], r[i+1]; } } No newline at end of file Loading
benchmarks/openqasm3/trotter/qsharp/timing_driver.py +25 −15 Original line number Diff line number Diff line Loading @@ -2,7 +2,14 @@ # Reference: https://github.com/microsoft/qsharp-compiler/tree/main/examples/QIR/Optimization import time, os, sys from statistics import mean, stdev os.chdir(sys.path[0]) n_runs = 10 data = [] for run_id in range(n_runs): start = time.time() # Dotnet build -> generate ll file (unoptimized) os.system('dotnet build') Loading @@ -13,10 +20,13 @@ os.system('/usr/local/aideqc/llvm/bin/clang -S qir/trotter.ll -O3 -emit-llvm -o # Compile and link: os.system('/usr/local/aideqc/llvm/bin/llvm-as qir/trotter-o3.ll -o qir/trotter.bc') os.system('/usr/local/aideqc/llvm/bin/llc -filetype=obj qir/trotter.bc -o qir/trotter.o') os.system('/usr/local/aideqc/llvm/bin/clang++ -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/root/.xacc/lib:/root/.xacc/lib:/usr/local/aideqc/llvm/lib:/root/.xacc/clang-plugins -L /root/.xacc/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /root/.xacc/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out') os.system('/usr/local/aideqc/llvm/bin/clang++ -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/usr/local/aideqc/qcor/lib:/usr/local/aideqc/qcor/lib:/usr/local/aideqc/llvm/lib:/usr/local/aideqc/qcor/clang-plugins -L /usr/local/aideqc/qcor/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /usr/local/aideqc/qcor/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out') end = time.time() print('Elapsed time:', end - start, ' [secs]') data.append(end - start) # Clean up (no incremental builds) os.system('rm -rf bin') os.system('rm -rf obj') os.system('rm -rf qir') print('==> Elapsed time =', mean(data), '+/-', stdev(data), '[secs]') No newline at end of file
benchmarks/openqasm3/trotter/trotter.qasm +11 −10 Original line number Diff line number Diff line Loading @@ -7,15 +7,16 @@ const Jz = 1.0; const h = 1.0; qubit r[nb_qubits]; for step in [0:nb_steps] { // -h*sigma_x layers for i in [0:nb_steps] { for i in [0:nb_qubits] { rx(-h * step_size) r[i]; } // -Jz*sigma_z*sigma_z layers for i in [0:nb_steps - 1] { for i in [0:nb_qubits - 1] { cx r[i], r[i+1]; rz(-Jz * step_size) r[i + 1]; cx r[i], r[i+1]; } } No newline at end of file