ViennaCL - The Vienna Computing Library  1.2.0
compressed_matrix_kernels.h
Go to the documentation of this file.
1 #ifndef _VIENNACL_COMPRESSED_MATRIX_KERNELS_HPP_
2 #define _VIENNACL_COMPRESSED_MATRIX_KERNELS_HPP_
6 #include "viennacl/ocl/utils.hpp"
8 
9 //Automatically generated file from aux-directory, do not edit manually!
10 namespace viennacl
11 {
12  namespace linalg
13  {
14  namespace kernels
15  {
16  template<class TYPE, unsigned int alignment>
17  struct compressed_matrix;
18 
19 
21  template <>
22  struct compressed_matrix<float, 8>
23  {
24  static std::string program_name()
25  {
26  return "f_compressed_matrix_8";
27  }
28  static void init()
29  {
31  static std::map<cl_context, bool> init_done;
33  if (!init_done[context_.handle()])
34  {
35  std::string source;
38  source.append(compressed_matrix_align1_jacobi);
42  source.append(compressed_matrix_align8_vec_mul);
45  std::string prog_name = program_name();
46  #ifdef VIENNACL_BUILD_INFO
47  std::cout << "Creating program " << prog_name << std::endl;
48  #endif
49  context_.add_program(source, prog_name);
50  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
51  prog_.add_kernel("bicgstab_kernel2");
52  prog_.add_kernel("lu_forward");
53  prog_.add_kernel("jacobi");
54  prog_.add_kernel("lu_backward");
55  prog_.add_kernel("row_scaling_2");
56  prog_.add_kernel("row_scaling_1");
57  prog_.add_kernel("vec_mul");
58  prog_.add_kernel("bicgstab_kernel1");
59  prog_.add_kernel("jacobi_precond");
60  init_done[context_.handle()] = true;
61  } //if
62  } //init
63  }; // struct
64 
65  template <>
66  struct compressed_matrix<float, 1>
67  {
68  static std::string program_name()
69  {
70  return "f_compressed_matrix_1";
71  }
72  static void init()
73  {
75  static std::map<cl_context, bool> init_done;
77  if (!init_done[context_.handle()])
78  {
79  std::string source;
82  source.append(compressed_matrix_align1_jacobi);
86  source.append(compressed_matrix_align1_vec_mul);
89  std::string prog_name = program_name();
90  #ifdef VIENNACL_BUILD_INFO
91  std::cout << "Creating program " << prog_name << std::endl;
92  #endif
93  context_.add_program(source, prog_name);
94  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
95  prog_.add_kernel("bicgstab_kernel2");
96  prog_.add_kernel("lu_forward");
97  prog_.add_kernel("jacobi");
98  prog_.add_kernel("lu_backward");
99  prog_.add_kernel("row_scaling_2");
100  prog_.add_kernel("row_scaling_1");
101  prog_.add_kernel("vec_mul");
102  prog_.add_kernel("bicgstab_kernel1");
103  prog_.add_kernel("jacobi_precond");
104  init_done[context_.handle()] = true;
105  } //if
106  } //init
107  }; // struct
108 
109  template <>
110  struct compressed_matrix<float, 4>
111  {
112  static std::string program_name()
113  {
114  return "f_compressed_matrix_4";
115  }
116  static void init()
117  {
119  static std::map<cl_context, bool> init_done;
121  if (!init_done[context_.handle()])
122  {
123  std::string source;
126  source.append(compressed_matrix_align1_jacobi);
130  source.append(compressed_matrix_align4_vec_mul);
133  std::string prog_name = program_name();
134  #ifdef VIENNACL_BUILD_INFO
135  std::cout << "Creating program " << prog_name << std::endl;
136  #endif
137  context_.add_program(source, prog_name);
138  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
139  prog_.add_kernel("bicgstab_kernel2");
140  prog_.add_kernel("lu_forward");
141  prog_.add_kernel("jacobi");
142  prog_.add_kernel("lu_backward");
143  prog_.add_kernel("row_scaling_2");
144  prog_.add_kernel("row_scaling_1");
145  prog_.add_kernel("vec_mul");
146  prog_.add_kernel("bicgstab_kernel1");
147  prog_.add_kernel("jacobi_precond");
148  init_done[context_.handle()] = true;
149  } //if
150  } //init
151  }; // struct
152 
153 
154 
156  template <>
157  struct compressed_matrix<double, 8>
158  {
159  static std::string program_name()
160  {
161  return "d_compressed_matrix_8";
162  }
163  static void init()
164  {
166  static std::map<cl_context, bool> init_done;
168  if (!init_done[context_.handle()])
169  {
170  std::string source;
171  std::string fp64_ext = viennacl::ocl::current_device().double_support_extension();
181  std::string prog_name = program_name();
182  #ifdef VIENNACL_BUILD_INFO
183  std::cout << "Creating program " << prog_name << std::endl;
184  #endif
185  context_.add_program(source, prog_name);
186  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
187  prog_.add_kernel("bicgstab_kernel2");
188  prog_.add_kernel("lu_forward");
189  prog_.add_kernel("jacobi");
190  prog_.add_kernel("lu_backward");
191  prog_.add_kernel("row_scaling_2");
192  prog_.add_kernel("row_scaling_1");
193  prog_.add_kernel("vec_mul");
194  prog_.add_kernel("bicgstab_kernel1");
195  prog_.add_kernel("jacobi_precond");
196  init_done[context_.handle()] = true;
197  } //if
198  } //init
199  }; // struct
200 
201  template <>
202  struct compressed_matrix<double, 1>
203  {
204  static std::string program_name()
205  {
206  return "d_compressed_matrix_1";
207  }
208  static void init()
209  {
211  static std::map<cl_context, bool> init_done;
213  if (!init_done[context_.handle()])
214  {
215  std::string source;
216  std::string fp64_ext = viennacl::ocl::current_device().double_support_extension();
226  std::string prog_name = program_name();
227  #ifdef VIENNACL_BUILD_INFO
228  std::cout << "Creating program " << prog_name << std::endl;
229  #endif
230  context_.add_program(source, prog_name);
231  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
232  prog_.add_kernel("bicgstab_kernel2");
233  prog_.add_kernel("lu_forward");
234  prog_.add_kernel("jacobi");
235  prog_.add_kernel("lu_backward");
236  prog_.add_kernel("row_scaling_2");
237  prog_.add_kernel("row_scaling_1");
238  prog_.add_kernel("vec_mul");
239  prog_.add_kernel("bicgstab_kernel1");
240  prog_.add_kernel("jacobi_precond");
241  init_done[context_.handle()] = true;
242  } //if
243  } //init
244  }; // struct
245 
246  template <>
247  struct compressed_matrix<double, 4>
248  {
249  static std::string program_name()
250  {
251  return "d_compressed_matrix_4";
252  }
253  static void init()
254  {
256  static std::map<cl_context, bool> init_done;
258  if (!init_done[context_.handle()])
259  {
260  std::string source;
261  std::string fp64_ext = viennacl::ocl::current_device().double_support_extension();
271  std::string prog_name = program_name();
272  #ifdef VIENNACL_BUILD_INFO
273  std::cout << "Creating program " << prog_name << std::endl;
274  #endif
275  context_.add_program(source, prog_name);
276  viennacl::ocl::program & prog_ = context_.get_program(prog_name);
277  prog_.add_kernel("bicgstab_kernel2");
278  prog_.add_kernel("lu_forward");
279  prog_.add_kernel("jacobi");
280  prog_.add_kernel("lu_backward");
281  prog_.add_kernel("row_scaling_2");
282  prog_.add_kernel("row_scaling_1");
283  prog_.add_kernel("vec_mul");
284  prog_.add_kernel("bicgstab_kernel1");
285  prog_.add_kernel("jacobi_precond");
286  init_done[context_.handle()] = true;
287  } //if
288  } //init
289  }; // struct
290 
291 
292  } //namespace kernels
293  } //namespace linalg
294 } //namespace viennacl
295 #endif