Выполнение программы GPGPU через WAMP - PullRequest
0 голосов
/ 16 июля 2010

У меня есть программа, которая использует графический процессор для выполнения определенных вычислений.Я могу заставить программу работать правильно, используя командную строку.Но когда я пытаюсь выполнить тот же оператор через PHP, у меня возникают проблемы.

Я использую wamp 2.0, и я попробовал функции exec и proc_open, чтобы попытаться запустить программу, нонесмотря на то, что процесс запускается правильно, когда речь заходит о GPU, сама программа выдает ошибку «Shader не поддерживается вашим оборудованием».Программа также первоначально определяет тип используемой видеокарты, но этого также не происходит.

Чтобы было ясно, я не написал программу для графического процессора.И я могу запустить тот же оператор непосредственно из командной строки, но не через php.Чем отличается выполнение команды от php, а не напрямую?

Я использую графическую карту NVIDIA GT8600.Любая помощь вообще была бы полезна.

В программе, когда она проверяет поставщика видеокарты с помощью glGetString (GL_VENDOR), вместо NVIDIA она получает Microsoft Corporation.Это вызывает все проблемы, хотя я до сих пор не знаю, почему это происходит, только когда я запускаю его с php.

Я также пытался запустить скрипт php автономно из командной строки, и в этомесли моя видеокарта будет правильно определена и все работает нормально, то только когда я захожу в браузер, она не работает.

1 Ответ

0 голосов
/ 19 июля 2010

После некоторого осмотра я обнаружил, что проблема возникает из-за изоляции сеанса 0 в Windows 7 (я смиренно извиняюсь за то, что не упомянул Windows 7 в вопросе)служба wampapache, находящаяся в сеансе 0, не может получить доступ к устройствам отображения (что требует, чтобы мой сервис был частью сеанса 1).Поэтому мой код при вызове процесса GPU не может обнаружить мою видеокарту.

Один из способов обойти это - порождать службу в сеансе 1, а затем позволить этому выполнить процесс.На форумах NVIDIA есть хорошая ветка с примером кода, который показывает, как это можно сделать.

http://forums.nvidia.com/index.php?showtopic=93450&pid=1047458&mode=threaded&start=#entry1047458

...