您的位置:首页 > 运维架构 > 网站架构

利用英特尔软件开发工具释放IA 架构上程序的最佳性能

2004-12-09 13:26 543 查看
本篇是介绍如何运用英特尔软件开发工具提高软件性能的最后一篇。前两篇分别介绍了利用英特尔编译器提高编译后代码执行性能以及通过英特尔 VTune寻找代码性能瓶颈入手优化。本篇将介绍如何利用高度优化的函数库来提高代码开发效率和性能。由于函数库所提供函数都针对英特尔处理器进行过专门优化,直接调用接口就可方便使用,开发者们就好比站在巨人的肩膀上,不再需要以硬编码的方式针对处理器的优化,省
去了大量时间精力,从而提高开发效率,使产品更快推向市场。
英特尔基于开发者的不同需要,提供了三套高度优化的函数库,它们分别是针对信号处理与多媒体软件的“英特尔集成性能原件”(英特尔 IPP),针对三维图形“英特尔图形性能原件”(英特尔GPP)以及针对数学、工程、科学计算的“英特尔数学内核库”(英特尔 MKL)。下面,就让我们开始优化之旅,了解这些函数库的功能与运用。

英特尔集成性能原件,IPP
这是一个跨平台的信号与多媒体软件库,包含一个将功能从底层处理器抽象出来的低级层。这样,应用程序就可以透明地使用英特尔体系结构的最新增强功能,例如 MMX(tm)技术、数据流单指令多数据扩展指令集(SSE)、第二代数据流单指令多数据扩展指令集(SSE2),以及安腾体系结构和 Intel XScale微体系结构。“英特尔 IPP”提供了广泛的多媒体功能:音频、视频及语音编解码器;图像处理;信号处理;数学支持例程以及计算机视觉。使用英特尔IPP可以构建许多标准的编解码器,包括:MP3与AAC音频;H.263、MPEG-1、MPEG-2、MP3及MPEG-4 视频;JPEG 与JPEG2000 图像;以及G.723。1 与G.729 语音。
“英特尔 IPP”包含各种各样的函数,用于进行矢量与图像处理、颜色转换、过滤、分屏、设置阈值、变换,以及算术、统计、几何与形态运算。对于每个函数,“英特尔 IPP”均支持多种数据类型和布局,同时保持了数据结构数量的最小化,它提供了丰富的选项供用户在设计与优化应用程序时选用,使之不必去编写汇编代码。
IPP 的优化效果更是立竿见影,在基于奔腾4 处理器的平台上进行的最新测试表明,“英特尔 IPP”库的性能增益超过编译的C 代码。

英特尔图形性能原件,GPP
该库提供了一套内容丰富、功能强大的三维图形函数,并专为采用IntelXScale技术的“英特尔个人互联网用户端架构”(英特尔PCA)应用处理器进行了优化。英特尔GPP 包含范围广泛的三维图形函数,其中包括数据类型转换、算术、三角、矢量、矩阵及光栅等。英特尔GPP库中的函数针对Intel XScale微体系结构进行过优化,使开发人员不必编写底层汇编代码即可最大限度发挥英特尔处理器的性能,不愧是一种便捷而强大的手段。这套“现成的”最佳解决方案可以帮助降低开发成本,加速推向市场。尽管英特尔GPP库并非一套全面的图形引擎,但它提供了一套基本的预制代码块,可用于创建专为Intel XScale微体系结构度身定制的三维引擎。这些原件包含上至引擎组件级的基本函数,在引擎体系结构与实施方面具有极大的灵活性。
此外,英特尔GPP也解决了三维软件渲染系统中的许多常见问题,例如缺乏对整数除法的支持、缺乏专用浮点硬件、系统内存有限、手持与移动设备显示区太小,等等。英特尔GPP与许多流行的嵌入式操作系统兼容,如运行于英特尔PXA250处理器上的Microsoft Pocket PC*2002。不过,这些原件非常低级,在设计时已经注意避免对主机操作系统的依赖性。英特尔GPP对应用程序移植提供了很好的支持,同时不会以牺牲性能为代价。英特尔GPP还可以优化针对手持与移动设备的游戏应用程序。

英特尔数学内核库,MKL
本库由经过高度优化的函数组成,这些函数涉及英特尔平台上性能要求很高的数学、工程、科学及金融等领域的应用程序。此函数库的功能区包括由LAPACK 与BLAS组成的线性代数、离散傅立叶变换(DFT)、矢量超越函数(矢量数学库/VML)及矢量统计库(VSL)函数。
英特尔数学内核库中的新增功能:
u 当今在基于英特尔处理器的台式机、工作站及服务器上,各种应用与模拟程序的工作量不断上升,为满足其需求,英特尔MKL 通过不断提高性能、增加更多的数值功能,继续保持着出众的表现。
u 通过提供一维与多维D F T 例程(最高可达7 维,其变换长度不包括2的幂次,支持混合基数),进一步扩展了英特尔MKL 的FFT 功能。
u 矢量统计库提供了可手工汇编、调整及矢量化的高性能伪随机数生成器。这些随机数生成器子例程同时提供基本的连续和离散分布。
英特尔 MKL的性能优化可以体现在以下几方面:
DFT 函数优化
此图显示在一系列的矩阵大小上,使用单精度复数时二维DFT 函数的性能,以每秒百万次浮点运算(MFLOPS)2计。英特尔MKL内置的线程技术可以利用多个处理器。此图充分显示了英特尔 MKL 中这些DFT 函数优化带来的出众性能,以及线程数增加时的性能放大效果。
线性代数与DGEMM
矩阵乘法是立方运算;作为乘数的矩阵大小翻倍时,运算量会达到原来的8倍。双精度普通矩阵(DGEMM)在致密线性代数中是司空见惯的问题。在许多非常依赖大型方程求解的应用程序中,正确编写的解算器的性能直接取决于DGEMM 性能。
在多处理器系统上,英特尔MKL使用其它可用的处理器来加速性能并完成任务,随着处理器数量的增加,性能几乎呈线性放大。
英特尔MKL 优化功能甚至可以让台式机发挥大型机的威力,英特尔 MKL 的各种功能区(LAPACK、BLAS、DFTs、VML及VSL)均能达到极优的性能。英特尔MKL 中的许多函数都已线程化,在对称
多处理(SMP)系统上,可以产生极佳的性能。这样可以带来并行运算的好处,不必任何额外工作,便能让应用程序随线程增加产生优异的性能放大效果。

小结
以上三套函数库都从性能与兼容性两大方面入手,方便开发者提高程序性能。利用这些函数库不必针对特定的处理器专门去编写代码,即可利用处理器的高级功能。另外,这些应用程序编程接口(API)可以跨越许多平台使用,使得多媒体应用程序开发人员能够轻松实现跨平台兼容,有助于降低开发成本。以上函数库均提供Windows 与Linux 版本。

通过以下地址便可获得英特尔软件开发工具的免费试用版:
http://www.xlsoft.com/cn/products/intel/index.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: