1 SIMD
SIMD(single instruction multiple data),即一条指令可以进行多个数据的运算,是数据级的并行。一般应用于多媒体中的大量数据的处理。比如4D向量(x, y, z, w)的加法运算,一般的浮点数操作指令需要将每个分量分别相加。而SIMD可以使用128bit的寄存器,存储每个分量,使用一条指令就可以完成向量的加法,大大提高了运算性能。
MMX是Intel公司在1996年设计的一个SIMD指令集。现在MMX已经作为处理器的一项补充功能,Intel的IA-32处理器或其他公司的处理器都支持。
SSE2,(Streaming SIMD Extensions 2),是Intel的SIMD处理器的一个补充指令集,在2001年随着Pentium 4而发布。它是SSE的扩充,并将完全取代MMX。Intel在2004年将SSE2扩充到SSE3。
参考:http://en.wikipedia.org/wiki/SIMD,http://en.wikipedia.org/wiki/SSE2
2 XNA Math Library
在DX11中,使用了全新的数学库XNA Math Library,该数学库在windows平台使用了SSE/SSE2内置指令集,在头文件xnamath.h中以内联函数实现,充分发挥现代处理器的性能。
延伸阅读: 如何设计快速的跨平台的向量函数库