英特尔® 至强融核™ 协处理器(代号 Knights Corner)

首款英特尔® 集成众核英特尔® MIC架构产品
George Chrysos英特尔公司

本白皮书是 George Chrysos 2012 9 月于 Hot Chips 大会上所作演示的抄本,其中详细介绍了英特尔® 至强融核协处理器。需要指出的是,本文中所引用的结果由英特尔公司开发实验室对原型硬件和系统测量得出。

英特尔® 集成众核英特尔® MIC架构将多个英特尔 CPU 核心整合到了单个芯片上。英特尔 MIC 架构面向多个领域的高度并行高性能计算 (HPC) 工作负载,如计算物理学、化学、生物学和金融服务。目前,这些工作负载在大型计算集群上作为任务并行程序运行。

英特尔 MIC 架构旨在于集群环境中实现高吞吐量性能集群环境中的地板规划和功耗限制往往非常严格。该微架构的一个重要属性就是,可提供一种类似于英特尔® 至强® 处理器编程环境的通用编程环境。基于英特尔 MIC 架构的英特尔至强融核协处理器运行一种全面服务 Linux* 操作系统,支持 x86 内存顺序模型和 IEEE 754 浮点算法,并能够运行用行业标准编程语言(如 FortranC C++)编写的应用。这种协处理器由一种丰富的开发环境支持,该环境包括编译器、线程库和高性能数学库等众多库、性能描述和调优工具及调试器。

该英特尔至强融核协处理器通过 PCI Express (PCIe) 总线连接英特尔至强处理器也称为主机。由于英特尔至强融核协处理器运行 Linux 操作系统,因此,可通过 PCIe 总线实施虚拟化 TCP/IP 堆栈,支持用户将该协处理器作为网络节点进行访问。于是,任何用户都可通过安全外壳 (secure shell) 连接该协处理器,并直接运行单个任务或将批处理任务提交给它。该协处理器还支持异构应用,这种应用部分在主机上执行,部分在协处理器上执行。


Figure 1. The first generation Intel® Xeon Phi™ product codenamed “Knights Corner”

多个英特尔至强融核协处理器可安装在单个主机系统中。在单个系统中,这些协处理器可通过 PCIe 对等互连 (peer-to-peer interconnect) 相互通信,且不受主机的任何干扰。同样,这些协处理器还可通过 InfiniBand 或以太网等网卡进行通信,且不受主机的任何干扰。

英特尔名为发现的初始开发集群包括原型英特尔至强融核协处理器的 140 个节点凭借其 Linpack 分数在全球 500 强超级计算机中排名第 150 位。在功耗方面(图 2),该集群就算不优于其它 500 强异构系统,那也极为出色。


Figure 2. Linpack performance and power of Intel’s cluster

这些未优化的原型系统的测量结果表明,高水平的性能效率也可在计算密集型工作负载上实现,且无需使用新的编程语言或 API

英特尔至强融核协处理器主要包括处理核心、高速缓存、内存控制器、PCIe 客户端逻辑和带宽极高的双向环互连 3。每个核心配有专用的二级高速缓存,它由全局分布的 (global-distributed) 标签目录保持完全一致.该内存控制器和 PCIe 客户端逻辑分别向协处理器上的 GDDR5 内存和 PCIe 总线提供一种直接接口。所有这些组件都由环形互连连接在一起。


Figure 3. Microarchitecture

英特尔至强融核协处理器中的每个核心 4)既可保持高功效又可针对高度并行的工作负载提供高吞吐量。进一步研究可发现,这种核心使用一种较短的顺序管线,并能够支持硬件中的 4 条线程。据估计,支持传统 IA 架构的费用只是核心区域成本 (area cost) 2%,且在全芯片或产品级别甚至更低。因此,将英特尔架构传统功能推向市场仅需要很低的成本


Figure 4. Intel® Xeon Phi™ Coprocessor Core

矢量处理单元

