Commit 506c8e70 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Added qcor compile and test



Fixed a couple of copy-paste errors.

Also, comment out a debug logging

Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent ba04ecca
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ add_qcor_compile_and_exe_test(multi_ctrl_test ctrl-gates/multiple_controls.cpp)
add_qcor_compile_and_exe_test(qrt_obj_func_simple simple/simple-objective-function.cpp)
add_qcor_compile_and_exe_test(qrt_kernel_autograd_simple simple/gradients_optimization.cpp)
add_qcor_compile_and_exe_test(qrt_bell_ctrl bell/bell_control.cpp)
add_qcor_compile_and_exe_test(qrt_print_native_code simple/print_native_code.cpp)

# Lambda tests
add_qcor_compile_and_exe_test(qrt_qpu_lambda_simple qpu_lambda/lambda_test.cpp)
+26 −0
Original line number Diff line number Diff line
__qpu__ void bell(qreg q) {
  H(q[0]);
  CX(q[0], q[1]);
  Measure(q);
}

int main() {
  auto q = qalloc(2);
  // print_native_code for QuantumKernel
  bell::print_native_code(q);

  auto bell_lambda = qpu_lambda([](qreg q) {
    H(q[0]);
    X::ctrl(q[0], q[1]);
    Measure(q);
  });

  // print_native_code for qpu_lambda
  bell_lambda.print_native_code(q);


  using BellSignature = KernelSignature<qreg>;
  BellSignature callable(bell);
  // print_native_code for KernelSignature
  callable.print_native_code(q);
}
+5 −5
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ class QuantumKernel {
  static void print_native_code(std::ostream &os, Args... args) {
    Derived derived(args...);
    KernelSignature<Args...> callable(derived);
    return internal::print_kernel<Args...>(callable, os, {}, args...);
    return internal::print_native_code<Args...>(callable, os, {}, args...);
  }
  static void print_native_code(Args... args) {
    return print_native_code(std::cout, args...);
@@ -139,7 +139,7 @@ class QuantumKernel {
                                Args... args) {
    Derived derived(args...);
    KernelSignature<Args...> callable(derived);
    return internal::print_kernel<Args...>(callable, os, options, args...);
    return internal::print_native_code<Args...>(callable, os, options, args...);
  }
  static void print_native_code(HeterogeneousMap options, Args... args) {
    return print_native_code(std::cout, options, args...);
@@ -619,7 +619,7 @@ class _qpu_lambda {
      jit_src.insert(end, restore_string.str());
    }

    std::cout << "JITSRC:\n" << jit_src << "\n";
    // std::cout << "JITSRC:\n" << jit_src << "\n";
    // JIT Compile, storing the function pointers
    qjit.jit_compile(jit_src);
  }
@@ -755,7 +755,7 @@ class _qpu_lambda {
  template <typename... FunctionArgs>
  void print_native_code(std::ostream &os, FunctionArgs... args) {
    KernelSignature<FunctionArgs...> callable(*this);
    return internal::print_native_code<FunctionArgs...>(callable, os, args...);
    return internal::print_native_code<FunctionArgs...>(callable, os, {}, args...);
  }
  template <typename... FunctionArgs>
  void print_native_code(FunctionArgs... args) {
@@ -901,7 +901,7 @@ class KernelSignature {
  void print_kernel(Args... args) { print_kernel(std::cout, args...); }

  void print_native_code(std::ostream &os, Args... args) {
    return internal::print_native_code<Args...>(*this, os, args...);
    return internal::print_native_code<Args...>(*this, os, {}, args...);
  }
  void print_native_code(Args... args) {
    return print_native_code(std::cout, args...);