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