На моем сайте php я вызываю скрипт на python, используя theano и работающий на GPU.
Однако при вызове этого скрипта python из php кажется, что apache не имеет каких-либо разрешений на GPU, поэтому программа возвращается к CPU, что гораздо менее эффективно по сравнению с GPU.
Как я могу предоставить права apache для запуска программ на GPU?
Я бы разделил это, сохранил требование как событие в некотором хранилище (например, redis или даже rabbitmq) и послушал его с помощью какого-нибудь демонизированного скрипта (cron был бы плохим дополнением, так как его было бы трудно выполнять чаще, чем каждую минуту) , Сценарий обновит запись в хранилище с результатами, и вы сможете снова получить к ней доступ в стеке http. Вы можете реализовать functionallity через ajax или использовать команду usleep в php для ожидания результатов. Если вы используете цикл while, не забывайте прерывать его через 1 секунду или что-то еще, чтобы запрос не выполнялся слишком долго.
Ваша проблема может быть настроенным пользователем, который выполняет двоичный файл php — возможно, ему не разрешен доступ к этим двоичным файлам в вашей системе. Обычно это пользователь www-данных. Добавив пользователя www-data в нужную группу, вы сможете решить ее, не разделив все. Взгляните на владельца и разрешения бинарного файла, чтобы понять это.
Других решений пока нет …