服务器 频道

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

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

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

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

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

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

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

0
相关文章