The Vector in Your CPU: Exploiting SIMD for Superscalar Performance

For more than ten years modern processors have been equipped with vector registers and instructions that can make certain algorithms four to eight times faster. In the past, it took special language intrinsics or intimate knowledge of assembly language to use them. In this talk you will learn how to take advantage of vector instructions in .NET applications using the newly released System.Numerics.Vectors library and the RyuJIT compiler that's part of .NET 4.6. We will explore a variety of algorithms that can benefit from vectorization, ranging from simple 4-8x-wins like matrix multiplication and dot product, all the way to algorithms that must be refactored to benefit from vectorization because they contain inter-iteration dependencies or complex control flow.

Sasha Goldshtein

Sasha Goldshtein, Sela Group

Sasha Goldshtein is the CTO of Sela Group, a Microsoft C# MVP and Azure MRS, a Pluralsight author, and an international consultant and trainer. Sasha is the author of "Introducing Windows 7 for Developers" (Microsoft Press, 2009) and "Pro .NET Performance" (Apress, 2012), a prolific blogger, and author of numerous training courses including .NET Debugging, .NET Performance, Android Application Development, and Modern C++. His consulting work revolves mainly around distributed architecture, production debugging, and mobile application development.

×