Должен ли я рассчитать матрицы на процессоре или графическом процессоре?Должен ли я вычислять матрицы на графическом процессоре или на процессоре?
Предположим, что у меня есть следующие матрицы P * V * M
, должен ли я рассчитать их на процессоре, чтобы я мог отправить окончательную матрицу на GPU (GLSL) или я должен отправить эти три матрицы отдельно на GPU, чтобы GLSL мог вычислить конечная матрица?
Я имею в виду, что в этом случае GLSL должен был бы вычислить MVP-матрицу для каждой вершины, поэтому, вероятно, быстрее прекомпретировать ее на CPU.
Но скажем, что GLSL должен только вычислить его MVP-матрицу один раз, будет ли GPU вычислять конечную матрицу быстрее, чем CPU?
Можете ли вы привести пример того, что вы выполняете этот расчет только один раз в GPU? – Amadeus
1. Оптимизировать последний. Вы уверены, что не просто откладываете? :) 2. Если вы не можете измерить производительность и определить узкие места, не думайте об оптимизации. –
Просто примечание, если вы непосредственно умножаете вектор, как в 'projection * view * model * vertex'. Тогда на самом деле нет« матричных »умножений. Только умножение 'matrix * vector', так как оно оценивается справа налево' (проекция * (view * (model * vertex))). Это намного менее обременительно при расчете. –