1 #ifndef VIENNACL_OCL_DEVICE_UTILS_HPP_
2 #define VIENNACL_OCL_DEVICE_UTILS_HPP_
25 #define VIENNACL_OCL_MAX_DEVICE_NUM 8
28 #include <OpenCL/cl.h>
45 static const cl_uint intel_id = 32902;
46 static const cl_uint nvidia_id = 4318;
47 static const cl_uint amd_id = 4098;
48 static const cl_uint unknown_id = 0;
68 if(vendor_id==nvidia_id){
71 if((found= name.find(
"GeForce",0)) != std::string::npos){
72 if((found = name.find_first_of(
"123456789", found)) != std::string::npos){
73 switch (name[found]) {
74 case '2' :
return Tesla;
75 case '3' :
return Tesla;
77 case '4' :
return Fermi;
78 case '5' :
return Fermi;
91 else if((found = name.find(
"Tesla",0)) != std::string::npos){
92 if((found = name.find(
"CMK", found)) != std::string::npos){
94 case 'C' :
return Fermi;
95 case 'M' :
return Fermi;
111 else if(vendor_id==amd_id){
113 #define VIENNACL_DEVICE_MAP(device,arch)if(name.find(device,0)!=std::string::npos) return arch;
136 #undef VIENNACL_DEVICE_MAP
std::size_t vcl_size_t
Definition: forwards.h:58
Definition: device_utils.hpp:54
Definition: device_utils.hpp:55
#define VIENNACL_DEVICE_MAP(device, arch)
Definition: device_utils.hpp:62
This file provides the forward declarations for the main types used within ViennaCL.
Definition: device_utils.hpp:53
device_architecture_family
Definition: device_utils.hpp:51
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
Definition: cpu_ram.hpp:29
Definition: device_utils.hpp:58
Definition: device_utils.hpp:60
Definition: device_utils.hpp:59