Ну из обзора возможностей мне показалось что что-нибудь типа llvm его весьма потянет(afair нужна возможность компилить в runtime-е). Другое дело, что судя по доке OpenCL слишком ограничен с точки зрения написания нормального кода(нет рекурсии, указателей на функции и т.д.).
Бывают и нужны. На моей работе на gpu пока забили приемущественно по этой причине (код нужно слишком сильно переделывать, да и далеко не все можно перенести).
Не знаю что за задачи вы решаете, но для числодрбильных задач, а это в основном задачи математической физики, OpenCL/CUDA самое оно. Так как 99.99% таких задач решаются с помощью линейной алгебры (умножение разреженной матрицы на вектор, решение системы с разреженной матрицей, сложение/вычитание векторов). Распараллеливаемость получается просто идеальная.
Те самые "задачи математической физики", просто кроме числодробильни есть и другие части программы, которые тоже едят не мало времени. А ускорять половину(по времени исполнения) программы пусть даже в 50 раз не меняя остальную - не совсем правильно.
а "половина" работы это наверно загрузка сеток, инициализация структур данных и построение матриц по ним? дык это можно и не ускорять, так как делается всего лишь один раз при старте.
Дешевле купить чаще всего еще пару квадов, чем тратить деньги на написание нетривиального кода и время на пересылку данных. Вот сделает нвидиа на теслах что-то типа внутреннего контроллера инфинибэнда, тогда весело будет...
> Дешевле купить чаще всего еще пару квадов, чем тратить деньги на написание нетривиального кода и время на пересылку данных. Вот сделает нвидиа на теслах что-то типа внутреннего контроллера инфинибэнда, тогда весело будет...
Пока именно так.
> а "половина" работы это наверно загрузка сеток, инициализация структур данных и построение матриц по ним? дык это можно и не ускорять, так как делается всего лишь один раз при старте.
Сетки перестраиваются т.к. изменяется геометрия расчетной области. Матрицы тоже.
P.S. Nvidia медленно но верно поворачивается лицом к людям. Думаю через годик портирование будет не таким геморойным и не таким рискованным(вместо одновендорной CUDA будет OpenCL).