2a10ecf4
David Mayerich
updated files and...
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
extern "C"
size_t constMem(){
int device;
cudaGetDevice(&device); //get the id of the current device
cudaDeviceProp props; //device property structure
cudaGetDeviceProperties(&props, device);
return props.totalConstMem;
}
//tests that a given device ID is valid and provides at least the specified compute capability
bool testDevice(int d, int major, int minor){
int nd;
cudaGetDeviceCount(&nd); //get the number of CUDA devices
if(d < nd && d > 0) { //if the given ID has an associated device
cudaDeviceProp props;
cudaGetDeviceProperties(&props, d); //get the device properties structure
if(props.major >= major && props.minor >= minor)
return true;
}
return false;
}
//tests each device ID in a list and returns the number of devices that fit the desired
// compute capability
int testDevices(int* dlist, unsigned n_devices, int major, int minor){
int valid = 0;
for(int d = 0; d < n_devices; d++){
if(testDevice(dlist[d], major, minor))
valid++;
}
return valid;
}
|