Одинаковая кодовая база для CPU и GPU - PullRequest
4 голосов
/ 09 марта 2012

Есть ли у кого-нибудь опыт поддержки единой кодовой базы как для CPU, так и для GPU?Я хочу создать приложение, которое по возможности будет использовать графический процессор для некоторых длительных вычислений, но если на целевой машине отсутствует совместимый графический процессор, он будет просто использовать обычную версию процессора.Было бы очень полезно, если бы я мог просто написать часть кода, используя директивы условной компиляции, которые компилируются как в версию CPU, так и в версию GPU.Конечно, будут некоторые части, которые отличаются для CPU и GPU, но я бы хотел сохранить суть алгоритма в одном месте.Это вообще возможно?

1 Ответ

1 голос
/ 09 марта 2012

OpenCL - язык на основе Си.Существуют платформы OpenCL, которые работают на графических процессорах (от NVidia и AMD ) и процессорах (от Intel и AMD ).

Хотя можно выполнять один и тот же код OpenCL как на графических, так и на процессорных процессорах, его действительно необходимо оптимизировать для целевого устройства.Разный код должен быть написан для разных графических процессоров и процессоров, чтобы получить лучшую производительность.Тем не менее, платформа OpenCL ЦП может функционировать как низкоэффективный запасной вариант даже для кода, оптимизированного для GPU.

Если вы довольны написанием условных директив, которые выполняются в зависимости от целевого устройства (ЦП или ГП), то это может повысить производительностькода OpenCL на нескольких устройствах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...