Community
cancel
Showing results for 
Search instead for 
Did you mean: 
zhang_h_
Beginner
457 Views

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
TimP
Black Belt
457 Views

http://click.intel.com/the-software-vectorization-handbook.html is a classic on SSE2 which no one has pretended to replace.  Not much about threading.

http://mitpress.mit.edu/books/using-openmp 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.

Bernard
Black Belt
457 Views

You can also read Intel Optimization Manual.

gast128
Beginner
457 Views

Tim P. wrote:

http://click.intel.com/the-software-vectorization-handbook.html 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?

 

457 Views

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.

McCalpinJohn
Black Belt
457 Views

There are a some very good resources at Agner Fog's website: http://www.agner.org/optimize/

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.

Reply