如何在 GPU 上启用 php 运行 python 脚本? [关闭]

Posted

技术标签:

【中文标题】如何在 GPU 上启用 php 运行 python 脚本? [关闭]【英文标题】:How to enable php run python script on GPU? [closed] 【发布时间】:2016-09-03 18:42:16 【问题描述】:

在我的 php 网站中,我使用 theano 调用 python 脚本并在 GPU 上运行。

但是,当从 php 调用此 python 脚本时,似乎 apache 对 GPU 没有任何权限,因此程序依赖于 CPU,与 GPU 相比效率要低得多。

如何授予 apache 在 GPU 上运行程序的权限?

【问题讨论】:

您是否确定您的theano 已启用 GPU 处理 (deeplearning.net/software/theano/tutorial/using_gpu.html)?此外,您可能需要检查Numba(专门研究 NumPy 的即时编译器(来自 Continuum Analytics))GPU 的使用情况。见drive.google.com/drive/u/0/folders/0Bw5McUt95YdeanU5M0FFUlFsSjg。 可能值得使用解决方法。从普通用户(或 cron)开始循环脚本(bash?),等待工作(运行 python 脚本)。从 php 添加作业(可以是带参数的文本文件)。 另请查看:***.com/a/5637909/3042057 使用 sudo 调用 PHP 脚本。配置您的系统,以便 Apache 用户可以在没有密码的情况下使用 sudo 来执行此 Python 脚本。完成。 我同意 @AlexeyRytikov 的观点,您应该使用一种解决方法,也许是外部 bash 脚本。 【参考方案1】:

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

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

【讨论】:

以上是关于如何在 GPU 上启用 php 运行 python 脚本? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AMD GPU 上运行 Python?

如何在 Windows 7 的 XAMPP 上运行的 PHP 应用程序中启用 SSL?

TensorFlow 的 ./configure 在哪里以及如何启用 GPU 支持?

如何使用 Theano 启用 Keras 以利用多个 GPU

在 python 的运行脚本中关闭 GPU

为 .NET 应用启用高性能 GPU