Полностью универсальный код на GPU

Ко мне обратился клиент для работы над проектом, который будет включать в себя попытку запуска полнофункциональных программ на GPU с OpenCL.

У меня есть приличные знания CUDA и машинная архитектура низкого уровня. Насколько я понимаю, код GPU не имеет ни стека вызовов, ни указателей, ни какого-либо неструктурированного механизма потока управления, такого как goto, исключения или указатели на функции. Для меня это похоже на элементарный диалект FORTRAN с точки зрения семантики. Я знаю, что ядра GPU, вызываемые из другого ядра GPU, вставляются как расширения макросов, механизм CALL/RET отсутствует

Насколько я понимаю, у вас не может быть лексически ограниченного языка без стека, и диалект, который OpenCL компилирует, представляет собой очень плоское подмножество C и, аналогично, CUDA, хотя и допускает шаблоны и прочее, дает нам только очень небольшое подмножество C++.

Клиент хочет перевести из Javascript в C на LLVM, а затем в байт-код OpenCL или как-то заставить полнофункциональные программы работать на GPU, даже если они работают медленно без параллелизма

Прав ли я, убедив клиента в том, что то, чего он надеется достичь, технически невозможно и не очень полезно?

0 ответов

Другие вопросы по тегам