众核计算悄悄走近 Larrabee的x86尝试

服务器 服务器产品
今天的人们已经对双核、四核的概念有了明确的认知了,而在2000年初,当处理器性能不再能够通过提升主频飞速提升的时候,业界惊呼"免费的午餐"没有了。

今天的人们已经对双核、四核的概念有了明确的认知了,而在2000年初,当处理器性能不再能够通过提升主频飞速提升的时候,业界惊呼"免费的午餐"没有了。摩尔定律也在当时一度被认为终结了--直到众核技术的出现。日前,中国计算机学会青年计算机科技论坛YOCSEF举办了主题报告会《众核技术》,来自英特尔中国研究院的吴甘沙博士就英特尔Larrabee处理器做了简单的介绍。

[[2614]] 

不过首先,让我们弄明白什么是众核技术,它和多核技术究竟有什么不同?按标准的解释,众核(Many Core)处理器要比多核(MultiCore)处理器中的内核数量要多,计算能力更强,而这个界限一般被认为是八核,也就是说:超过八个内核的处理器设计就被称为"众核"处理器。

究其本质,众核处理器的设计目的就是为了提高单一处理器的整体计算能力,而这一过程不是通过简单的处理器内核堆叠就可以实现的。从执行效率和架构设计两个方面来简单说说大家就可以明白。1+1不等于2,为什么? 因为热力学定律告诉我们能量转换过程汇总必然会有损耗,电力在处理器数以亿计的晶体管中做功,也是同样要放出热量(晶体管的漏电现象是老问题了,半导体制造工艺就是在不断攻克这一难题的基础上慢慢推进的)。而两个内核叠加在一起,也是不会将性能提升一倍的,效率高的话可以提升0.7倍左右。影响效率的因素除了半导体工艺,还有处理器的资源调配、内部通讯等因素。

工程人员最早通过提升主频的方式将处理器的执行频率提升到很高的一个层面--奔四时代的顶峰是4GHz(超频除外)。这其实是改变内部通讯和处理速率的一个方法,但是到了后来,由于半导体工艺的原因,更高的主频意味着处理器制造成本和稳定性陡然上升,使得通过这一方法提升性能遇到了障碍。索性的是,工程师开始从架构上入手,多核技术走入人们的视线。

 

将一个任务平均分给两个处理器内核同时计算,时间就可以缩短一半。这是人们最初的设想,然而如何能将一个线性运行的程序中的众多指令切分成最佳执行效率的不同块,分配给多核(不一定是双核)就成了最根本以及最复杂的问题,这里我们暂且不说。回到架构方面,工程人员在设计双核以及四核的时候,解决了很多基础性的问题,例如怎样让两个内核协同工作而又互不影响,怎样分配有限的片上缓存资源等等。但是当八核处理器乃至更多内核的设计到来之时,工程人员发现,他们遇到的问题不再是基础性建设问题,而是前面如何最大效率的分配计算资源。随着内核的增多,这个问题越来越明显,如果任务得不到有效分配,大量的内核会处于空闲状态,而少数几个内核满负荷运行,这显然是不符合众核计算的要求的。

此外,随着内核的增多,各个内核之间需要一个有效的通信渠道以直接获取对方的运算结果,这些瓶颈大大制约了众核计算的发展。而我们似乎不能要求所有程序员将世界上所有程序都重新编写一遍以适应并行计算,那么工程人员只有在架构上想办法,将串行的程序指令想方设法的并行化,无论是英特尔的Larrabee还是国产龙芯都在这方面做了很多尝试。

Intel研究院:Larrabee的x86通用架构尝试

Larrabee的命名起源于南美洲一个叫Larra的地方,那里有一种蜜蜂是当地人最宠爱的吉祥物。由此可见,Larrabee也是Intel集万千宠爱于一身的产物。早在AMD收购ATI之后,Intel就决定用自身的力量打造自己的高端图形技术,而且招兵买马囊括了3dfx和ATi的部分设计人员,短时间内打造了一只专业队伍。而Larrabee与一般显卡的不同之处就在于其对通用计算架构的支持,要知道一般显卡的编程都是复杂和专用的并行编程环境。而据英特尔统计,100个程序员中,至多只有2~3个懂得并行多线程编程。因此要将众核技术普及推广,必须先找到一个适宜的应用--难道只能做图形处理么?如何让x86通用计算领域的大规模运算可以利用众核技术加快速度?如何从软件的并行编程实现Larrabee架构通用化?

 

