英特尔
® 
C++ 编译器 Linux* 版
打印发送电子邮件告知好友支持新闻简报RSSDigg thisdel.icio.us

产品功能
“英特尔® C++ 编译器 Linux* 版”可以让您在英特尔® 处理器上轻松获取出众的性能;同时还提供源代码、二进制代码及构建环境方面的兼容性,并附赠一流的客户支持。此编译器完全支持多核心处理器以及现有的英特尔处理器与体系结构。先进的优化功能可以在最新英特尔处理器上产生出众的应用程序性能。

性能:先进的优化功能
使用这些先进的优化功能,最大限度提高 Linux 应用程序的性能:

  • 完全支持多核心处理器以及现有的英特尔处理器与体系结构
  • 卓越的浮点指令吞吐能力
  • 过程间优化 (IPO)
  • 档案导引优化 (PGO)
  • 数据预取
  • 编译器代码覆盖工具
  • 编译器测试优先级调整工具
  • 仅限 IA-32 体系结构
    • 完全支持“第三代数据流单指令多数据扩展指令集”
    • 自动矢量器
    • 对各代英特尔处理器的运行时支持:处理器调度
  • 仅限英特尔® 安腾® 2 微体系结构
    • 断定
    • 改进的分支预测
    • 推测
    • 软件管道
    • 支持“Mosberger 展开库”
  • 支持“英特尔® 扩展内存 64 位技术”(英特尔® EM64T)
如需有关详细说明,请参阅以下文章:使用英特尔® C++ 与 Fortran 编译器 Windows* 版与 Linux* 版优化应用程序

兼容性
  • GNU C/C++ 功能 保持兼容
  • 同广泛使用的 Linux 软件实用程序保持兼容
  • 同主流的替代性开发工具 Eclipse* 集成开发环境 (IDE) 集成
其它功能
  • 多线程应用程序支持
    • OpenMP*
    • 自动并行
  • 符合多项标准
    • GNU 内嵌 ASM IA-32 体系结构版
    • 对 C++ ABI 对象模型的 IA-32 支持
    • ANSI C/C++ 标准
    • ISO C/C++ 标准
  • 英特尔® 调试器
  • 增强的安全功能,可防止缓存区溢出
  • 支持多版本安装

返回至页头

性能:先进的优化功能
  • 支持多核心处理器,具有自动并行OpenMP* 等各项功能。
  • 优化的浮点指令吞吐能力:在 IA-32上,“英特尔 C++ 编译器 Linux 版”使用堆栈来高效执行浮点 (FP) 指令。由于重叠指令的计算结果可放入任何堆栈寄存器,应用程序的性能因此得以提高。在安腾 2 处理器上,通过采用可直接寻址的浮点寄存器(支持经管道化处理的浮点循环),与采用传统体系结构的处理器相比,所需的加载与存储操作次数大为减少,从而可以获得更快的执行速度。
  • 过程间优化 (IPO):对于包含许多常用中、小函数的程序,特别是循环内包含调用的程序,IPO 可以极大地提高应用程序性能。
  • 档案导引优化 (PGO):PGO 编译过程使“英特尔 C++ 编译器”可以更好地利用处理器微体系结构,更有效地使用指令调度与高速缓存,并可以更好地执行分支预测。通过重新组织代码布局以减少指令缓存反覆、缩减代码长度并减少分支预测失误,它可以帮助提高应用程序性能。

    说明应用程序性能改善的 PGO 流程图
    单击放大
