我有一个使用GPU执行某些计算的程序。我可以让程序使用命令行正确运行。但是当我尝试通过PHP执行相同的声明时,我遇到了麻烦。通过WAMP执行GPGPU程序
我正在使用wamp 2.0,并且我尝试了exec和proc_open函数来试图让程序运行,但即使进程正确启动,当涉及到GPU部分时,程序本身也会引发错误“Shader不支持你的硬件”。该程序最初还会检测正在使用的图形卡的种类,但这种情况也不会发生。
要说清楚,我还没有编写GPU程序。我可以直接从命令行运行相同的语句,但不能通过php。从php执行命令而不是直接执行命令有什么不同?
我正在使用NVIDIA GT8600图形卡。任何帮助都很好。
在使用glGetString(GL_VENDOR)检查显卡供应商的程序中,它获得了微软公司而不是NVIDIA。这是造成所有问题,但我仍然不知道为什么只有当我从PHP运行它时才这样做。
我也试过从命令行单独运行php脚本,在这种情况下,我的图形卡被正确检测到,一切正常,只有当我通过浏览器浏览器不工作。
这更可能是GPU程序的错误。您是否尝试在PHP中设置工作目录(执行时),与您在命令行中使用的目录相同? – mauris 2010-07-16 03:28:52
是的,我做过,我也给了绝对的路径,就像我说的,程序确实开始,但它只是无法运行GPU部件。它在GPU上执行检查,并返回错误信息,说我无法支持着色器。 – Slartibartfast 2010-07-16 03:56:49
执行PHP代码的用户是否缺少正确的权限?我几乎不了解Windows,但在Linux上,当用户无法打开/ dev/nvidiactl时会发生这种情况。这里有一些关于这种问题的信息: http://www.nvnews.net/vbulletin/showthread.php?t=89965 MIght是一个起点。 – 2010-07-17 18:27:22