Действительно ли физическое моделирование быстрее на GPU?
Из того, что я наблюдал, havok значительно лучше справляется с жесткой симуляцией, чем Physx, особенно их новый Havok Physics 2013.
Я не очень знаком с тем, как работает современный физический движок, но, проводя одно только тестирование, я не могу получить очень точные результаты теста.
Например, PhysX все еще целенаправленно снижает производительность процессора. Мои результаты показывают, что когда жесткость одновременного взаимодействия превышает определенное количество (это диапазон от 1024 до 8096 блоков), его производительность падает по очень неестественной крутой кривой и перестает падать, когда она соответствует производительности Bullet. Принимая во внимание, что многие другие движки, которые я тестировал, масштабируются относительно линейно со сложностью сцены.
Это будет еще хуже, если я захочу измерить сценарии реального мира, такие как игры, игровые движки или даже создание компьютерной графики.
Несомненно, GPU обрабатывает физику элементарных частиц гораздо лучше, чем CPU, поэтому я хочу ограничить это обсуждение моделирования твердого тела и мягкого тела (включая ткань).
Итак, действительно ли физическое моделирование быстрее на GPU? Если да, то насколько?
1 ответ
В общем, архитектура графического процессора разработана для решения больших параллельных задач, имея большое количество ядер потоковых процессоров с очень широким набором команд SIMD. Таким образом, если задачу можно разложить на независимые ядра с аналогичной структурой, то графический процессор будет намного быстрее (иногда на несколько порядков). Процессоры также имеют несколько ядер и SIMD-инструкций, но не так много и не так широко. Таким образом, это действительно зависит от конкретных свойств и ограничений конкретной рабочей нагрузки, а также от того, сможет ли она воспользоваться преимуществами этой дополнительной параллельной архитектуры.