Vetorização SSE & AVX

menotti
177.6K views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content
Previous: Uso de SSE e AVX Next: Frameworks C++ SSE/AVX

Primeiro código AVX: cálculo da SQRT

Agora que analisamos todos os requisitos, a autovectorização e as intrínsecas do AVX, podemos criar nosso primeiro programa vetorizado manualmente. Neste exercício, você precisa vetorizar um cálculo sqrt de números de ponto flutuante. Usaremos explicitamente o tipo de dados __m256 para armazenar nossos números de ponto flutuante, reduzindo a sobrecarga no carregamento de dados.

Vectorized SQRT

Você provavelmente verá uma melhoria de desempenho de 600% ou mais. Ou seja, depois de carregar os dados, o AVX executará até 7 vezes mais rápido que o sqrtf normal. O limite teórico é de 800%, mas raramente é alcançado. Você pode esperar um aumento médio entre 300% e 600%.

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content