2016-05-09 6 views
5

In meiner PHP-Website rufe ich ein Python-Skript mit theano und läuft auf GPU.Wie PHP aktivieren Python-Skript auf GPU ausführen?

Allerdings, wenn dieses Python-Skript von PHP aufgerufen wird, scheint es Apache keine Berechtigungen für GPU, so dass das Programm zurück auf CPU, die weit weniger effizient im Vergleich zu GPU ist.

Wie kann ich Apache-Rechte gewähren, um Programme auf GPU auszuführen?

+0

Haben Sie sichergestellt, dass Ihr 'theano' die GPU-Verarbeitung aktiviert hat (http://deeplearning.net/software/theano/tutorial/using_gpu.html)? Vielleicht möchten Sie auch "Numba" (Ein Just-in-Time-Compiler (von Continuum Analytics), spezialisiert auf NumPy) Nutzung von GPU überprüfen. Siehe https://drive.google.com/drive/u/0/folders/0Bw5McUt95YdeanU5M0FFUlFsSjg. – boardrider

+1

Es könnte sich lohnen, einen Workaround zu verwenden. Starten Sie das geloopte Skript (bash?) Vom regulären Benutzer (oder Cron), der einen Job wartet (Python-Skript ausführen). Von php add job (es kann eine Textdatei mit Argumenten sein). –

+0

Überprüfen Sie auch dies: http://StackOverflow.com/a/5637909/3042057 –

Antwort

0

Ich würde das aufteilen, speichern Sie die Anforderung als Ereignis in einem Speicher (zum Beispiel redis oder sogar rabbitmq) und hören Sie das mit etwas dämonisiertem Skript (cron wäre eine schlechte Witze, da es schwer ist, es öfter laufen zu lassen als jede Minute). Das Skript aktualisiert den Speichereintrag mit den Ergebnissen, und Sie können in Ihrem http-Stapel erneut darauf zugreifen. Sie können die Funktionalität über Ajax implementieren oder einen usleep-Befehl in PHP verwenden, um auf die Ergebnisse zu warten. Wenn Sie eine while-Schleife verwenden, vergessen Sie nicht, sie nach 1 Sekunde oder so zu unterbrechen, damit die Anfrage nicht zu lange dauert.

Ihr Problem könnte der konfigurierte Benutzer sein, der die PHP-Binärdatei ausführt - es ist möglicherweise nicht erlaubt, auf diese Binärdateien auf Ihrem System zuzugreifen. Typischerweise ist es der www-Daten Benutzer. Wenn Sie den www-data-Benutzer zu der erforderlichen Gruppe hinzufügen, können Sie ihn möglicherweise lösen, ohne die gesamte Gruppe aufzuteilen. Werfen Sie einen Blick auf die Eigentümerrechte und die Berechtigungen der Binärdatei, um das herauszufinden.

Verwandte Themen