cuda - 在应用程序运行时检查 CUDA MPS 服务器是否打开/关闭?

标签 cuda nvidia

我的问题是是否有可能以某种方式查询 MPS 服务器并检查它是否在应用程序运行时在 GPU 上运行?

据我所知,通过使用 nvidia-smi 可以检查 CUDA MPS 服务器是否在 GPU 上运行,但我不确定如何在应用程序运行时使用此系统命令。是否有任何其他方法可以在应用程序运行时检查 MPS 服务器是否在 GPU 上运行?

最佳答案

我找到了这样做的方法,但如果您认为可能有更好的方法,请分享。无论如何,这种方法对我有用。

基本上,当 MPS 控制守护进程启动时,一个名为 control 的文件会在/tmp/nvidia-mps/中创建,当守护进程退出时,该文件将不再存在。

我用了access检查/tmp/nvidia-mps/control 文件是否存在的功能。

代码如下:

#include <unistd.h>
#include <stdio.h>


int main()
{
    int result;
    const char *filename = "/tmp/nvidia-mps/control"; // only available if nvidia-cuda-mps-control daemon is running
    result = access (filename, F_OK); // F_OK tests existence also (R_OK,W_OK,X_OK).
                                      //            for readable, writeable, executable
    if (result == 0)
    {
       printf("%s MPS demon is running!!\n",filename);
    }
    else
    {
       printf("%s MPS demon doesn't exist!\n",filename);
    }
    return 0;
}

结果如下:

# gcc mps-checker.c -o mps-status
# nvidia-cuda-mps-control -d
# ./mps-status
/tmp/nvidia-mps/control MPS demon is running!!
# echo quit | nvidia-cuda-mps-control
# ./mps-status
/tmp/nvidia-mps/control MPS demon doesn't exist!

关于cuda - 在应用程序运行时检查 CUDA MPS 服务器是否打开/关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083995/

相关文章:

cuda常量内存引用

cuda - gpu上的模运算

opengl - 在 nvidia opengl 上混合 glGetTexImage 和 imageStore 的问题

opencl - 在 OpenCL 3.0 中查找 float32 的 `atomic_fetch_add` 示例

cuda - Nsight Eclipse : . cuda-gdbinit:没有这样的文件或目录

c++ - cudaMemcpy 段错误

cudaEvent从多个线程同步

tensorflow - 使用GPU将tensorflow服务模型部署到kubernetes时出现意外错误

linux - Master/Slave AMD + NVidia中的GPU和linux

cuda - nvidia-smi 是如何工作的?