英特尔至强融核协处理器核心的一个重要组件是矢量处理单元 (VPU)如图 5 所示。VPU 包括一种新型的 512 SIMD 指令集,其正式名称为英特尔® 初始众核指令集(英特尔® IMCI)。因此,VPU 每周期可执行 16 次单精度 (SP) 8 次双精度 (DP) 运算。VPU 还支持融合乘- (FMA) 指令,因此每周期可执行 32 SP 16 DP 浮点运算。它还可提供整数支持。


Figure 5. Vector Processing Unit

对于 HPC 工作负载矢量单元可提供高功效。单次运算可编码大量工作,且在获取、解码和淘汰许多应用时不会造成能量费用。然而,支持这些宽 SIMD 指令需要进行几项改进。例如,屏蔽寄存器被添加到 VPU,以支持每通道断定执行。这有助于对短条件分支实施矢量化,从而提高了软件流水线的总体效率。VPU 还支持直接在硬件中收集和分散指令,这些指令仅仅是非单元跨度矢量内存访问。因此,对于具有分散或不规则访问模式的代码,矢量分散和收集指令可帮助确保代码处于矢量化状态。

VPU 还包括扩展数学单元 (EMU)它可执行超越运算如倒数、平方根和对数从而支持高带宽矢量式执行这些运算。EMU 通过计算这些函数的多项式近似值进行运算。

互连

互连 6被作为双向环进行实施。每个方向包括 3 个独立环其中最大和最贵的首要环是数据块环。该数据块环为 64 字节宽,支持大量核心对高带宽的要求。地址环要小很多,用于发送读/写命令和内存地址。最后,最小和最便宜的环是确认环,它可发送流控制和一致性消息。


Figure 6. The Interconnect

当核心访问它的二级高速缓存 7和缺失时地址环上的地址请求会发送至标签目录。内存地址均匀分布在环上的标签目录之间,以在环上提供一种流畅的流量特征。如果请求的数据块位于另一个核心的二级高速缓存中,那么转发请求会通过地址环发送至该核心的二级高速缓存,随后在数据块环上转发该请求块。如果请求的数据并未存在于任何高速缓存中,那么从标签目录发送一内存地址到内存控制器。


Figure 7. Distributed Tag Directories

8 所示为双向环上的内存控制器的分布。这些内存控制器对称地交错位于环周围。. 标签目录到内存控制器之间具有所有到所有映射 (all-to-all mapping)。这些地址均匀分布在内存控制器之间,可消除热点并提供对于快速带宽响应极为重要的统一访问模式。


Figure 8. Interleaved Memory Access

在内存访问期间每当核心上发生二级高速缓存缺失核心都会在地址环上生成一地址请求并查询标签目录。如果未在标签目录中找到数据,核心就会生成另一地址请求并在内存中查询所述数据。一旦内存控制器从内存中获得数据块,它就会通过数据环返回至核心。因此在这一过程中,通过相关环传送了一个数据库、两个地址请求(及两个通过协议的确认消息)。由于数据块环最昂贵且旨在支持要求的数据带宽,所以我们需要将较便宜的地址与确认环的数量增加 2 倍,以满足这些环上更多请求对更高带宽的要求(图 9)。


Figure 9. Interconnect: 2x AD/AK

多线程 Streams Triad

10 所示为多线程 streams triad 工作负载的核心扩展结果。这些结果是英特尔至强融核协处理器原型在其互连中每个方向只具有一个地址环和一个确认环的结果在模拟器上得出。结果表示在这种情况下地址和确认环会成为性能瓶颈,且对于 32 个以上的核心,会表现出拙劣的可扩展性。


Figure 10. Multi-threaded Triad – Saturation for 1 AD/AK Ring

该生产级英特尔至强融核协处理器在每个方向使用 2 个地址环和 2 个确认环并提供可扩展至 50 及更多核心的出色性能如图 11 所示。从图中可明显看出环数的增加将总带宽提高了 40% 以上。


