Loading lib/qsim/base/qcor_qsim.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,13 @@ bool CostFunctionEvaluator::initialize(Observable *observable, return target_operator != nullptr; } void executePassManager( std::vector<std::shared_ptr<CompositeInstruction>> evalKernels) { for (auto &subKernel : evalKernels) { execute_pass_manager(subKernel); } } QuantumSimulationModel ModelBuilder::createModel(Observable *obs, TdObservable td_ham, const HeterogeneousMap ¶ms) { Loading lib/qsim/base/qcor_qsim.hpp +4 −0 Original line number Diff line number Diff line Loading @@ -171,5 +171,9 @@ getObjEvaluator(PauliOperator &obs, const std::string &name = "default", const HeterogeneousMap &init_params = {}) { return getObjEvaluator(&obs, name, init_params); } // Helper to apply optimization/placement before evaluation: void executePassManager( std::vector<std::shared_ptr<CompositeInstruction>> evalKernels); } // namespace qsim } // namespace qcor No newline at end of file lib/qsim/impls/modules/time_series_iqpe.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,7 @@ double PhaseEstimationObjFuncEval::evaluate( auto qpu = xacc::internal_compiler::get_qpu(); auto temp_buffer = xacc::qalloc(nbQubits + 1); // Execute all sub-kernels executePassManager(fsToExec); qpu->execute(temp_buffer, fsToExec); // Assemble execution data into a fast look-up map Loading runtime/qrt/qrt.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ std::string __placement_name = ""; std::vector<int> __qubit_map = {}; std::string __qrt_env = "nisq"; void execute_pass_manager() { void execute_pass_manager( std::shared_ptr<CompositeInstruction> optional_composite) { qcor::internal::PassManager passManager(__opt_level, __qubit_map, __placement_name); auto optData = passManager.optimize(::quantum::qrt_impl->get_current_program()); auto kernelToExecute = optional_composite ? optional_composite : ::quantum::qrt_impl->get_current_program(); auto optData = passManager.optimize(kernelToExecute); std::vector<std::string> user_passes; if (!__user_opt_passes.empty()) { Loading @@ -37,7 +41,7 @@ void execute_pass_manager() { // Runs user-specified passes for (const auto &user_pass : user_passes) { optData.emplace_back( qcor::internal::PassManager::runPass(user_pass, ::quantum::qrt_impl->get_current_program())); qcor::internal::PassManager::runPass(user_pass, kernelToExecute)); } if (__print_opt_stats) { Loading @@ -47,7 +51,7 @@ void execute_pass_manager() { } } passManager.applyPlacement(::quantum::qrt_impl->get_current_program()); passManager.applyPlacement(kernelToExecute); } std::vector<int> parse_qubit_map(const char *qubit_map_str) { Loading runtime/qrt/qrt.hpp +4 −1 Original line number Diff line number Diff line Loading @@ -187,7 +187,10 @@ extern std::vector<int> __qubit_map; extern std::vector<int> parse_qubit_map(const char *qubit_map_str); extern void apply_decorators(const std::string &decorator_cmdline_string); extern std::string __qrt_env; void execute_pass_manager(); // Execute the pass manager on the provided kernel. // If none provided, execute the pass manager on the current QRT kernel. void execute_pass_manager( std::shared_ptr<CompositeInstruction> optional_composite = nullptr); } // namespace internal_compiler } // namespace xacc Loading Loading
lib/qsim/base/qcor_qsim.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,13 @@ bool CostFunctionEvaluator::initialize(Observable *observable, return target_operator != nullptr; } void executePassManager( std::vector<std::shared_ptr<CompositeInstruction>> evalKernels) { for (auto &subKernel : evalKernels) { execute_pass_manager(subKernel); } } QuantumSimulationModel ModelBuilder::createModel(Observable *obs, TdObservable td_ham, const HeterogeneousMap ¶ms) { Loading
lib/qsim/base/qcor_qsim.hpp +4 −0 Original line number Diff line number Diff line Loading @@ -171,5 +171,9 @@ getObjEvaluator(PauliOperator &obs, const std::string &name = "default", const HeterogeneousMap &init_params = {}) { return getObjEvaluator(&obs, name, init_params); } // Helper to apply optimization/placement before evaluation: void executePassManager( std::vector<std::shared_ptr<CompositeInstruction>> evalKernels); } // namespace qsim } // namespace qcor No newline at end of file
lib/qsim/impls/modules/time_series_iqpe.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,7 @@ double PhaseEstimationObjFuncEval::evaluate( auto qpu = xacc::internal_compiler::get_qpu(); auto temp_buffer = xacc::qalloc(nbQubits + 1); // Execute all sub-kernels executePassManager(fsToExec); qpu->execute(temp_buffer, fsToExec); // Assemble execution data into a fast look-up map Loading
runtime/qrt/qrt.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ std::string __placement_name = ""; std::vector<int> __qubit_map = {}; std::string __qrt_env = "nisq"; void execute_pass_manager() { void execute_pass_manager( std::shared_ptr<CompositeInstruction> optional_composite) { qcor::internal::PassManager passManager(__opt_level, __qubit_map, __placement_name); auto optData = passManager.optimize(::quantum::qrt_impl->get_current_program()); auto kernelToExecute = optional_composite ? optional_composite : ::quantum::qrt_impl->get_current_program(); auto optData = passManager.optimize(kernelToExecute); std::vector<std::string> user_passes; if (!__user_opt_passes.empty()) { Loading @@ -37,7 +41,7 @@ void execute_pass_manager() { // Runs user-specified passes for (const auto &user_pass : user_passes) { optData.emplace_back( qcor::internal::PassManager::runPass(user_pass, ::quantum::qrt_impl->get_current_program())); qcor::internal::PassManager::runPass(user_pass, kernelToExecute)); } if (__print_opt_stats) { Loading @@ -47,7 +51,7 @@ void execute_pass_manager() { } } passManager.applyPlacement(::quantum::qrt_impl->get_current_program()); passManager.applyPlacement(kernelToExecute); } std::vector<int> parse_qubit_map(const char *qubit_map_str) { Loading
runtime/qrt/qrt.hpp +4 −1 Original line number Diff line number Diff line Loading @@ -187,7 +187,10 @@ extern std::vector<int> __qubit_map; extern std::vector<int> parse_qubit_map(const char *qubit_map_str); extern void apply_decorators(const std::string &decorator_cmdline_string); extern std::string __qrt_env; void execute_pass_manager(); // Execute the pass manager on the provided kernel. // If none provided, execute the pass manager on the current QRT kernel. void execute_pass_manager( std::shared_ptr<CompositeInstruction> optional_composite = nullptr); } // namespace internal_compiler } // namespace xacc Loading