|
Sequential Quantum Gate Decomposer
v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
|
Provides functions to link and manage data-flow accelerator libraries for state vector simulation. More...
#include "common_GROQ.h"#include "matrix_base.hpp"#include <dlfcn.h>#include <unistd.h>#include <tbb/queuing_mutex.h>
Go to the source code of this file.
Functions | |
| void | apply_to_groq_sv (int reserved_device_num, int chosen_device_num, int qbit_num, std::vector< Matrix > &u3_qbit, std::vector< int > &target_qbits, std::vector< int > &control_qbits, Matrix &quantum_state, int id_in) |
| Call to pefrom the state vector simulation on the Groq hardware. More... | |
| int | get_initialize_id () |
| Call to get the identification number of the inititalization of the library. More... | |
| int | init_groq_sv_lib (const int reserved_device_num, int initialize_id_in) |
| Call to allocated Groq cards for calculations. More... | |
| void | unload_groq_sv_lib () |
| Call to unload the programs from the reserved Groq cards. More... | |
Variables | |
| int(* | calcsvKernelGroq_dll )(int num_gates, float *gates, int *target_qubits, int *control_qubits, float *result_real, float *result_imag, int device_num) = NULL |
| size_t(* | get_accelerator_avail_num_sv_dll )() = NULL |
| size_t(* | get_accelerator_free_num_sv_dll )() = NULL |
| void * | handle_sv = NULL |
| int(* | initialize_groq_sv_dll )(int accelerator_num) = NULL |
| int | initialize_id = -1 |
| int(* | load_sv_dll )(float *data, size_t num_qubits, size_t device_num) = NULL |
| void(* | releive_groq_sv_dll )() = NULL |
Provides functions to link and manage data-flow accelerator libraries for state vector simulation.
Definition in file common_GROQ.cpp.
| void apply_to_groq_sv | ( | int | reserved_device_num, |
| int | chosen_device_num, | ||
| int | qbit_num, | ||
| std::vector< Matrix > & | u3_qbit, | ||
| std::vector< int > & | target_qbits, | ||
| std::vector< int > & | control_qbits, | ||
| Matrix & | quantum_state, | ||
| int | id_in | ||
| ) |
Call to pefrom the state vector simulation on the Groq hardware.
| reserved_device_num | The number of Groq accelerator cards to be allocated for the calulations |
| chosen_device_num | The ordinal number of the Groq accelerator card on which the calculation should be performed (0<=chosen_device_num<reserved_device_num) |
| qbit_num | The number of qubits |
| u3_qbit | An array of the gate kernels |
| target_qbits | The array of target qubits |
| control_qbits | The array of control qubits |
| quantum_state | The input state vector on which the transformation is applied. The transformed state is returned via this input. |
| id_in | Identification number of the inititalized library |
Definition at line 157 of file common_GROQ.cpp.


| int get_initialize_id | ( | ) |
Call to get the identification number of the inititalization of the library.
Definition at line 64 of file common_GROQ.cpp.
Call to allocated Groq cards for calculations.
| reserved_device_num | The number of Groq accelerator cards to be allocated for the calulations |
| initialize_id_in | Identification number of the inititalization of the library |
Definition at line 105 of file common_GROQ.cpp.

| void unload_groq_sv_lib | ( | ) |
Call to unload the programs from the reserved Groq cards.
Definition at line 78 of file common_GROQ.cpp.
| int(* calcsvKernelGroq_dll) (int num_gates, float *gates, int *target_qubits, int *control_qubits, float *result_real, float *result_imag, int device_num) = NULL |
Definition at line 48 of file common_GROQ.cpp.
| size_t(* get_accelerator_avail_num_sv_dll) () = NULL |
Definition at line 46 of file common_GROQ.cpp.
| size_t(* get_accelerator_free_num_sv_dll) () = NULL |
Definition at line 47 of file common_GROQ.cpp.
| void* handle_sv = NULL |
Definition at line 42 of file common_GROQ.cpp.
Definition at line 51 of file common_GROQ.cpp.
| int initialize_id = -1 |
Definition at line 56 of file common_GROQ.cpp.
| int(* load_sv_dll) (float *data, size_t num_qubits, size_t device_num) = NULL |
Definition at line 49 of file common_GROQ.cpp.
| void(* releive_groq_sv_dll) () = NULL |
Definition at line 50 of file common_GROQ.cpp.
1.8.13