我想要一个小功能来检测某台计算机是否具有支持CUDA的GPU,例如以下内容。
#include <stdio.h>
#include <cuda_runtime.h>
int main() {
int deviceCount;
struct cudaDeviceProp properties;
cudaError_t cudaResultCode = cudaGetDeviceCount(&deviceCount);
if (cudaResultCode != cudaSuccess)
deviceCount = 0;
printf("%d GPU CUDA device(s) found\n", deviceCount);
}
在未插入GPU的计算机上(但安装了CUDA库),此代码会触发驱动程序将消息记录到stderr。
$ ./a.out
FATAL: Error inserting nvidia (/lib/modules/2.6.32-504.16.2.el6.x86_64/extra/nvidia.ko): No such device
0 GPU CUDA device(s) found
有没有办法阻止驱动程序打印此消息?(在没有GPU且没有关闭stderr或其他黑客的机器上)
答案 0 :(得分:1)
实现此目的的最简单方法是将stderr重定向到/ dev / null(或错误日志文件)。详情请见http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
然后打印出的唯一内容就是你向stdout传达的信息。