2015-06-27 1 views
1

Вопрос в том, можно ли каким-либо образом запросить сервер MPS и проверить, работает ли он на графическом процессоре во время выполнения приложения?Проверка наличия или отсутствия сервера CUDA MPS во время работы приложения?

Насколько я знаю, с помощью nvidia-smi можно проверить, работает ли сервер CUDA MPS на графическом процессоре, но я не уверен, как использовать эту системную команду во время выполнения приложения. Есть ли какой-либо другой способ проверить, работает ли сервер MPS на графическом процессоре во время выполнения приложения?

ответ

1

Я нашел способ сделать это, но если вы думаете, что может быть лучший способ, поделитесь им. Во всяком случае, этот подход работает для меня.

В основном, когда начинается управление демон MPS, файл с именем управления получает создан в/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! 
Смежные вопросы