Я использую движок, который позволяет писать SIMD-код, и он работает быстро.Но есть только один блок, в котором есть весь код.
Я понимаю, что этот код запускается независимо для каждой сущности одновременно, но когда меняется только одна вещь, все равно быстрее ли ее вычислять независимо?Это идея с SIMD, параллелизм?
Например:
void simdFunction ()
{
center = mesh.center(); // always the same
vert.pos.x = center.x; // run on each vertex
}
В этом случае центр всегда одинаков, поэтому будет ли он рассчитываться для каждой вершины на SIMD?Если да, то по-прежнему ли это эффективно?
В принципе, возможность выполнения этого параллельно перевешивает затраты на его вычисление независимо от общего смысла программирования SIMD?