Jeff's Notebook: 3D Vector Normalization Using 256-Bit Intel® Advanced Vector Extensions (Intel® AVX)

With the launch of our New Second Generation Intel® Core processor, there has been a lot of interested in the Intel® Advanced Vector Extensions (Intel® AVX). I decided to investigate more on how application developers targeting the Second Generation Intel core processor for their application might use Intel AVX.  Stan Melax has written a detailed article on how developers that are incorporating 3D images into their application might use Intel AVX.  

Stan's article, "3D Vector Normalization Using 256-Bit Intel Advanced Vector Extensions (Intel AVX)" outlines how developers can improve the performance of geometry computations by transposing packed 3D data on-the-fly to take advantage of 8-wide SIMD processing.  Stan details how to exploit 256-bit Intel AVX to normalize an array of 3D vectors.  In his article, he describes a shuffle approach to convert between AOS and SOA on-the-fly in order to make data ready for up to 8-wide single instruction multiple data (SIMD) processing.  Read Stan Melax article to get the details of this use of Intel AVX.

For more complete information about compiler optimizations, see our Optimization Notice.