Как я тестирую OpenCL на GPU при удаленном входе в систему на Mac?

Моя программа OpenCL может найти устройство GPU, когда я зарегистрирован в консоли, но не, когда я зарегистрирован удаленно с ssh. Далее, если я запускаю программу как корень на ssh сессии, программа может найти GPU.

Компьютер является Snow Leopard Mac с GeForce 9400 GPU.

Если я запускаю программу (см. ниже) от консоли или как корень, вывод следующим образом (заметьте строку "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

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

#include 
#include 

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. К сожалению, единственный ответ имел форму, "это - неправильный форум".

10
задан Christopher Bruns 20 January 2010 в 16:53
поделиться

4 ответа

Как уже упоминалось, ? используется для объявления типа значения как допускающего значение null .

Это замечательно в нескольких ситуациях:

  • При извлечении данных из базы данных с нулевым значением, хранящимся в поле, допускающем значение null (которое соответствует типу значения .NET)
  • При необходимости представления «не указано» или «не найдено».

Например, рассмотрим класс, используемый для представления отзывов от клиента, которому был задан ряд необязательных вопросов:

class CustomerFeedback
{
    string Name { get; set; }
    int? Age { get; set; }
    bool? DrinksRegularly { get; set; }
}

Использование типов NULL для Age и ChargedRegular может использоваться для указания на то, что клиент не ответил на эти вопросы.

В приведенном примере значение null для LastLogon означает, что пользователь никогда не входил в систему.

-121--4099457-

Можно обернуть каждую ссылку прослушивателя в WeakReference , а затем использовать SunOnWriteArraySet .

-121--2711746-

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

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

2
ответ дан 4 December 2019 в 02:50
поделиться

Хорошо, я не знаю Джека о Снежном Леопарде или OpenCL, но...

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

Так как эта статья о приложениях ATI Stream (вместо OpenCL) и Linux (вместо MacOS), она может быть не полезнаl, но посмотрите и посудите сами.

-2
ответ дан 4 December 2019 в 02:50
поделиться

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

1
ответ дан 4 December 2019 в 02:50
поделиться

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

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

3
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: