Как проверить OpenCL на GPU при удаленном входе в систему на Mac? - PullRequest
10 голосов
/ 14 января 2010

Моя программа OpenCL может найти устройство с графическим процессором, когда я захожу на консоль, но не когда я захожу удаленно через ssh. Кроме того, если я запускаю программу от имени пользователя root в сеансе ssh, программа может найти графический процессор.

Компьютер представляет собой компьютер Snow Leopard Mac с графическим процессором GeForce 9400.

Если я запускаю программу (см. Ниже) из консоли или от имени пользователя root, вывод будет следующим (обратите внимание на строку «GeForce 9400»):

2 devices found
Device #0 name = GeForce 9400
Device #1 name = Intel(R) Core(TM)2 Duo CPU     P8700  @ 2.53GHz

но если это только я, то через ssh запись GeForce 9400 отсутствует:

1 devices found
Device #0 name = Intel(R) Core(TM)2 Duo CPU     P8700  @ 2.53GHz

Я бы хотел протестировать свой код на графическом процессоре, не имея прав root. Это возможно? Упрощенная программа поиска GPU ниже:

#include <stdio.h>
#include <OpenCL/opencl.h>

int main(int argc, char** argv) {
    char dname[500];
    size_t namesize;
    cl_device_id devices[10];
    cl_uint num_devices;
    int d;

    clGetDeviceIDs(0, CL_DEVICE_TYPE_ALL, 10, devices, &num_devices);
    printf("%d devices found\n", num_devices);
    for (d = 0; d < num_devices; ++d) {
        clGetDeviceInfo(devices[d], CL_DEVICE_NAME, 500, dname, &namesize);
        printf("Device #%d name = %s\n", d, dname);
    }
    return 0;
}

РЕДАКТИРОВАТЬ: Я обнаружил, что по сути тот же вопрос задают на форумах nvidia . К сожалению, единственный ответ был в форме "это неправильный форум".

Ответы [ 9 ]

3 голосов
/ 19 марта 2010

Я ожидаю, что ресурс GPU принадлежит сеансу рабочего стола (который присутствует всегда, даже если отображается экран входа в систему), поэтому он недоступен для удаленных сеансов. Форсирование проблемы путем изменения разрешений подрывает систему и может привести к проблемам.

Вы пытались запустить Screen Sharing для удаленного доступа к Mac, а не ssh? Таким образом, вы можете запускать приложение на рабочем столе в обычном режиме и просматривать свои результаты (возможно, с некоторой задержкой, в зависимости от сетевого подключения).

2 голосов
/ 30 января 2013

У меня была такая же проблема под Ubuntu, пока я не нашел этот пост: http://dhruba.name/2012/11/09/opencl-cookbook-running-remote-multi-gpu-opencl-computations-over-ssh-on-ubuntu-or-debian-using-amd-catalyst-drivers/

Что сработало для меня, так это строка:

export COMPUTE=:0

После того, как я набрал это при удаленном входе в систему через ssh, clinfo правильно отобразил оба моих устройства (CPU и GPU)

2 голосов
/ 15 января 2010

В Windows кажется, что удаленный доступ к графическому процессору может быть невозможен, согласно этой ветке форума .

Этот пост о Windows, а не Mac, и, таким образом, не имеет прямого отношения к этому вопросу. Поскольку никто еще не дал никаких ответов, это самая важная информация, которую я нашел до сих пор.

1 голос
/ 07 марта 2012

Вы пробовали VNC? Я знаю, что мне нужно было использовать VNC для использования графического процессора на компьютерах с Windows в прошлом. Удаленный рабочий стол в Windows просто не будет работать, так как он использует вашу локальную видеокарту.

1 голос
/ 19 марта 2010

Каково состояние машины, когда вы пытаетесь подключиться к ней по ssh? С моими маками, если отображается только экран входа в систему, я не могу подключиться к нему по ssh, и если моя учетная запись пользователя зарегистрирована на рабочем столе, то программа, вызываемая ssh, может получить доступ к gpu. Я еще не пытался создать новую учетную запись пользователя на моей машине. Вы можете настроить автоматический вход в свою учетную запись, а затем просто потребовать пароль для выхода из заставки. Это должно обеспечить вам приемлемую безопасность и при этом обеспечить доступ вашей учетной записи к графическому процессору.

0 голосов
/ 07 октября 2012

Только вчера я вошел на свой рабочий компьютер (OS X 10.8.2) через SSH, и программа opencl хорошо работала с GPU. Я думаю, что есть только одна причина вашей проблемы - недостаточно прав для доступа к оборудованию GPU. Попробуйте войти в систему как пользователь с правами администратора или запустить программу через sudo.

0 голосов
/ 05 декабря 2010

Попробуйте использовать sudo. GPU - это просто еще одно устройство для операционной системы.

0 голосов
/ 25 ноября 2010

Вы пытались войти в систему локально и удаленно, в то же время? Если проблема заключается в том, что владение графическим процессором связано с локальным пользователем консоли графического интерфейса, и вы должны получить удаленный доступ через ssh, это должно работать; при условии, что компьютер не будет использоваться другим пользователем, сместив ваш локальный логин.

0 голосов
/ 19 января 2010

ОК, я не знаю Джека о Snow Leopard или OpenCL, но ...

Я слышал, что рабочий стол Mac основан на версии XWindows. В таком случае эта статья: http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=19 в котором обсуждается «как изменить параметры безопасности, чтобы разрешить удаленный сеанс доступа к X-серверу, работающему в системе». может быть полезным.

Поскольку эта статья посвящена приложениям ATI Stream (вместо OpenCL) и Linux (вместо MacOS), она может оказаться бесполезной, но взгляните и судите сами.

...