25 #ifdef VIENNACL_WITH_CUDA
27 h.cuda_handle().reset(x->cuda_mem);
28 h.cuda_handle().inc();
30 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * x->
size *
sizeof(
float));
32 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * x->
size *
sizeof(
double));
46 #ifdef VIENNACL_WITH_OPENCL
48 h.opencl_handle() = x->opencl_mem;
49 h.opencl_handle().inc();
51 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * static_cast<viennacl::vcl_size_t>(x->
size) *
sizeof(
float));
53 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * static_cast<viennacl::vcl_size_t>(x->
size) *
sizeof(
double));
72 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * static_cast<viennacl::vcl_size_t>(x->
size) *
sizeof(
float));
74 h.
raw_size(static_cast<viennacl::vcl_size_t>(x->
inc) * static_cast<viennacl::vcl_size_t>(x->
size) *
sizeof(
double));
87 return init_cuda_vector(h, x);
90 return init_opencl_vector(h, x);
93 return init_host_vector(h, x);
ViennaCLPrecision precision
ViennaCLBackendTypes backend_type
Implements the multi-memory-domain handle.
void switch_active_handle_id(memory_types new_id)
Switches the currently active handle. If no support for that backend is provided, an exception is thr...
Main abstraction class for multiple memory domains. Represents a buffer in either main RAM...
vcl_size_t raw_size() const
Returns the number of bytes of the currently active buffer.
ram_handle_type & ram_handle()
Returns the handle to a buffer in CPU RAM. NULL is returned if no such buffer has been allocated...