返回至页头

  • 数据预取:数据预取是规避内存访问延迟的有效技术。数据预取在程序中的特定点上为所选数据引用插入预取指令,使引用的数据项在实际使用之前就已尽可能地移近处理器(放入高速缓存)。对于计算密集特点更为突出的应用程序来说,这样可以显著提高性能。数据预取的优点包括:
    • 自动执行
    • 配合使用其它优化措施(例如,软件管道技术)
    • 通过使用编译器生成的预取代码,代码的可移植性得以保持,因此开发人员不必为管理这方面的应用程序性能而在源代码中编写特定于处理器的指令
  • 编译器代码覆盖工具:使用“代码覆盖工具”,可以提高开发效率、减少缺陷及改善应用程序性能。主要功能包括:
    • 使用代码覆盖配色方案,以形象的方式表示应用程序的代码覆盖信息
    • 动态显示应用程序中每个基本指令块的执行计数
    • 在应用程序的两次运行之间进行差异覆盖或档案比较
  • 编译器测试优先级调整工具:通过使用“编译器测试优先级调整工具”选择测试并调整其优先级,可以在测试应用程序发生更改时节省时间。档案导引优化可以根据应用程序代码任何部分以前的执行档案及相关性情况,选择应用程序测试并调整其优先级。在测试与开发大规模应用程序时,如果测试是主要瓶颈,则可通过此工具节省大量的时间。应用程序特定的某些模块发生更改时,“测试优先级调整工具”会给出最可能受更改影响的测试。它分析以前的运行产生的档案数据,揭示应用程序的各个组件及其测试之间的依赖关系,并利用这些信息引导测试过程。
  • 完全支持“第三代数据流单指令多数据扩展指令集”(SSE3,仅限 IA-32 体系结构):获取对英特尔处理器各项体系结构功能的支持。IA-32 功能支持“第三代数据流单指令多数据扩展指令集”,使得奔腾 4 处理器引入的“英特尔 NetBurst®”微体系结构与众不同。传统的性能增强功能(如 MMX™ 技术)也继续得到支持。“第三代数据流单指令多数据扩展指令集”超越了改善应用程序多媒体或图形组件性能这一初衷,它包含了更强劲的性能,可以满足进行浮点与双精度计算的需要。这些新指令可以通过许多途径来支持,其中包括内嵌 ASM、编译器内建函数、类库、矢量器以及“英特尔® 性能库”。
  • 自动矢量器(仅限 IA-32 体系结构):自动对代码进行并行化处理,以便充分利用处理器的潜在能力。矢量器示例演示了如何提高应用程序的执行速度。此外还提供多项功能,包括支持先进的动态数据调整策略,其中包含可以生成平衡负载的循环剥离技术,以及可以匹配整个缓存线预取情况的循环展开技术。
  • 对各代英特尔® 处理器的运行时支持 — 处理器调度(仅限 IA-32 体系结构):可以选择使用处理器调度,构建针对特定于某代英特尔处理器的应用程序。现在可以为多个特定的目标使用调度功能。您可以开发针对最新英特尔处理器 — 奔腾 4 处理器 — 的应用程序,同时还可以确保可执行文件能在以前的 IA-32 处理器上正常运行。
  • 断定(仅限安腾® 2 微体系结构):对于安腾 2 微体系结构,可通过断定指令实现条件化执行,从而提高应用程序性能。断定指令后,可从程序序列中完全删除分支,形成更大的基本指令块,并消除相关的预测失误所带来的损失。此外,由于使用断定之后存在的分支更少,控制流发生改变的几率也更小,因此动态指令获取的效率会更高。
  • 改进的分支预测(仅限安腾 2 微体系结构):通过减少执行延迟与缓存失误,提高应用程序在安腾 2 微体系结构上的速度。分支预测功能将分支信息传递到处理器,使处理器获取并开始执行在最可能的代码路径上的指令。由于沿错误路径执行的指令的结果必须丢弃,并且必须获取并执行正确路径中的指令,而分支预测失误会导致执行延迟,因此这项功能可减少会导致执行延迟的分支预测失误。分支预测还可以使编译的代码能够利用运行时信息管理处理器硬件。针对安腾 2 微体系结构的“英特尔 C++ 编译器”提供了会根据需要执行的代码恢复过程。
  • 推测(仅限安腾 2 微体系结构):通过在实际需要之前执行一些操作(例如,消耗很高的加载指令),可以提高性能。为确保代码正确,编译器会使用推测根据需要执行代码恢复过程,恢复代码可以确保在先前的推测发生失误时仍能正确执行所有受影响的操作。
  • 软件管道(仅限安腾 2 微体系结构):减少处理循环所需的时钟周期数。软件管道技术试图将每个循环分解成几个迭代阶段,每个阶段包含几条指令,并将这些迭代阶段搭接起来。软件管道技术允许同时存在多个循环迭代,并且不展开整个循环,所以在基于安腾 2 的应用程序中,它可以执行单周期、整循环计算。尽管并非所有循环都能得益于软件管道技术;但对于能够获益的那些循环而言,通过结合软件管道与断定、推测技术,可以显著减少代码扩展、路径长度及分支预测失误,从而实现应用程序性能上的飞跃。
  • 支持“Mosberger 展开库”(仅限安腾 2 微体系结构):“英特尔 C++ 编译器 Linux 版”现在支持“Mosberger 展开库”,可更容易地实现异常处理、调试及自我纠错。
  • 英特尔® EM64T 包括针对采用“英特尔 EM64T”的处理器开发高性能应用程序所需的各项功能。
