Jim Radigan: Inside Auto-Vectorization, 1 of n
- Posted: Jun 19, 2012 at 10:17 AM
- 93,407 Views
- 11 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
The VC++ 2012 auto-vectorizer tries to make loops in your code run faster by automatically vectorizing your code using the SSE instructions available in all current mainline Intel and AMD chips. In Visual C++ 2012, auto-vectorization is on by default and requires only that you write your code—that is, there are no compiler switches, #pragmas, or hints. It just works. Of course, it's one thing to say that, but how does it work, exactly? When does it vectorize and when doesn't it? Why?
Auto-vectorization is a powerful compiler feature. In VS 12 it represents outstanding engineering by a few folks on the Microsoft Visual C++ compiler team. The engineering leader of this team is Jim Radigan. Fortunately for us, Jim has agreed to do a series of C9 lectures digging into the nuts and bolts of automatic vectorization in general and specifically as it relates to the latest version of VC++. Thank you, Jim!
In the first part of this n-part series, Jim introduces the series, describes improvements to the VC++ 2012 compilers, shares, introduces auto-vectorization, demos a few apps that benefit from compiler-optimized performance via auto-vectorization, and begins to describe how/when user code is vectorized (typical and atypical patterns alike - more to come as the lectures progress, of course). Over the course of this series, Jim will present both the practical and theoretical foundations of auto-vectorization.
(You can learn more about auto-vectorization in VC++ by reading the blog posts by Jim Hogg, another member of the VC++ compiler team working on this technology.)
Tune in. Ask questions. Learn.