ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
viennacl_private.hpp
Go to the documentation of this file.
1 #ifndef VIENNACL_VIENNACL_PRIVATE_HPP
2 #define VIENNACL_VIENNACL_PRIVATE_HPP
3 
4 
5 /* =========================================================================
6  Copyright (c) 2010-2014, Institute for Microelectronics,
7  Institute for Analysis and Scientific Computing,
8  TU Wien.
9  Portions of this software are copyright by UChicago Argonne, LLC.
10 
11  -----------------
12  ViennaCL - The Vienna Computing Library
13  -----------------
14 
15  Project Head: Karl Rupp rupp@iue.tuwien.ac.at
16 
17  (A list of authors and contributors can be found in the PDF manual)
18 
19  License: MIT (X11), see file LICENSE in the base directory
20 ============================================================================= */
21 
22 #include <stdlib.h>
23 
24 #ifdef VIENNACL_WITH_OPENCL
25 #ifdef __APPLE__
26 #include <OpenCL/cl.h>
27 #else
28 #include <CL/cl.h>
29 #endif
30 #endif
31 
32 #include "viennacl.hpp"
33 
34 
35 /************* Backend Management ******************/
36 
38 {
39  //TODO: Add stream and/or device descriptors here
40 };
41 
43 {
45 };
46 
48 {
49  // Nothing to specify *at the moment*
50 };
51 
52 
55 {
57 
61 };
62 
63 
64 
65 /******** User Types **********/
66 
68 {
70 
71  union {
72  float value_float;
73  double value_double;
74  };
75 };
76 
78 {
81 
82  // buffer:
83 #ifdef VIENNACL_WITH_CUDA
84  char * cuda_mem;
85 #endif
86 #ifdef VIENNACL_WITH_OPENCL
87  cl_mem opencl_mem;
88 #endif
89  char * host_mem;
90 
92 };
93 
95 {
98 
99  // buffer:
100 #ifdef VIENNACL_WITH_CUDA
101  char * cuda_mem;
102 #endif
103 #ifdef VIENNACL_WITH_OPENCL
104  cl_mem opencl_mem;
105 #endif
106  char * host_mem;
107 
111 };
112 
114 {
119 
120  // buffer:
121 #ifdef VIENNACL_WITH_CUDA
122  char * cuda_mem;
123 #endif
124 #ifdef VIENNACL_WITH_OPENCL
125  cl_mem opencl_mem;
126 #endif
127  char * host_mem;
128 
133 
138 };
139 
140 
141 #endif
ViennaCLBackendTypes
Definition: viennacl.hpp:53
ViennaCLTranspose
Definition: viennacl.hpp:68
Generic backend for CUDA, OpenCL, host-based stuff.
ViennaCLPrecision precision
ViennaCLBackendTypes backend_type
ViennaCLBackend backend
ViennaCLHostBackend_impl host_backend
ViennaCLBackend backend
ViennaCLOpenCLBackend_impl opencl_backend
ViennaCLOrder
Definition: viennacl.hpp:61
ViennaCLBackend backend
int ViennaCLInt
Definition: viennacl.hpp:48
ViennaCLPrecision precision
ViennaCLPrecision
Definition: viennacl.hpp:89
ViennaCLTranspose trans
ViennaCLCUDABackend_impl cuda_backend
ViennaCLPrecision precision
ViennaCLPrecision precision