在当前CUDA、OpenCL标准横行于GPU世界并隐隐威胁CPU地位的时代,英特尔直接将Larrabee定位为x86通用并行计算处理器,并且提供了一整套编码方案和上层的C++式编程环境,从而让Larrabee几乎无缝的衔接了传统串行编程和众核计算中的并行编程。

据英特尔中国研究中心的吴甘沙博士介绍,Larrabee可以在与当前CPU相同功耗的前提下,轻松的实现万亿次计算的能力,而这不仅仅是由于其众核并行计算的高效率,还由于其每个内核就是一个独立的完整的CPU。据吴博士分析,与传统GPU中很多渲染管线内核不同,Larrabee中不仅仅是计算核,还有自己独立的高速缓存,每个内核都有独立的高速缓存,甚至具有多线程技术--每个内核最多可以有四个线程。

此外,Larrabee允许程序设计成自由选择并行处理机制,程序可以指定在运行某个功能时保持单线程,以获得更高效率,而在大规模计算某些数据时自动分成很多线程进行并行处理--这有点像现在的视频转码软件和类似Photoshop在做的事情。多内核最重要的就是彼此之间的通讯速率,而Larrabee采用了与高端显卡相同的512位通讯环路,使得有效带宽达到了每秒数百GB。

吴博士认为,Larrabee独特的地方在于可以依靠函数单元,达到很高的并行性,优化多任务分配过程。英特尔研究院曾经设计过一个验证多个小内核性能的实验,用了两个外置的完整核心和10个内置小核心做实验--结果2个外置核每时钟周期处理8个指令,而10个小核每时钟周期处理160个指令。这主要是由于Larrabee的指令流水更快,每个AI可以运行一条独立的流水线,每个核拥有4个线程,一个四核的Larrabee可以允许16个单精度浮点数同时进行处理,其峰值负载为每个AI每个时钟周期处理一条指令。基于高效的多任务分配,Larrabee的平均利用率可以达到88%以上。

另一个特点,是Larrabee加入了LNI指令集,该指令集最大的特色就是将二操作数的汇编语言演进到了三操作数。这其实很好理解,原先的MOV AX,BX被改成了MOV AX,BX,CX,带来的好处是可以节省将近一半的I/O指令,而在运算上则可以更加多样的优化算法。这种改变也将体现在英特尔未来的AVX指令集中,用于其x86处理器。

Larrabee从定义之初,就一直瞄着PC架构的大变革:CPU将不再作为全功能的处理器,而逐渐偏重于商用和事务处理,要求高计算能力的浮点计算工作则由Larrabee通用处理器负责。对于普通家用和商用的PC而言,Larrabee并非是必需品,但在图形工作站、超级计算机等要求强劲效能的设备中,Larrabee将逐渐成为必需品。

【编辑推荐】

  1. 多核处理器绝配!长城四核王400W电源
  2. Enea计划支持Cavium Networks的OCTEONTM II多核MIPS64处理器
  3. Hillstone多核安全 驾驭电信3G
责任编辑:符甲 来源: IT168
相关推荐

2012-04-27 14:44:54

NvidiaMIC架构

2023-09-29 11:44:54

2012-05-18 09:35:01

云计算Power服务器

2011-12-01 11:09:48

AMDx86服务器英特尔

2011-12-12 09:22:41

NVIDIA超级计算机ARM处理器

2011-11-10 09:26:48

Solaris 11

2009-08-28 14:38:33

2011-12-19 10:55:58

云计算中国电信

2011-02-20 22:23:43

X86虚拟化XenServer

2019-03-22 08:25:20

x86PythonARM

2010-05-07 17:47:12

Unix Solari

2021-03-26 08:43:55

基于x86的硬件物联网计算物联网

2010-02-04 16:27:24

Android X86

2010-03-20 11:03:13

VMControl虚拟化管理

2009-08-05 09:02:26

Microsoft FIIS 7.0

2010-04-29 17:50:15

2013-08-07 09:55:05

IBMGoogleNVIDIA

2014-03-14 09:58:49

服务器ARMx86

2012-12-24 09:27:49

企业关键RISCx86

2011-09-15 10:21:22

AndroidX86架构英特尔
点赞
收藏

51CTO技术栈公众号