Commit 8f7b3a62 authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

merged master, updated docker deploy base to point to new llvm fork (for now)

parents c589b8ca 9e548287
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ Navigate to ``https://localhost:3000`` in your browser to open the IDE and get s
Compiler (C++14): GNU 6.1+, Clang 3.4+
CMake 3.9+ (for build)
XACC: see https://xacc.readthedocs.io/en/latest/install.html#building-xacc
LLVM/Clang [Syntax Handler Fork](https://github.com/hfinkel/llvm-project-csp).
LLVM/Clang [Syntax Handler Fork](https://github.com/ornl-qci/llvm-project-csp).
```

## Linux Build Instructions
+23 −0
Original line number Diff line number Diff line
// Run a suite of circuit optimization benchmarks.
#include "qcor.hpp"

// Need to pass -DTEST_SOURCE_FILE=\"test_case_filename\" and -I resources/ to
// the qcor compiler: e.g.
// qcor -qpu qpp -DTEST_SOURCE_FILE=\"adder_8.qasm\" -I resources/
// circuit_opt_benchmark.cpp

#ifdef TEST_SOURCE_FILE
__qpu__ void testKernel(qreg q) {
  using qcor::openqasm;
#include TEST_SOURCE_FILE
}

int main() {

  // Allocate just 1 qubit, we don't actually want to run the simulation.
  auto q = qalloc(1);

  // Run the kernel
  testKernel(q);
}
#endif
 No newline at end of file

benchmarks/driver.py

0 → 100644
+29 −0
Original line number Diff line number Diff line
# Run circuit optimization benchmarks
import glob
import os
import sys
import subprocess
import pathlib
qcorExe = str(pathlib.Path.home()) + "/.xacc/bin/qcor"

# Configurations:
# Optimization level to run:
OPT_LEVEL = 1

dirPath = os.path.dirname(os.path.realpath(__file__))
listOfSrcFiles = glob.glob(dirPath + "/resources/*.qasm")
listOfTestCases = []
for srcFile in listOfSrcFiles:
  testCaseName = os.path.splitext(os.path.basename(srcFile))[0] + ".out"
  listOfTestCases.append(testCaseName)
  print("Compile test case: ", testCaseName)

  process = subprocess.Popen([qcorExe, "-DTEST_SOURCE_FILE=\"" + srcFile + "\"", "-o", testCaseName, "-opt", str(OPT_LEVEL), "-print-opt-stats", "circuit_opt_benchmark.cpp"],
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)
  stdout, stderr = process.communicate()

for testCase in listOfTestCases:
  print("Run Benchmark: ", testCase)
  testExe = dirPath + "/" + testCase
  process = subprocess.run([testExe], stdout=sys.stdout, stderr=subprocess.PIPE)
+140 −0
Original line number Diff line number Diff line
OPENQASM 2.0;
include "qelib1.inc";

qreg qubits[24];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
cx qubits[3],qubits[4];
cx qubits[8],qubits[9];
cx qubits[14],qubits[15];
cx qubits[21],qubits[22];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
ccx qubits[2],qubits[3],qubits[4];
ccx qubits[7],qubits[8],qubits[9];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[15];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[22];
ccx qubits[20],qubits[21],qubits[23];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
cx qubits[18],qubits[21];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
ccx qubits[16],qubits[23],qubits[17];
ccx qubits[15],qubits[23],qubits[22];
ccx qubits[4],qubits[10],qubits[9];
ccx qubits[9],qubits[17],qubits[22];
ccx qubits[9],qubits[16],qubits[15];
ccx qubits[16],qubits[23],qubits[17];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
cx qubits[18],qubits[21];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[20],qubits[21],qubits[23];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[6],qubits[8];
cx qubits[12],qubits[14];
cx qubits[19],qubits[21];
cx qubits[4],qubits[6];
cx qubits[9],qubits[12];
cx qubits[15],qubits[19];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
cx qubits[21],qubits[20];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
ccx qubits[18],qubits[19],qubits[21];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
cx qubits[4],qubits[6];
cx qubits[9],qubits[12];
cx qubits[15],qubits[19];
cx qubits[6],qubits[8];
cx qubits[12],qubits[14];
cx qubits[19],qubits[21];
cx qubits[1],qubits[0];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
cx qubits[19],qubits[18];
x qubits[0];
x qubits[2];
x qubits[5];
x qubits[7];
x qubits[11];
x qubits[13];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
ccx qubits[9],qubits[16],qubits[15];
ccx qubits[4],qubits[10],qubits[9];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[5],qubits[8];
cx qubits[11],qubits[14];
ccx qubits[7],qubits[8],qubits[10];
ccx qubits[13],qubits[14],qubits[16];
cx qubits[6],qubits[5];
cx qubits[12],qubits[11];
ccx qubits[7],qubits[8],qubits[9];
ccx qubits[13],qubits[14],qubits[15];
ccx qubits[2],qubits[3],qubits[4];
ccx qubits[0],qubits[1],qubits[3];
ccx qubits[5],qubits[6],qubits[8];
ccx qubits[11],qubits[12],qubits[14];
cx qubits[3],qubits[4];
cx qubits[8],qubits[9];
cx qubits[14],qubits[15];
cx qubits[3],qubits[2];
cx qubits[8],qubits[7];
cx qubits[14],qubits[13];
x qubits[0];
x qubits[2];
x qubits[5];
x qubits[7];
x qubits[11];
x qubits[13];
+163 −0
Original line number Diff line number Diff line
OPENQASM 2.0;
include "qelib1.inc";

qreg qubits[9];
x qubits[5];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
h qubits[5];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[4],qubits[8],qubits[5];
ccx qubits[3],qubits[7],qubits[8];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
ccx qubits[0],qubits[1],qubits[6];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[3],qubits[7],qubits[4];
ccx qubits[2],qubits[6],qubits[7];
ccx qubits[0],qubits[1],qubits[6];
x qubits[4];
x qubits[0];
x qubits[1];
x qubits[2];
x qubits[3];
h qubits[0];
h qubits[1];
h qubits[2];
h qubits[3];
h qubits[4];
Loading