Насколько быстр PhysX на GPU по сравнению с физическими движками на CPU?

У меня есть приложение, написанное для использования физического движка Bullet. Я запускаю его на процессоре Intel i7 2600K с 8 ядрами. Приложение должно обрабатывать миллионы фрагментов физической работы, каждый из которых может быть выполнен независимо. В настоящее время он работает с 8 процессами, каждый из которых обрабатывает свою общую квоту независимо. Таким образом, в этой работе много легкого параллелизма.

Предполагая, что я могу приобрести лучшую потребительскую графическую карту NVIDIA (скажем, Titan), какое приблизительное улучшение производительности физического движка я могу увидеть, переключившись с Bullet на CPU на Physx на ГПУ? То есть примерно насколько быстрее будет работать это приложение, если его переписать под Physx?

Я нашел несколько статей, в которых сравнивается качество результатов между Bullet и Physx, но ничего не нашел о сравнении производительности.


person Ashwin Nanjappa    schedule 22.05.2013    source источник


Ответы (3)


Я нашел это, это не сравнение с каким-либо конкретным физическим движком процессора, но есть надежда, что они сравнивают подобное с подобным и запускают PhysX на процессоре.

Так что это довольно неконкретно и взято из часто задаваемых вопросов создателями PhysX, так что отнеситесь к этому с долей скептицизма.

Из здесь:

Запуск PhysX на графическом процессоре GeForce среднего и высокого класса обеспечит в 10-20 раз больше эффектов и визуальную точность, чем физика, работающая на высокопроизводительном процессоре.

person weston    schedule 23.05.2013
comment
как маркетинговая страница для PhysX, это, вероятно, не самый надежный источник непредвзятой информации. - person c..; 17.02.2015

Пьер Тердиманн провел обширную серию сравнений производительности между Bullet 2.81 и PhysX 2.8. 4, 3.2 и 3.3 здесь. Это сравнение между Bullet и PhysX, которые работают на процессоре. Можно видеть, что разница в производительности между ними зависит от того, какие функции двигателя используются. Для некоторых функций производительность примерно одинакова, в то время как для большинства других наблюдается ускорение в 3-5 раз.

Он также упоминает в дополнении, что не все физические функции были перенесены в PhysX на GPU. . Ткань и частицы могут быть ускорены на графическом процессоре, в то время как твердые тела в настоящее время переносятся на графический процессор с помощью функции под названием GPU Rigid Bodies (GRB). Если есть функция с GPU-ускорением, то можно ожидать, что она будет быстрее, чем на CPU, но насколько — неясно.

person Ashwin Nanjappa    schedule 30.05.2013
comment
вероятно, следует отметить, что были некоторые сомнения относительно достоверности методов, использованных при тестировании Bullet, в связи с незнанием Пьером Bullet, его работой в nvidia и участием в движке PhysX. - person c..; 17.02.2015
comment
@ixlli. Интересно, где эти вопросы поднимаются и кем? - person weston; 17.02.2015
comment
@weston bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=9095 не решался сделать ссылку; между Пьером и некоторыми участниками форума Bullet становится немного глупо и жарко, но я думаю, что соответствующие части являются конкретными примерами неэффективного использования Bullet. Лично у меня нет опыта ни с тем, ни с другим, но в своих исследованиях я наткнулся на их обсуждение. - person c..; 17.02.2015

Допустим, physx выполняет взаимодействия частиц, такие как гравитация движения жидкости. Тогда управление кешем очень важно, поскольку они поразительно параллельны. Вы не можете напрямую управлять кешем вашего процессора, но вы можете получить доступ к кешу титана, что делает его, возможно, в 100 раз быстрее, чем 8-поточный процессор.

Если он не такой параллельный, имеет много ветвлений и не требует утомительных вычислений, то это примерно 10-5-кратное ускорение (или любое другое соотношение пропускной способности графического ОЗУ / основного ОЗУ).

person huseyin tugrul buyukisik    schedule 24.05.2013