在应用程序运行时检查 CUDA MPS 服务器是否为 ON/OFF?
Checking if CUDA MPS server is ON/OFF during application runtime?
我的问题是是否可以在应用程序运行时以某种方式查询 MPS 服务器并检查它是否 运行 在 GPU 上?
据我所知,通过使用 nvidia-smi 可以检查 CUDA MPS 服务器是否在 GPU 上 运行,但我不确定如何在应用程序运行时使用此系统命令。在应用程序运行期间,是否有任何其他方法可以检查 MPS 服务器是否在 GPU 上 运行?
我找到了这样做的方法,但如果您认为可能有更好的方法,请分享。无论如何,这种方法对我有用。
基本上,当 MPS 控制守护程序启动时,会在 /tmp/nvidia-mps/ 中创建一个名为 control 的文件,当守护程序退出时,该文件将不再存在。
我使用了access函数来检查/tmp/nvidia-mps/控制文件是否存在。
代码如下:
#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!
我的问题是是否可以在应用程序运行时以某种方式查询 MPS 服务器并检查它是否 运行 在 GPU 上?
据我所知,通过使用 nvidia-smi 可以检查 CUDA MPS 服务器是否在 GPU 上 运行,但我不确定如何在应用程序运行时使用此系统命令。在应用程序运行期间,是否有任何其他方法可以检查 MPS 服务器是否在 GPU 上 运行?
我找到了这样做的方法,但如果您认为可能有更好的方法,请分享。无论如何,这种方法对我有用。
基本上,当 MPS 控制守护程序启动时,会在 /tmp/nvidia-mps/ 中创建一个名为 control 的文件,当守护程序退出时,该文件将不再存在。
我使用了access函数来检查/tmp/nvidia-mps/控制文件是否存在。
代码如下:
#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!