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