00001 #ifndef VIENNACL_OCL_FORWARDS_H_ 00002 #define VIENNACL_OCL_FORWARDS_H_ 00003 00004 /* ========================================================================= 00005 Copyright (c) 2010-2011, Institute for Microelectronics, 00006 Institute for Analysis and Scientific Computing, 00007 TU Wien. 00008 00009 ----------------- 00010 ViennaCL - The Vienna Computing Library 00011 ----------------- 00012 00013 Project Head: Karl Rupp rupp@iue.tuwien.ac.at 00014 00015 (A list of authors and contributors can be found in the PDF manual) 00016 00017 License: MIT (X11), see file LICENSE in the base directory 00018 ============================================================================= */ 00019 00024 #define VIENNACL_OCL_MAX_DEVICE_NUM 8 00025 00026 #include <stddef.h> 00027 00028 namespace viennacl 00029 { 00030 namespace ocl 00031 { 00032 //device type tags (cf. OpenCL standard) 00033 struct gpu_tag {}; 00034 struct cpu_tag {}; 00035 struct accelerator_tag {}; 00036 struct default_tag {}; 00037 00038 00039 class kernel; 00040 class device; 00041 class command_queue; 00042 class context; 00043 class program; 00044 00045 template<class OCL_TYPE> 00046 class handle; 00047 00048 template <typename KernelType> 00049 void enqueue(KernelType & k, viennacl::ocl::command_queue const & queue); 00050 00051 inline viennacl::ocl::context & current_context(); 00052 inline viennacl::ocl::device const & current_device(); 00053 } 00054 } //namespace viennacl 00055 00056 #endif 00057