兼容性
  • GNU C/C++ 兼容性功能:获取与 GNU C 在源代码与目标代码方面的兼容性。“英特尔® Visual Fortran”具有更多的 GCC 扩展支持,可以帮助您轻松移植应用程序,因此您可以使用“英特尔 C++ 编译器”重新编译现有的软件,以取得更高的应用程序性能。此外,您还可以使用“英特尔 C++ 编译器”编译特定的模块,然后将它们与 GNU C 编译的模块进行链接来构建应用程序,而不是彻底换掉编译器。如果您希望先在一些模块上试试英特尔编译器的身手,这种做法会特别有帮助。此外,“英特尔 C++ 编译器”符合 C++ ABI 标准,此标准与 GCC 3.2、3.3 及 3.4 版在二进制代码方面的兼容性更为出色。它包含其它一些语言功能,只需稍作修改便能构建 Linux 内核。如需有关详细信息,请参阅:英特尔® 编译器 Linux* 版 — 与 GNU 编译器的兼容性
  • 与广泛使用的 Linux 软件实用程序保持兼容:“英特尔 C++ 编译器”可以配合使用您可能已经在用的 make、Emacs 及 gdb 等工具。
  • 与 Eclipse 的集成:与开放源码的“Eclipse 集成开发环境”(IDE) 集成。
返回至页头

其它功能
  • 多线程应用程序支持
    • OpenMP 支持:OpenMP 是可移植多线程应用程序开发的行业标准,在细粒度(循环级别)与粗粒度(函数级别)线程技术上具有很高的效率。对于将串行应用程序转换成并行应用程序,OpenMP 指令是一种容易使用且作用强大的手段,它具有使应用程序因为在多核心与对称多处理器系统上并行执行而获得大幅性能提升的潜力。
    • 自动并行:使用能自动将循环线程化的自动并行功能,提高多处理器系统上的应用程序性能。这个选项会检测能够安全地并行执行的循环,然后自动生成多线程代码。自动并行功能使得用户不必处理迭代划分、数据共享、线程调度及同步等低级别的细节。它还能够提供多处理器系统与支持“超线程技术”¹ 的系统所具有的性能优势。
    • 英特尔® 调试器:支持优化代码的调试(也就是说,对于为了在特定的硬件体系结构上取得最优执行效果而大幅改动过的代码进行调试)。“英特尔编译器 9.0”为优化代码的调试产生符合多项标准的调试信息,可供所有支持“英特尔编译器 9.0”的调试器使用。“英特尔调试器 9.0”能够进行多线程应用程序的调试,为多核心体系结构提供了有力支持。“英特尔调试器”提供以下相关功能:
      • 全部停止/全部执行模型(即,一个线程停止时所有的线程都停止,一个线程恢复时所有的线程都恢复)
      • 列出所有创建的线程
      • 在线程之间切换焦点
      • 检查详细线程状态
      • 设置断点(包括所有的停止、跟踪及观察方式),并显示所有线程或一部分线程的堆栈回溯
      • 内置的 GUI 提供“线程”面板(在“当前源代码”窗格中),创建线程时会激活此面板,供操作员选择线程焦点,并显示相关的详细信息
最近增强的“GNU 项目调试器”(GDB 调试器)也可用于并行应用程序。如需有关详细信息,请参阅英特尔调试器技术白皮书

  • 增强的安全功能:“英特尔 C++ 编译器”现在支持堆栈桢运行时错误检查,帮助减少缓冲区溢出安全攻击。在 Linux 上,此功能通过 -fstack-security-check 选项提供。
  • 多版本安装:“英特尔编译器 9.0”可以跟以前的版本(例如 8.1)安装在一起。新的非 root 安装选项不使用 RPM,所以不会卸载编译器的其它版本。建议使用的 RPM 安装仍受支持,并且需要 root 访问权限才能安装。
¹“超线程技术”要求计算机系统采用支持“超线程技术”的英特尔® 奔腾® 4 处理器,以及支持“超线程技术”的芯片组、BIOS 及操作系统。根据您具体使用的软、硬件,实际性能可能会有所不同。如需有关哪些处理器支持“超线程技术”的详细信息,请参阅 http://www.intel.com/info/hyperthreading

返回至页头


英特尔® 软件   
网络
英特尔® 软件网络
  • 成员注册步骤简单且免费,马上 加入吧!
     
    评估/购买
     
     
    产品信息
     
     
    技术信息
     
     
    其它资源