Advanced Vector Extensions
Advanced Vector Extensions ( AVX ) is an extension of the x86 instruction set for microprocessors from Intel and AMD, which was proposed by Intel in March 2008.
The width of the SIMD register (for SSE) increased from 128 bits to 256 bits. The new necessary registers hot YMM0 to YMM15. The processors that support AVX, the older SSE instructions lead to the lower 128 bits of the new register, ie the lower 128 bits of the YMM registers are shared with the XMM registers.
AVX introduces a three -operands SIMD instruction format c: = a b, a, the result will not necessarily be destroyed so a source registers, which saves copying operations. SSE instructions use the two- operand form a: = a b. The three-operand format can only be used with SIMD operands ( YMM ) and not with general-purpose registers such as EAX or RAX. An extension to the latter is scheduled for AVX2.
- Gleitkommaintensive useful for calculation, particularly in multi-media, or scientific financial calculations. Integer operations are to follow later.
- Increases parallelism and throughput of floating point SIMD calculations
- Reduces the register load by non-destructive three- operand form
Support in compilers and assemblers
GCC since version 4.6 that support Intel Compiler Suite since version 11.1 and Visual Studio 2010 AVX. The GNU assembler supports AVX on inline assembly instructions, as well as Intel's counterpart. In addition, MASM support in the version for Visual Studio 2010, yasm Version 1.1.0, FASM and NASM claims to also AVX. In the x86 code generator of the compiler substructure LLVM is a complete AVX is 1 support since version 3.0.
Operating System Support
AVX need explicit support by the operating system so that the new registers are saved and restored correctly when a context switch. The following operating system versions support AVX:
- Apple OS X 10.6.8 (Snow Leopard update ) 23 June 2011.
- Linux: 2.6.30 since June 9, 2009
- Windows: Windows 7 SP1 and Windows Server 2008 R2 SP1, . Windows 8
- FreeBSD. Submitted by January 21, 2012 Patch, which is included in the 9.1 stable release
- DragonFly BSD has since early 2013 Support for AVX.
- Solaris 10 Update 10 and Solaris 11
CPUs with AVX
- Intel Sandy Bridge processors, Q1 2011.
- Ivy Bridge processors, Q2, 2012.
- Haswell processors, Q2 2013.
- AMD: Bulldozer processors, Q4 2011.
- Piledriver processors, Q4, 2012.
- Jaguar processors Q2 2013
- Steamroller processors, Q1 2014