禁用NVIDIA驱动程序打印到stderr?

时间:2015-07-03 22:35:47

标签: cuda gpu gpgpu

我想要一个小功能来检测某台计算机是否具有支持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或其他黑客的机器上)

1 个答案:

答案 0 :(得分:1)

实现此目的的最简单方法是将stderr重定向到/ dev / null(或错误日志文件)。详情请见http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

然后打印出的唯一内容就是你向stdout传达的信息。