我有一个算法分别实现了CPU版本的和GPU版本的,现在想做一个函数将这两个版本的程序整合在一起,也就是先检测电脑中有没有CUDA的运行环境,有就运行GPU版本的,没有就运行CPU版本的,想请教下大概怎么样实现~~
楼主您可以使用如下检测:
int count;
cudaError_t ret = cudaGetDeviceCount(&count);
if (ret != cudaSuccess || count ==0 ) {标记使用GPU} else {标记使用CPU}
请注意请先检测返回值!
此函数在没有CUDA支持的机器上也可以调用,但会返回cudaErrorInsufficientDriver之类的。
所以依次检测了返回值和可用设备数量。
EDIT:
修成了一个错误。count !=0 改成了count == 0。。。不小心打错了。请重新阅读。
谢谢斑竹,我去试试先~
刚才有个笔误,已经修正。请仔细看。谢谢哈。
嗯,我看出来了~~;P
哈哈。