Figure 11. Multi-threaded Triad – Benefit of Doubling AD/AK

流存储 (Streaming Store)

流存储是另一项用于进一步提高内存带宽的重大创新。Streams Triad 的伪代码表示如下:

Streams Triad
  for (I=0; I<HUGE; I++)
    A[I] = k*B[I] + C[I];

stream triad 内核可读取 BC 两个阵列并从内存中写入单个阵列 A。以往,核心一般先读取高速缓存行,再写入地址数据。因此,写入通常会产生额外的读取费用。流存储指令支持核心无需先读取就可写入整个高速缓存行,从而可将每次迭代传输的字节数从 256 减少到 192(表 1)。

1. 流存储

 

未采用流存储

采用流存储

行为

读取 ABC,写入 A

读取 BC,写入 A

每次迭代来往于内存传输的字节数

256

192

12 所示为具有流存储的 stream triads 工作负载的核心扩展结果它清晰地表明流存储可将带宽相对以往提高 30%。总体来说,通过在每个方向增加 2 个环并实施流存储,我们能够将多线程 streams triad 的带宽提高 2 倍多。


Figure 12. Multi-threaded Triad – with Streaming Stores

其它设计特性

其它整合至英特尔至强融核协处理器的微架构优化包括 64 条二级转换后备缓冲区 (TLB)、同时数据高速缓存负载和存储及 512KB 二级高速缓存。最后,英特尔至强融核协处理器可实施一个 16 流硬件预取器,以提高高速缓存命中率和带宽。图 13 所示为在SPECfp 2006 性能指标评测套件(单核、单线程作业)中的净性能改进。结果显示每周期平均提高超过 80%不包括频率。


Figure 13. Per-Core ST Performance Improvement (per cycle)

高速缓存

GPU 架构相比英特尔 MIC 架构中一级和二级高速缓存更为重要。英特尔至强融核协处理器采用一种领先的带宽极高的内存子系统。每个核心配有一个 32KB 一级指令高速缓存和 32KB 一级数据高速缓存及一个 512KB 统一二级高速缓存。这些高速缓存完全一致,并实施 x86 内存顺序模型。一级和二级高速缓存可分别提供大约为 15 倍和 7 倍的总带宽,高于总内存带宽。因此,有效利用高速缓存对于在英特尔至强融核协处理器上实现峰值性能至关重要。除提高带宽外,高速缓存在向核心供应数据方面也比内存更加节能。. 14 所示为从内存与一级和二级高速缓存传输每字节数据所需的能耗。在百万万亿次级计算时代,高速缓存将在功耗有限的情况下实现完美性能中发挥关键作用。


Figure 14. Caches – For or Against?

模板

模板 15在物理模拟中极为常见是典型的工作负载示例它表明通过高效使用高速缓存可大幅提升性能。


Figure 15. Stencils Example

模板通常用于模拟物理系统以研究系统在某一时段内的行为。当这些工作负载并未进行高速缓存阻塞的编程,它们将受到内存带宽的约束。鉴于高速缓存的带宽与能效比内存更高,高速缓存阻塞有望大幅提高性能。高速缓存阻塞可阻止物理结构或物理系统,使阻塞的数据非常适合核心的一级和/或二级高速缓存,从而提升性能。例如,在每个时间步,相同核心可处理上一时间步已驻留在二级高速缓存、因此无需从内存获取的数据,从而提高性能。另外,高速缓存一致性可进一步支持模板运算,因为它可自动从驻留在其它核心的二级高速缓存中的最邻近数据块中获取更新的数据。综上,模板清晰展示了 HPC 工作负载中的高速缓存高效利用与一致性优势。

电源管理


Figure 16. Power Management: All On and Running

