确定计算机在CUDA C运行时是否具有GPU

时间:2012-01-27 15:11:52

标签: c cuda gpu

我正在支持GPU的机器上编写代码,但我的代码需要可移植到没有GPU的计算机上。所以我写了两个函数,一个只使用CPU,一个使用CPU + GPU。

我是一个条件合规性代码,例如:

if (COMPUTER_HAS_GPU)
    //Run CPU+GPU code  
else  
    //Run CPU only code

有这样的东西吗?

2 个答案:

答案 0 :(得分:5)

您可以使用cudaGetDeviceCount()

例如:

int devices = 0; 

cudaError_t err = cudaGetDeviceCount(&devices); 

if (devices > 0 && err == cudaSuccess) 
{ 
    // Run CPU+GPU code
} 
else
{ 
    // Run CPU only code
} 

答案 1 :(得分:2)

您可以尝试使用cudaGetDeviceCount(*int);功能,它可以为您提供多少cuda设备,您可以查看错误代码。

int i;

cudaError_t e = cudaGetDeviceCount(&i);

if (e == cudaErrorNoDevice) {
 // No CUDA device :-(
} else {
 // CUDA device .o/
}