00001 #ifndef VIENNACL_DEVICE_SPECIFIC_BUILTIN_DATABASE_MATRIX_AXPY_HPP_ 00002 #define VIENNACL_DEVICE_SPECIFIC_BUILTIN_DATABASE_MATRIX_AXPY_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 #include "viennacl/ocl/device_utils.hpp" 00045 00046 #include "viennacl/scheduler/forwards.h" 00047 00048 #include "viennacl/device_specific/forwards.h" 00049 #include "viennacl/device_specific/builtin_database/common.hpp" 00050 00051 #include "viennacl/device_specific/builtin_database/devices/accelerator/fallback.hpp" 00052 #include "viennacl/device_specific/builtin_database/devices/cpu/fallback.hpp" 00053 #include "viennacl/device_specific/builtin_database/devices/gpu/fallback.hpp" 00054 00060 namespace viennacl 00061 { 00062 namespace device_specific 00063 { 00064 namespace builtin_database 00065 { 00066 00067 inline database_type<matrix_axpy_template::parameters_type> init_matrix_axpy() 00068 { 00069 database_type<matrix_axpy_template::parameters_type> result; 00070 00071 devices::accelerator::fallback::add_4B(result); 00072 devices::accelerator::fallback::add_8B(result); 00073 00074 devices::cpu::fallback::add_4B(result); 00075 devices::cpu::fallback::add_8B(result); 00076 00077 devices::gpu::fallback::add_4B(result); 00078 devices::gpu::fallback::add_8B(result); 00079 devices::gpu::amd::evergreen::cedar::add_4B(result); 00080 devices::gpu::amd::evergreen::cypress::add_4B(result); 00081 devices::gpu::amd::evergreen::cypress::add_8B(result); 00082 devices::gpu::amd::volcanic_islands::hawaii::add_4B(result); 00083 devices::gpu::amd::volcanic_islands::hawaii::add_8B(result); 00084 devices::gpu::nvidia::fermi::geforce_gtx_580::add_4B(result); 00085 devices::gpu::nvidia::fermi::geforce_gtx_580::add_8B(result); 00086 devices::gpu::nvidia::kepler::tesla_k20m::add_4B(result); 00087 devices::gpu::nvidia::kepler::tesla_k20m::add_8B(result); 00088 devices::gpu::amd::southern_islands::tahiti::add_4B(result); 00089 devices::gpu::amd::southern_islands::tahiti::add_8B(result); 00090 devices::gpu::amd::northern_islands::devastator::add_4B(result); 00091 devices::gpu::nvidia::tesla::geforce_gtx_260::add_4B(result); 00092 devices::gpu::nvidia::tesla::geforce_gtx_260::add_8B(result); 00093 devices::gpu::amd::northern_islands::scrapper::add_4B(result); 00094 devices::gpu::nvidia::maxwell::geforce_gtx_750_ti::add_4B(result); 00095 devices::gpu::nvidia::maxwell::geforce_gtx_750_ti::add_8B(result); 00096 devices::gpu::nvidia::fermi::geforce_gtx_470::add_4B(result); 00097 devices::gpu::nvidia::fermi::geforce_gtx_470::add_8B(result); 00098 devices::gpu::nvidia::fermi::tesla_c2050::add_4B(result); 00099 devices::gpu::nvidia::fermi::tesla_c2050::add_8B(result); 00100 devices::gpu::amd::northern_islands::barts::add_4B(result); 00101 00102 return result; 00103 } 00104 00105 static database_type<matrix_axpy_template::parameters_type> matrix_axpy = init_matrix_axpy(); 00106 00107 template<class NumericT> 00108 matrix_axpy_template::parameters_type const & matrix_axpy_params(ocl::device const & device) 00109 { 00110 return get_parameters<NumericT>(matrix_axpy, device); 00111 } 00112 00113 } 00114 } 00115 } 00116 #endif