Alexander Wolfe,科学作家
随着我们从 32 位世界转向 64 位范例,合适的开发工具至关重要。
在 PC 和服务器领域,计算机性能的工程之战通常集中在英特尔为其微处理器带来的硬件进步上。然而,在公众关注之外,这家全球最大的半导体公司悄然建立了一套令人印象深刻的软件工具组合,以帮助开发人员加速现有 32 位和 64 位 IC(集成电路)中代码的执行。
VTune 性能分析器是这些工具列表中的佼佼者。1 VTune 最初于 1998 年推出,用于首款奔腾处理器,并不断更新。英特尔添加了一个 64 位版本,旨在用于其安腾架构。在 2004 年 1 月纽约的 LinuxWorld 博览会上,英特尔推出了可在 Linux 下运行的 VTune 版本,这对使用刀片服务器(越来越多地配备开源操作系统)的开发人员来说是一大福音。
VTune 使开发人员能够通过向他们展示代码中“热点”的图形视图来微调性能,这些“热点”可以从优化中获益。
VTune 的工作原理是定期暂停微处理器,以收集有关已在系统中处理的指令的数据。然后,它将机器代码执行的地址与高级源代码关联起来。它使用此信息创建图形,显示 CPU 在程序的每个部分上花费的时间量。
这不是一项简单的任务,因为源代码与编译器运行后生成的可执行文件之间没有明确的对应关系。在内部,VTune 尝试通过分析源代码模块并创建一个内存映射来实现这一点,该内存映射大致指示编译后的代码在内存中的位置。
当代码运行时,VTune 通过内核模式驱动程序收集数据,该驱动程序每 1 毫秒获取一次处理器事件中断。发生中断时,VTune 会存储有关指令指针位置的数据。
通过这种方式,VTune 可以确定 C++ 或 Fortran 程序的哪个部分相对于模块的其余部分花费了大量时间。因此,可以识别出热点。
VTune 的免费评估副本可从英特尔网站下载。1
随着英特尔的处理器变得越来越复杂,其工具也变得越来越复杂(见图 1)。这是一个自然的发展过程,因为从高度流水线的超标量微处理器架构中榨取最佳性能绝非易事。
以下是两款新的英特尔产品,旨在专门帮助在高端奔腾 4 处理器上实现更高性能的应用程序。它们是 IPP(集成性能原语)4.02 和线程工具 2.0。3
IPP 在 Windows 或 Linux 下运行,严格来说是一个软件库,而不是一个工具。它的历史可以追溯到 1990 年代中期,当时英特尔首次决定在一个地方收集(并放在 CD-ROM 上,那是当时的发行媒介)可用于其处理器(开始变得具有多媒体功能)的子程序。这些主要是用于信号处理功能的子程序,例如快速傅里叶变换。
IPP 是一个更加成熟的后继产品,包括大量多媒体软件。例如,它为多媒体编解码器(编码器/解码器)功能(例如广泛使用的 MPEG 和 MP3 格式的功能)提供了工作代码。
IPP 还附带库例程,支持语音编码、字符串函数处理和密码学函数。
相比之下,线程工具包与英特尔奔腾 4 的复杂性更直接相关。这些处理器支持该公司的超线程技术,这是一种以英特尔为中心的指代 IC 用于同时管理多个进程运行的微码机制的方式。
线程工具也与微软的 Visual Studio .NET IDE(集成开发环境)4 紧密结合。如果您拥有该 IDE,则可以使用它来查看配置文件或直方图,比较各种线程的执行情况。您还可以使用它来解决工具标记为“线程错误”的任何问题。
虽然奔腾 4 等 32 位设备仍然是 PC 世界的命脉——并且可能在未来几年内保持这种地位——但服务器领域正在断断续续地朝着 64 位状态迈进。预计在 2004 年和 2005 年,这种转变将加速。
这种变化有两个原因。首先,英特尔花费了三年时间试图让其新的 64 位安腾架构获得认可,该架构于 2001 年首次亮相。(安腾处理器不仅仅是奔腾系列的 64 位扩展——它们是一种新的非 x86 架构,英特尔称之为 EPIC,即显式并行指令计算。)采用速度一直很慢,最近英特尔将安腾重新定位为最适合大型数据库应用程序的处理器。
然而,安腾确实提高了 64 位技术的知名度。
然而,现在更重要的是,英特尔在 64 位竞赛中有了新的竞争者。该处理器代号为 Nacona,是奔腾 4 至强的 64 位实现。该设备被视为高端工作站和服务器主力。(巧合的是,据信英特尔已提前宣布该芯片,以应对长期竞争对手 AMD(超威半导体)5 近几个月来 64 位皓龙和速龙处理器在市场上的成功。)
幸运的是,对于软件开发人员来说,英特尔通过多年来在 64 位编译器和相关工具上的研发支出,为通往其 64 位硬件的道路铺平了道路。
有趣的是,大部分工作都是在幕后完成的,几乎没有宣传。英特尔没有宣传其在该领域的努力的原因可能是,大部分工作最初并非以最终用户产品为目的而进行的。相反,这些努力始于 1990 年代中期,大约在英特尔与惠普共同努力设计 EPIC(安腾)架构6 之时。
这是一个如此重大的范式转变——并且涉及如此多的架构未知因素——以至于英特尔可能进行了软件研发,以覆盖其基础并帮助加强其技术知识库,以便在需要时可以利用这些技术。
现在,这些努力已经结出了硕果,无论是可下载的编译器,还是网络上流传的研究残余物,感兴趣的开发人员都可以利用它。
在产品方面,情况非常清楚。英特尔提供七个性能优化的编译器,它们分别处理 C、C++ 和 Fortran。7 除了 64 位安腾版本(也应该以 Nacona 为目标,一旦它们被改造以处理英特尔提出的一些指令集扩展),还有支持旧式 32 位 x86 代码的版本。这些编译器有 Windows 和 Linux 版本。
就英特尔而言,长期以来,它以创建后端编译器技术而闻名,该技术执行将编译器的中间输出转换为最终机器代码流的艰巨任务。另一方面,在过去,编译器的前端(执行迭代分析以分析源代码、处理所有内存和寄存器引用,并大致启动一切)传统上来自软件工具公司。这种情况在 1990 年代后期发生了变化,当时英特尔开始开发智能技术,以完全构建自己的编译器。
英特尔也有合作伙伴来帮助它加快速度,例如苏格兰软件公司爱丁堡便携式编译器。8 这家公司最初从爱丁堡大学分拆出来,后来被数字信号处理供应商亚德诺半导体收购,它完成了英特尔 C/C++ 和 Fortran 编译器的大部分前端工作。(爱丁堡还为惠普和 Sun 生产了 Fortran 90 编译器。)
英特尔 EPIC 研究投资的另一个成果是 Trimaran 组织。9 该小组由伊利诺伊大学厄巴纳-香槟分校电气工程教授 Wen-mei Hwu 领导,为安腾开发了一个编译器以及一个集成的性能监控基础设施。
但 Trimaran 并没有止步于此。它基本上将 64 位架构完全虚拟化,用于研究目的。它被称为 HPL-PD,它被标榜为一种参数化处理器架构,支持谓词、控制和数据推测以及编译器控制的内存层次结构管理等新颖功能。HPL-PD 以机器描述语言的形式提供。
对于软件开发人员来说最有趣的是,Trimaran 的所有软件都是免费的,并且可以从其网站获得。如果您有足够的时间和智慧,可以进行大量灵活的操作和改进空间。
深入了解 Trimaran 内部结构的能力来自于其对基于图形的中间语言的使用。这使得可以将代码模块添加到 Trimaran 的工具中或从 Trimaran 的工具中删除。因此,Trimaran 可以用于研究处理器架构,因为它可以通过更改其描述语言来监控对 HPL-PD 处理器所做的任何更改的影响。
英特尔
VTune 产品概述http://www.intel.com/software/products/vtune/vpa/overview.htm
VTune 英特尔网络培训课程
https://shale.intel.com/SoftwareCollege/CourseDetails.asp?courseID=17
IPP 英特尔网络培训课程
https://shale.intel.com/SoftwareCollege/CourseDetails.asp?courseID=119
TRIMARAN
Trimaran 编译器由 Trimaran 组织开发。
http://www.trimaran.org/
AMD
皓龙
http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html
速龙
http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html
新闻稿
英特尔的安腾/EPIC 架构于 2001 年首次亮相。
http://www.intel.com/pressroom/archive/releases/20010529comp.htm
英特尔集成性能原语 4.0 和英特尔线程工具 2.0 http://www.intel.com/pressroom/archive/releases/20040210dev.htm
英特尔宣布推出 64 位 x86 芯片,重塑安腾
Merritt, R. EE Times, 2004 年 2 月 18 日
http://www.eetimes.com/semi/news/OEG20040217S0033
编译器
英特尔 C、C++ 和 Fortran 编译器都可以在英特尔网站上找到。
http://www.intel.com/software/products/compilers/
1. 要获得 VTune 性能分析器的免费评估副本,请访问英特尔网站: http://www.intel.com/software/products/vtune/vpa/eval.htm。
2. 集成性能原语 (IPP) 4.0:参见 http://www.intel.com/software/products/ipp/。
3. 线程工具 2.0:参见 http://www.intel.com/software/products/threading/。
4. 微软的 Visual Studio .NET IDE:参见 http://msdn.microsoft.com/vstudio/。
5. 有关 64 位皓龙和速龙处理器的更多信息,请访问 AMD 网站: http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html。
6. 有关英特尔和惠普共同开发 EPIC 的更多信息,请参见: http://cpus.hp.com/technical_references/ia64.shtml。
7. 要访问英特尔 C、C++ 和 Fortran 编译器,请访问英特尔网站: http://www.intel.com/software/products/compilers/。
8. 爱丁堡便携式编译器:参见 http://www.epcc.ed.ac.uk/overview/。
9. Trimaran:参见 http://www.trimaran.org/overview.shtml。
ALEXANDER WOLFE 在纽约市的库珀联盟学院获得电气工程学位。他是一位常驻纽约州森林小丘的科学作家,曾为 IEEE Spectrum、EE Times、Embedded Systems Programming 和 Byte.com 撰稿。
© 2004 1542-7730/04/0400 $5.00
最初发表于 Queue 第 2 卷,第 2 期—
在 数字图书馆 中评论本文