В настоящее время я работаю над проектом C ++, который требует возможности динамически модифицировать и оценивать математические выражения во время выполнения, с сильным акцентом на использование ускорения графического процессора. В то время как exprtk изначально казался простым решением для анализа и оценки выражений, его зависимость от STL и предварительной компиляции создает проблемы при работе с графическими процессорами, которые часто предпочитают более динамические подходы к генерации кода. Я изучал nvrtc < /code> как потенциальное решение для компиляции выражений на летании для выполнения на графических процессорах, но вовлеченные сложности кажутся ненужными для сферы действия моего проекта. < /P>
контекст: < /strong> < /p>
[*]. функции (sin, cos , pow , abs и т. Д.).
Производительность важна, потому что эти выражения будут оцениваться многократно в больших масштабах. /> Вопрос: [/b]
Какие альтернативные библиотеки, методы или шаблоны проектирования могут использоваться для изменения и оценки выражений во время выполнения с хорошей совместимостью с графическим процессором, без накладных расходов и сложности полного компиляции времени выполнения с такими инструментами, как nvrtc ? Существуют ли легкие анализаторы/оценщиков выражения, разработанные с учетом совместимости среды GPU?template
__global__ void kernel(float* out, Func eval, const char* expr) {
out[threadIdx.x] = eval(expr, threadIdx.x);
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... da-kernels