Back
Close

Vetorização SSE & AVX

menotti
173.3K views
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%.

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io