#php #linux #stream-processing
#php #linux #потоковая обработка
Вопрос:
Я пытаюсь узнать больше об оборудовании, которое можно использовать при запуске php-приложения или даже php-приложения, скомпилированного на c , с использованием HipHop. Я хотел бы настроить микросервер и использовать графический процессор, чтобы помочь процессору обрабатывать запросы…
Кто-нибудь?
Комментарии:
1. Графический процессор бесполезен для всего, что не является математикой с плавающей запятой низкой точности. В серверной среде в любом случае более экономично и эффективно просто добавлять больше процессоров.
Ответ №1:
Сам по себе PHP не имеет возможности использовать графический процессор. Это недавно обсуждалось в списке разработчиков php internals.
Имейте в виду, что графические процессоры превосходны при определенных типах рабочих нагрузок, в то время как для других они не так хороши. PHP не смог бы по-настоящему воспользоваться преимуществами ускорения GPU, потому что работа, которую он выполняет, на самом деле не самая лучшая для GPU.
Если вы действительно хотите поиграть с хип-хопом и случайными высокопроизводительными вещами, вы можете начать с Open Parallel. Они работали с технологией Intel под названием Threading Building Blocks и интегрировали ее в HipHop, добавив новые функции, которые могут вызывать обратные вызовы асинхронно, с выдающимися результатами. Был большой интерес, когда они представили свою работу хип-хоп группе.
Однако нет никаких признаков поддержки CUDA или вообще какой-либо поддержки GPU в HipHop. Честно говоря, HipHop — не подходящее решение для большинства пользователей PHP. Если вы пытаетесь выжать производительность из кода, вам следует профилировать его.
Ответ №2:
Я написал компилятор, который переводит небольшое подмножество PHP в Futhark. Компилятор Futhark может генерировать исходный код OpenCL и CUDA, поэтому его можно использовать для запуска некоторых PHP-программ на графическом процессоре.
Этот компилятор — всего лишь проверка концепции, но он может транслировать некоторые относительно простые функции, подобные этой:
function comma_string($a,$b){
return $a . "," . $b;
}
Компилятор генерирует эту функцию в Futhark:
let comma_string a b =
a "," b
В качестве альтернативы, возможно, удастся скомпилировать PHP на C с помощью HipHop, а затем скомпилировать его в SPIR-V с помощью SPIRV-LLVM-Translator.