英特尔至强融核协处理器并不适合所有的工作负载。在某些情况下,只在主机上运行工作负载是有益的。当协处理器未被使用,有必要使它处于节能模式。图 16 所示为运行中的英特尔至强融核协处理器的所有组件。核心上的所有 4 条线程一停止,核心的时钟就会开启(图 17),从而节省功耗。一旦时钟在可编程的时间内开启,核心电源就会自行开启(如图 18 所示),从而消除漏电。


Figure 17. Core C1: Clock Gate Core

在任何时间都可关闭或开启任意数量核心的电源如图 18 所示。另外,当所有核心的电源开启且非核心未检测到活动,标签目录、互连、二级高速缓存和内存控制器的时钟都处于开启状态。


Figure 18. Core C6: Power Gate Core

此时主机驱动程序可让该协处理器处于更深度的睡眠状态或空闲状态其中所有非核心的电源开启GDDR 处于自我刷新模式PCIe 逻辑处于唤醒的等待状态GDDR-IO 的功耗极低 19。这些电源管理技术可帮助节省功耗,并使英特尔至强融核协处理器成为数据中心理想的候用产品。


Figure 19. Package Auto C3

总结

英特尔至强融核协处理器可提供高性能并为高度并行的 HPC 工作负载提供较高的每瓦性能同时不需要全新的编程模式、API、语言或限制性内存模式。它能够借助大量的通用核心(在芯片与内存互连上具有多个线程上下文、宽矢量单元、高速缓存及高带宽)实现这一点。Knights Corner 是英特尔 MIC 架构处理器家族的首款英特尔至强融核产品,旨在为百万万亿次级计算时代添砖加瓦。

声明

本文件中包含关于英特尔产品的信息。本文件不构成对任何知识产权的授权,包括明示的、暗示的,也无论是基于禁止反言的原则或其他。除英特尔产品销售的条款和条件规定的责任外,英特尔不承担任何其他责任。英特尔在此作出免责声明:本文件不构成英特尔关于其产品的使用和/或销售的任何明示或暗示的保证,包括不就其产品的(i)对某一特定用途的适用性、(ii)适销性以及(iii)对任何专利、版权或其他知识产权的侵害的承担任何责任或作出任何担保。

关键业务应用是指当英特尔产品发生故障时,可能会直接或间接地造成人员伤害或死亡的应用。如果您针对此类关键业务应用购买或使用英特尔产品,您应当对英特尔进行赔偿,保证因使用此类关键业务应用而造成的产品责任、人员伤害或死亡索赔中直接或间接发生的所有索赔成本、损坏、费用以及合理的律师费不会对英特尔及其子公司、分包商和分支机构,以及相关的董事、管理人员和员工造成损害,无论英特尔及其分包商在英特尔产品或其任何部件的设计、制造或警示环节是否出现疏忽大意的情况。

英特尔有权随时更改产品的规格和描述而毋需发出通知。设计者不应信赖任何英特产品所不具有的特性,设计者亦不应信赖任何标有保留权利未定义说明或特性描述。对此,英特尔保留将来对其进行定义的权利,同时,英特尔不应为因其日后更改该等说明或特性描述而产生的冲突和不相容承担任何责任。此处提供的信息可随时改变而毋需通知。请勿根据本文件提供的信息完成一项产品设计。

本文件所描述的产品可能包含使其与宣称的规格不符的设计缺陷或失误。这些缺陷或失误已收录于勘误表中,可索取获得。

在发出订单之前,请联系当地的英特尔营业部或分销商以获取最新的产品规格。

索取本文件中或英特尔的其他材料中提的、包含订单号的文件的复印件,可拨打1-800-548-4725,或登陆 http://www.intel.com/design/literature.htm英特尔、Intel 标识、VtuneCilkPhi、融核、Xeon 和至强是英特尔在美国和/或其他国家的商标。
* 其他的名称和品牌可能是其他所有者的资产
版权所有 © 2012 英特尔公司。所有权保留。

性能声明

关于性能及基准数据的更完整的信息敬请登陆 www.intel.com/benchmarks

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.