Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
1099 Discussions

Is there some books about SIMD(sse, avx and so on) optimization?


~Can someone please recommend a few books on program optimization?

I use  multithreading and simd to improve the performance of the program.

I always learn simd through the website, and ask questions in the web site.

Now I want to buy some books to learn. Is there any books on simd ? Thanks

0 Kudos
5 Replies
Honored Contributor III
2,172 Views is a classic on SSE2 which no one has pretended to replace.  Not much about threading. is an important book on OpenMP which doesn't cover much beyond OpenMP 2.0 nor anything about vectorization.  Just a couple pages about cache locality.

It may be interesting to know which topics need more emphasis as we propose to add publications.  We have in mind for example cache locality and the combination of simd with multi-threading (OpenMP and MPI).  I concur with your observation about the importance of treating those subjects together.

0 Kudos
Valued Contributor I

You can also read Intel Optimization Manual.

0 Kudos

Tim P. wrote: is a classic on SSE2 which no one has pretended to replace.



This seems a very good book on the topic. Unfortunately it's sold out and people ask huge prizes for second hand book copies. Can't Intel make a reprint of this book?


0 Kudos

Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX 2014th Edition
by Daniel Kusswurm  (Author)
ISBN-13: 978-1484200650

Has C language source code in addition to assembly. Covers the entire instruction set, with a focus on numeric computing and multiple chapters for the various SIMD instructions.


SIMD Programming Manual for Linux and Windows (Springer Professional Computing) 2004th Edition

by Paul Cockshott (Author), Kenneth Renfrew (Author)
ISBN-13: 978-1852337940

Older and uses vector pascal only. Has multiple negative reviews.

0 Kudos
Honored Contributor III

There are a some very good resources at Agner Fog's website:

He has produced a five-volume set of optimization resources, including:

  1. Optimizing Software in C++ (Windows, Linux, & Mac)
  2. Optimizing Subroutines in Assembly Language (x86)
  3. Microarchitecture of Intel, AMD, and VIA CPUs
  4. Instruction Tables (instruction latency and throughput for Intel, AMD, and VIA cpus)
  5. Calling Conventions for different C++ compilers and Operating Systems

All of these are extremely useful.  I keep the Instruction Tables document open almost all the time, and I have a printed copy of the Assembly Language manual on my desk most of the time.

0 Kudos