Parallel Programming Talk #62 - What Every Software Developer Should Know About Intel AVX

Welcome to Show 62 of Parallel Programming Talk. Today is February 2nd. Groundhog day in the United States. On this episode Clay and Aaron will be addressing recent questions about what every software developer should know about Intel® Advanced Vector Extensions (Intel® AVX) with Senior Software Engineers Richard Hubbard and Pallavi Mehrotra.

Download Link - MP4 Video:

First The News:

If you participated in last year's Intel Threading Challenge contest, we want to know what you thought about it.  Were the problems too easy? Were they too hard?   Were they just right?  Was there sufficient time to work out a solution?  Did overlapping problems slow you down or make you work harder?

ParaPLoP 2010: March 30 - April 1 2010 in Carefree, AZ

You are invited to submit a paper for the event.

Today is our Listen Question Show. If you have questions you'd like to see up discuss, ideas for show topics or just want to send fan mail....

On Today's Show:

Intel AVX with Senior Software Engineer Richard Hubbard and Pallavi Mehrotra.

Intel® AVX (Intel® Advanced Vector Extensions) is a 256 bit instruction set extension to SSE and is designed for applications that are floating point intensive. The enhancement in Intel® AVX allow for improved performance due to wider vectors, new extensible syntax, and rich functionality including the ability to better manage, rearrange and sort data.

Richard Hubbard is a Senior Software Engineer and member of the SSG Apple enabling team, working on optimizing Mac OS X applications for power and performance.  Richard holds a Masters degree in Electrical Engineering from Stevens Institute of Technology and Bachelors in Computer Engineering from New Jersey Institute of Technology.

Pallavi Mehrotra joined Intel as a Senior Software Engineer in 2006 after working at Motorola, designing and developing software for CDMA and GSM networks. She is currently member of the SSG Apple enabling team, working on optimizing Mac OS X applications for power and performance. Pallavi holds Masters degree in Computer Science from Arizona State University & Bachelors in Electrical Engineering.

Intel AVX is a comprehensive ISA extension of the Intel 64 Architecture.

What are the main elements of Intel AVX are:

    1. Support for wider vector data (up to 256-bit).

    1. Efficient instruction encoding scheme that supports 3 and 4 operand instruction syntax.

    1. Flexibility in programming environment, ranging from branch handling to relaxed memory alignment requirements.

    1. New data manipulation and arithmetic compute primitives, including Broadcast, permute, fused-multiply-add, etc.

What are the key advantages of Intel AVX?

    1. Performance

    1. Power

    1. Compatibility

Doesn't the compiler just take care of all this?

Yes the Intel® Compiler Suite Professional Edition 11.1 has been enhanced to to create Intel AVX optimized code. Our libraries and frameworks are also Intel AVX optimized.

What tools are available?

Other questions that we discussed:

What type of application can benefit best from Intel AVX?

What is SIMD and how is the 256-bit SIMD FP vector extension new? How is this better?

Penryn had SSE 4.1 that gave us sum absolute difference capabilities. It was a huge boost for video encoding. Is Intel AVX the next version of SSE?

Where can developer to learn more about Intel AVX? The software team has set up a web site with tools, technical papers and a support forum.

What resources will they find there?

Where can people ask questions and connect with other software developers?

What is the schedule? When will Intel's customer be able to buy the chip?

Coming up next on Parallel Programming Talk

    • Refactoring (Parallelizing) Java Applications with Professor Danny Dig (University of Illinois U-C)
      Date/Time: 2/9/2010 at 8:00 AM Pacific

    • Hyper-Threading with Intel Engineer Garrett Drysdale
      Date/Time: 2/16/2010 at 8:00 AM Pacific

And remember, let's be thread safe out there.