1*da0073e9SAndroid Build Coastguard Worker // Just a little test file to make sure that the CUDA library works 2*da0073e9SAndroid Build Coastguard Worker 3*da0073e9SAndroid Build Coastguard Worker #include <c10/cuda/CUDAException.h> 4*da0073e9SAndroid Build Coastguard Worker #include <c10/cuda/impl/CUDATest.h> 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Worker #include <cuda_runtime.h> 7*da0073e9SAndroid Build Coastguard Worker 8*da0073e9SAndroid Build Coastguard Worker namespace c10::cuda::impl { 9*da0073e9SAndroid Build Coastguard Worker has_cuda_gpu()10*da0073e9SAndroid Build Coastguard Workerbool has_cuda_gpu() { 11*da0073e9SAndroid Build Coastguard Worker int count = 0; 12*da0073e9SAndroid Build Coastguard Worker C10_CUDA_IGNORE_ERROR(cudaGetDeviceCount(&count)); 13*da0073e9SAndroid Build Coastguard Worker 14*da0073e9SAndroid Build Coastguard Worker return count != 0; 15*da0073e9SAndroid Build Coastguard Worker } 16*da0073e9SAndroid Build Coastguard Worker c10_cuda_test()17*da0073e9SAndroid Build Coastguard Workerint c10_cuda_test() { 18*da0073e9SAndroid Build Coastguard Worker int r = 0; 19*da0073e9SAndroid Build Coastguard Worker if (has_cuda_gpu()) { 20*da0073e9SAndroid Build Coastguard Worker C10_CUDA_CHECK(cudaGetDevice(&r)); 21*da0073e9SAndroid Build Coastguard Worker } 22*da0073e9SAndroid Build Coastguard Worker return r; 23*da0073e9SAndroid Build Coastguard Worker } 24*da0073e9SAndroid Build Coastguard Worker 25*da0073e9SAndroid Build Coastguard Worker // This function is not exported c10_cuda_private_test()26*da0073e9SAndroid Build Coastguard Workerint c10_cuda_private_test() { 27*da0073e9SAndroid Build Coastguard Worker return 2; 28*da0073e9SAndroid Build Coastguard Worker } 29*da0073e9SAndroid Build Coastguard Worker 30*da0073e9SAndroid Build Coastguard Worker } // namespace c10::cuda::impl 31