高性能计算与矢量地图引擎
高性能计算(HighPerformanceComputing)是计算机科学的一个分支,主要是指从体系结构、并行算法和软件优化等方面研究开发高性能计算技术。多核是基础,同构和异构是不同的方式,neon、GPU也仅是代表,程序优化是必要条件。
先看下Intel处理器的发展。MMX(Multi Media eXtension,多媒体扩展指令集,1996年)技术的基础也是单指令、多数据(SIMD)的技术。SSE(1999年)是包括70条指令,其中包含单指令多数据浮点计算以及额外的SIMD整数和高速缓存控制指令,其优势是:更高分辨率的图像浏览和处理、高质量音频、MPEG2视频和同时MPEG2加解密,语音识别可以占用更少CPU资源、更高的精度和更快的响应速度。SE(Streaming SIMD Extensions)是英特尔在AMD的3D Now!发布一年之后,在其计算机芯片Pentium III中引入的指令集,是MMX的超集。包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。S SE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。AMD后来在AthlonXP中加入了对这个指令集的支持。这个指令集增加了对8个128位寄存器XMM0-XMM7的支持,每个寄存器可以存储4个单精度浮点数。使用这些寄存器的程序必须使用FXSAVE和FXRSTR指令来保持和恢复状态。但