@@ -53,23 +53,26 @@ static std::vector<int> setup_devices(uint32_t devices, int verbosity) {
53
53
if (devices & 1 ) {
54
54
devs.push_back (dev);
55
55
if (cudaSetDevice (dev) != cudaSuccess) {
56
- INFO (" failed to validate device %d" , dev);
57
- devs.pop_back ();
58
- }
59
- cudaDeviceProp props;
60
- auto err = cudaGetDeviceProperties (&props, dev);
61
- if (err != cudaSuccess) {
62
- INFO (" failed to cudaGetDeviceProperties(%d): %s\n " ,
63
- dev, cudaGetErrorString (err));
64
- devs.pop_back ();
65
- }
66
- if (props.major != (CUDA_ARCH / 10 ) || props.minor != (CUDA_ARCH % 10 )) {
67
- INFO (" compute capability mismatch for device %d: wanted %d.%d, have "
68
- " %d.%d\n >>>> you may want to build kmcuda with -DCUDA_ARCH=%d "
69
- " (refer to \" Building\" in README.md)\n " ,
70
- dev, CUDA_ARCH / 10 , CUDA_ARCH % 10 , props.major , props.minor ,
71
- props.major * 10 + props.minor );
56
+ INFO (" failed to validate device %d\n " , dev);
72
57
devs.pop_back ();
58
+ } else {
59
+ cudaDeviceProp props;
60
+ auto err = cudaGetDeviceProperties (&props, dev);
61
+ if (err != cudaSuccess) {
62
+ INFO (" failed to cudaGetDeviceProperties(%d): %s\n " ,
63
+ dev, cudaGetErrorString (err));
64
+ devs.pop_back ();
65
+ } else {
66
+ if (props.major != (CUDA_ARCH / 10 )
67
+ || props.minor != (CUDA_ARCH % 10 )) {
68
+ INFO (" compute capability mismatch for device %d: wanted %d.%d, have "
69
+ " %d.%d\n >>>> you may want to build kmcuda with -DCUDA_ARCH=%d "
70
+ " (refer to \" Building\" in README.md)\n " ,
71
+ dev, CUDA_ARCH / 10 , CUDA_ARCH % 10 , props.major , props.minor ,
72
+ props.major * 10 + props.minor );
73
+ devs.pop_back ();
74
+ }
75
+ }
73
76
}
74
77
}
75
78
devices >>= 1 ;
0 commit comments