ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
viennacl/device_specific/builtin_database/reduction.hpp
Go to the documentation of this file.
00001 #ifndef VIENNACL_DEVICE_SPECIFIC_BUILTIN_DATABASE_REDUCTION_HPP_
00002 #define VIENNACL_DEVICE_SPECIFIC_BUILTIN_DATABASE_REDUCTION_HPP_
00003 
00004 /* =========================================================================
00005    Copyright (c) 2010-2015, 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 manual)
00017 
00018    License:         MIT (X11), see file LICENSE in the base directory
00019 ============================================================================= */
00020 
00021 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/northern_islands/barts.hpp"
00022 
00023 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/fermi/tesla_c2050.hpp"
00024 
00025 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/fermi/geforce_gtx_470.hpp"
00026 
00027 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/maxwell/geforce_gtx_750_ti.hpp"
00028 
00029 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/northern_islands/scrapper.hpp"
00030 
00031 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/tesla/geforce_gtx_260.hpp"
00032 
00033 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/southern_islands/tahiti.hpp"
00034 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/northern_islands/devastator.hpp"
00035 
00036 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/kepler/tesla_k20m.hpp"
00037 #include "viennacl/device_specific/builtin_database/devices/gpu/nvidia/fermi/geforce_gtx_580.hpp"
00038 
00039 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/volcanic_islands/hawaii.hpp"
00040 
00041 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/evergreen/cypress.hpp"
00042 #include "viennacl/device_specific/builtin_database/devices/gpu/amd/evergreen/cedar.hpp"
00043 
00044 
00045 #include "viennacl/ocl/device_utils.hpp"
00046 
00047 #include "viennacl/scheduler/forwards.h"
00048 
00049 #include "viennacl/device_specific/forwards.h"
00050 #include "viennacl/device_specific/builtin_database/common.hpp"
00051 
00052 #include "viennacl/device_specific/builtin_database/devices/accelerator/fallback.hpp"
00053 #include "viennacl/device_specific/builtin_database/devices/cpu/fallback.hpp"
00054 #include "viennacl/device_specific/builtin_database/devices/gpu/fallback.hpp"
00055 
00061 namespace viennacl
00062 {
00063 namespace device_specific
00064 {
00065 namespace builtin_database
00066 {
00067 
00068 inline database_type<reduction_template::parameters_type> init_reduction()
00069 {
00070   database_type<reduction_template::parameters_type> result;
00071 
00072   devices::accelerator::fallback::add_4B(result);
00073   devices::accelerator::fallback::add_8B(result);
00074 
00075   devices::cpu::fallback::add_4B(result);
00076   devices::cpu::fallback::add_8B(result);
00077 
00078   devices::gpu::fallback::add_4B(result);
00079   devices::gpu::fallback::add_8B(result);
00080   devices::gpu::amd::evergreen::cedar::add_4B(result);
00081   devices::gpu::amd::evergreen::cypress::add_4B(result);
00082   devices::gpu::amd::evergreen::cypress::add_8B(result);
00083   devices::gpu::amd::volcanic_islands::hawaii::add_4B(result);
00084   devices::gpu::amd::volcanic_islands::hawaii::add_8B(result);
00085   devices::gpu::nvidia::fermi::geforce_gtx_580::add_4B(result);
00086   devices::gpu::nvidia::fermi::geforce_gtx_580::add_8B(result);
00087   devices::gpu::nvidia::kepler::tesla_k20m::add_4B(result);
00088   devices::gpu::nvidia::kepler::tesla_k20m::add_8B(result);
00089   devices::gpu::amd::southern_islands::tahiti::add_4B(result);
00090   devices::gpu::amd::southern_islands::tahiti::add_8B(result);
00091   devices::gpu::amd::northern_islands::devastator::add_4B(result);
00092   devices::gpu::nvidia::tesla::geforce_gtx_260::add_4B(result);
00093   devices::gpu::nvidia::tesla::geforce_gtx_260::add_8B(result);
00094   devices::gpu::amd::northern_islands::scrapper::add_4B(result);
00095   devices::gpu::nvidia::maxwell::geforce_gtx_750_ti::add_4B(result);
00096   devices::gpu::nvidia::maxwell::geforce_gtx_750_ti::add_8B(result);
00097   devices::gpu::nvidia::fermi::geforce_gtx_470::add_4B(result);
00098   devices::gpu::nvidia::fermi::geforce_gtx_470::add_8B(result);
00099   devices::gpu::nvidia::fermi::tesla_c2050::add_4B(result);
00100   devices::gpu::nvidia::fermi::tesla_c2050::add_8B(result);
00101   devices::gpu::amd::northern_islands::barts::add_4B(result);
00102 
00103   return result;
00104 }
00105 
00106 static database_type<reduction_template::parameters_type> reduction = init_reduction();
00107 
00108 template<class NumericT>
00109 reduction_template::parameters_type const & reduction_params(ocl::device const & device)
00110 {
00111   return get_parameters<NumericT>(reduction, device);
00112 }
00113 
00114 
00115 }
00116 }
00117 }
00118 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines