2012-06-12 2 views
1

Im работает над симулятором частиц и столкнулся с небольшим узким местом, используя БПЛА для записи в RWStructured single float buffer примерно в 10 раз слишком медленно. Из экспериментов кажется, что нет недостатка в пропускной способности, но просто время доступа само потушило его. Добавление записи не может быть и речи, поскольку исходящие данные должны быть в определенном порядке. Это на аппаратных средствах DX10/SM4, так что вот несколько вопросов: есть ли вообще способ ускорить работу (кроме написания больших фрагментов данных, поскольку вывод из шейдеров не является последовательным)? Если нет, то оборудование DX11 класса будет быстрее с БПЛА?DirectCompute, записывающий скорость буфера

ответ

0

Прежде всего (если вы еще не сделали этого), чтобы профилировать ваш шейдерный код, необходимо добавить запросы GPU в вашу систему. Вот ссылка, чтобы объяснить:

http://mynameismjp.wordpress.com/2011/10/13/profiling-in-dx11-with-queries/

Это в DX11, но особенности в DX10 тоже, так что это должно быть очень просто перенесем.

После того как в вычислительном есть различные аспекты, но первый из них будет играть с:

[numthreads(TGX, 1, 1)] 

Пытаются ценностями как 8,16,32,64 и попытаться найти сладкое пятно (не забудьте разделите на отправке).

Смежные вопросы