Learn the fundamentals of x86 Single instruction multiple data (SIMD)
programming using C++ intrinsic functions and x86-64 assembly language.
This book emphasizes x86 SIMD programming topics and technologies that
are relevant to modern software development in applications which can
exploit data level parallelism, important for the processing of big
data, large batches of data and related important in data science and
much more.
Modern Parallel Programming with C++ and Assembly Language is an
instructional text that explains x86 SIMD programming using both C++ and
assembly language. The book's content and organization are designed to
help you quickly understand and exploit the SIMD capabilities of x86
processors. It also contains an abundance of source code that is
structured to accelerate learning and comprehension of essential SIMD
programming concepts and algorithms.
After reading this book, you will be able to code performance-optimized
AVX, AVX2, and AVX-512 algorithms using either C++ intrinsic functions
or x86-64 assembly language.
What You Will Learn
- Understand the essential details about x86 SIMD architectures and
instruction sets including AVX, AVX2, and AVX-512.
- Master x86 SIMD data types, arithmetic instructions, and data
management operations using both integer and floating-point operands.
- Code performance-enhancing functions and algorithms that fully exploit
the SIMD capabilities of a modern x86 processor.
- Employ C++ intrinsic functions and x86-64 assembly language code to
carry out arithmetic calculations using common programming constructs
including arrays, matrices, and user-defined data structures.
- Harness the x86 SIMD instruction sets to significantly accelerate the
performance of computationally intense algorithms in applications such
as machine learning, image processing, computer graphics, statistics,
and matrix arithmetic.
- Apply leading-edge coding strategies and techniques to optimally
exploit the x86 SIMD instruction sets for maximum possible
performance.
Who This Book Is For
Intermediate to advanced programmers/developers in general. Readers of
this book should have previous programming experience with modern C++
(i.e., ANSI C++11 or later) and Assembly. Some familiarity with
Microsoft's Visual Studio or the GNU toolchain will be helpful. The
target audience for Modern X86 SIMD Programming are experienced software
developers, programmers and maybe some hobbyists.