46 throw std::runtime_error(
"GPUExecutionPolicy: device_backend must not be null");
60 (void)number_of_elements;
63 throw std::runtime_error(
"GPUExecutionPolicy::dot_product is not wired — GPU compute "
64 "paths use GPUBLAS directly on device buffers");
78 (void)number_of_elements;
82 throw std::runtime_error(
"GPUExecutionPolicy::add_scaled_vector is not wired — GPU "
83 "compute paths use GPUBLAS directly on device buffers");
94 (void)number_of_elements;
96 throw std::runtime_error(
"GPUExecutionPolicy::norm is not wired — GPU compute "
97 "paths use GPUBLAS directly on device buffers");
120 return local_number_of_elements;
130 int )
const override {
131 std::memcpy(full_data, local_data, local_count *
sizeof(
Real));
const device::GPUDeviceBackend & device_backend() const
void add_scaled_vector(int number_of_elements, ComplexValue scaling_factor, const ComplexValue *vector_x, ComplexValue *vector_y) const override
int group_rank_index() const override
bool is_root() const override
void reduce_within_group(Real *, int) const override
int group_size() const override
int number_of_processes() const override
void allgather_within_group(const Real *local_data, int local_count, Real *full_data, int) const override
ComplexValue dot_product(int number_of_elements, const ComplexValue *vector_x, const ComplexValue *vector_y) const override
Real norm(int number_of_elements, const ComplexValue *vector_x) const override
void reduce_within_group(ComplexValue *, int) const override
int global_number_of_elements(int local_number_of_elements) const override
std::shared_ptr< device::GPUDeviceBackend > device_backend_
GPUExecutionPolicy(std::shared_ptr< device::GPUDeviceBackend > device_backend)