| #include <cuda.h> |
| #include <cuda_runtime.h> |
| #include <iostream> |
| |
| static |
| __global__ |
| void DetermineIfValidCudaDevice() |
| { |
| } |
| |
| struct PACKED_DEFINE result_type |
| { |
| bool valid; |
| int value; |
| #if defined(NDEBUG) && !defined(DEFREL) |
| #error missing DEFREL flag |
| #endif |
| }; |
| |
| result_type can_launch_kernel() |
| { |
| result_type r; |
| DetermineIfValidCudaDevice <<<1,1>>> (); |
| r.valid = (cudaSuccess == cudaGetLastError()); |
| if(r.valid) |
| { |
| r.value = 1; |
| } |
| else |
| { |
| r.value = -1; |
| } |
| return r; |
| } |
| |
| int main(int argc, char **argv) |
| { |
| cudaError_t err; |
| int nDevices = 0; |
| err = cudaGetDeviceCount(&nDevices); |
| if(err != cudaSuccess) |
| { |
| std::cerr << cudaGetErrorString(err) << std::endl; |
| return 1; |
| } |
| return 0; |
| } |