ViennaCL - The Vienna Computing Library  1.5.0
viennacl/ocl/forwards.h
Go to the documentation of this file.
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