服务器 频道

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

    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将逐渐成为必需品。

 

0
相关文章