xref: /aosp_15_r20/external/pytorch/c10/cuda/impl/CUDATest.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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 Worker bool 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 Worker int 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 Worker int 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