Class CirqQsim

Inheritance Relationships

Base Type

  • public xacc::Accelerator

Class Documentation

class CirqQsim : public xacc::Accelerator

Backend emulator based on cuStateVec library via multi-GPU trajectory simulation with qsim.

Public Functions

inline virtual const std::string name() const override

Get the name of the backend accelerator.

Returns

Name string

inline virtual const std::string description() const override

Get the service description.

Returns

Description string

virtual void initialize(const xacc::HeterogeneousMap &params = {}) override

Initialize the backend accelerator.

Parameters

params – Initialization parameters

virtual void updateConfiguration(const xacc::HeterogeneousMap &config) override
inline virtual const std::vector<std::string> configurationKeys() override

Get the list of available configurations.

Returns

List of available configurations

inline virtual BitOrder getBitOrder() override

Get the Bit Order configuration.

Returns

Bit order

inline virtual xacc::HeterogeneousMap getProperties() override

Get any backend-specific properties.

Returns

Backend properties

virtual void execute(std::shared_ptr<xacc::AcceleratorBuffer> buffer, const std::shared_ptr<xacc::CompositeInstruction> compositeInstruction) override

Execute/emulate a single circuit.

Parameters
  • buffer – Buffer to store the execution results

  • compositeInstruction – Input circuit

virtual void execute(std::shared_ptr<xacc::AcceleratorBuffer> buffer, const std::vector<std::shared_ptr<xacc::CompositeInstruction>> compositeInstructions) override

Execute/emulate an array of circuits.

Parameters
  • buffer – Buffer to store the execution results

  • compositeInstructions – Input circuits

void set_num_gpus(const xacc::HeterogeneousMap &params)

Set the number of GPUs from user configs.

Parameters

params – User configs

void convert_noise_channel(NoiseModel noise_model)

Function to convert a Kraus channel to qsim type.

Parameters

noise_model

Private Members

int m_shots
int m_numThreads
int m_gpus
uint32_t m_seed
bool m_ro_errors_enabled
NoiseModel *m_noise_model
std::unordered_map<std::string, std::map<std::vector<size_t>, std::vector<noise_channel_components>>> m_noise_channels