如何让PHP在GPU上运行Python脚本?

6
在我的php网站中,我使用theano调用了一个在GPU上运行的python脚本。但是,在从php调用此python脚本时,似乎apache没有GPU权限,因此程序退回到CPU上,与GPU相比效率要低得多。
如何授予apache在GPU上运行程序的权限?

你确定你的theano启用了GPU处理吗(http://deeplearning.net/software/theano/tutorial/using_gpu.html)?此外,您可能还想检查`Numba`(一种即时编译器(来自Continuum Analytics),专门用于NumPy)对GPU的使用。请参见https://drive.google.com/drive/u/0/folders/0Bw5McUt95YdeanU5M0FFUlFsSjg。 - boardrider
1
使用解决方案可能是值得的。从常规用户(或 cron)开始循环脚本(bash?),等待作业(运行 Python 脚本)。从 PHP 添加作业(可以是带有参数的文本文件)。 - Alexey Rytikov
也请检查这个链接:https://dev59.com/81bTa4cB1Zd3GeqP7yT2#5637909 - Emin Mastizada
使用sudo调用PHP脚本。配置您的系统,以便Apache用户可以无需密码使用sudo运行此Python脚本。完成。 - miken32
我同意@AlexeyRytikov的观点,你应该使用一个解决方法,可能是一个外部的bash脚本。 - decadenza
1个回答

0

我会将其拆分,将要求保存为事件存储在某个存储中(例如redis或甚至rabbitmq),并使用一些守护脚本来监听它(cron不是一个好选择,因为很难使其每分钟运行多次)。该脚本将使用结果更新存储条目,您可以再次在http堆栈中访问它。您可以通过ajax实现功能或利用php中的usleep命令等待结果。如果使用while循环,请不要忘记在1秒后或其他时间后中断它,以便请求不会运行太长时间。

您的问题可能是配置的用户,执行php二进制文件的用户可能无权访问系统上的那些二进制文件。通常是www-data用户。通过将www-data用户添加到必要的组中,您可能能够在不全部拆分的情况下解决它。查看二进制文件的所有权和权限以找出解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接