`
lemoncyb
  • 浏览: 51117 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转]解析英特尔MIC架构与X86的兼容性

    博客分类:
  • hpc
 
阅读更多
Intel于当地时间6月18日在德国汉堡正式发布了Larrabee GPU架构的转世,基于MIC(集成众核)的计算加速协处理器Xeon Phi。目前的产品开发代号为"Knights Corner",集成使用22nm 3-D Trigate/FinFET工艺制造的超50个Pentium P54C复刻版核心。

与此同时一些媒体如VR-Zone的专栏作者Theo Valich和3DCenter等也对其展开了分析,不过他们似乎忘记了重要一点——Intel所宣称的MIC架构优越性如x86兼容等没这么简单,其中的一些部分竞争对手NVIDIA早在今年4月就已撰文指出过。下面就让我们从一些公开资料透露的内容中分析一下到底在Intel MIC架构中存在“免费的午餐”与否。

MIC架构的x86兼容性

既然是为超级计算机以及高端工作站所设计,那么Intel自然会对Xeon Phi中的P54C核心进行改进。在Intel公开的说法中,Xeon Phi同样属于Intel 64(即AMD最早提出的x86-64架构)产品,那么实际是否如此呢?

回答是否定的,根据包括以下几点:在Intel为开发者提供的指南[1]中明确表示,Knight Corner架构只支持Intel 64位架构指令集中的一部分子集,包括MMX、XMM、YMM寄存器操作在内的指令不被支持。换句话说,Knights Corner抛弃了17年来Intel力推的MMX、SSE和AVX指令集的绝大部分。取而代之的是,资讯网站BSN透露Intel在Xeon Phi中加入了新的512bit宽度ZMM寄存器指令集,使得Xeon Phi的矢量单元(vector unit)和其他所有Intel处理器产品都不相同,这意味着Xeon Phi系列产品和其他Intel CPU在二进制代码上实际是不兼容的。


Intel在面向开发者的博客中也总结了这一点,内部高速总线、高度并行数据处理所需的特殊矢量单元等特性综合导致了上面的结果——为Xeon Phi所编写、编译的代码不能在其余CPU上运行,反之亦然:为SIMD大量优化的代码对Xeon Phi同样没有意义。此外Intel还重申Xeon Phi是一款协处理器,需要CPU的辅助才能发挥应有的作用,从模式上来说已经和NVIDIA的Tesla加速卡类似,偏离了原有的设想。

而Xeon Phi在对于开发者的导向上也打破了此前和AMD的默契,此前Intel的开发文档中均表态鼓励程序员使用SSE2/AVX指令集并称所有的 Intel64架构产品均支持SSE2——现在这一“潜规则”也已烟消云散。并且Intel是否会将Xeon Phi中的特有指令集导入其余产品如服务器/台式机/笔记本CPU中也暂且不得而知。

不存在能自动并行化代码的“魔法”编译器

有人可能会提出:那么去除掉不兼容部分的二进制代码呢?NVIDIA CTO Steve Scott早在今年四月份就撰文[3]告诉我们,这些代码经过简单的再编译是有可能运行在MIC架构上的,但存在两大问题:如果使用MPI API(one rank/core),MIC加速卡的50多个CPU核心将会分享8GB的内存,这远远小于目前HPC应用中1-2GB/每CPU核心的数量,而且50多个CPU核心同时通讯将会导致网络传输堵塞,OpenMP API的情况也只是好一点;另外根据阿姆达尔定律,代码中不能并行化的部分将成为极大的瓶颈——别忘了Xeon Phi的每个核心单线程能力实际上和十来年前的初代奔腾P54C没什么两样,并且目前多数x86 CPU上运行的代码并行度和线程数量都不高,简单编译自然无法发挥Xeon Phi的能力。

Scott表示,不管是现在还是未来,不会存在一个“魔法”编译器,使得原有的代码可以很好地自动并行化。在超级计算机领域甚至每个应用的代码更换系统后都需要重新编译一遍,目前还看不到哪个公司(包括Intel、NVIDIA或者其他任何人)能帮助程序员从这一工作中解脱出来。

此外,Scott引述的美国国家计算中心(NICS)的MIC架构性能演示[4]也侧面说明Xeon Phi仍未解决Larrabee架构的一些问题——随着线程数量的提高性能提升幅度越来越小,并且实际线程数量还远未达到HPC级别。

NICS的MIC架构初步试验结果

Intel在2008年进行的Larrabee模拟测试

总结

以上解释与说明只指向一个事实:在MIC架构上编写应用并不比走CUDA/OpenCL GPGPU的道路工作量小。即使是号称通用性最强的OpenCL,代码也必须根据硬件的架构特征做大量的优化与改动,否则得到的性能数据毫无实际意义。联系到目前的实际情况,毫无疑问NVIDIA的CUDA无论性能还是走在了市场的最先端,而OpenCL和Intel要稍微落后一些。

当然,NVIDIA CTO Steve Scott在鼓吹CPU+GPU混合系统的优势的同时,他在原文的评论里也表示Intel在软件开发环境上仍然具有一定优势:即使是需要大量修改代码并重新编译,具有x86或其他Intel SIMD ISA扩展开发经验的程序员面对MIC架构也能很快上手,而CUDA或者OpenCL的编程模式则完全不同;另外CUDA目前主要走C/C++的道路,在 FORTRAN方面成绩远远不如Intel可提供成熟编译器的程度。Intel自己也声称,使用相对不受平台限制的高级语言则不会遇到二进制代码不兼容的问题。

总之,笔者仍然坚持自己的观点:在超级计算领域最后的赢家一定是软件开发环境以及Ecosystem打造情况最好的厂商,Intel的财力使其最容易来达到这一目标,但目前的Xeon Phi还有待于进一步的检验,与Tesla相比还为时过早。

原文地址:http://www.d1net.com/server/tech/96545.html
分享到:
评论

相关推荐

    骑士登陆—— 基于MIC架构的至强融核

    1. **兼容性**:MIC架构基于x86指令集,这意味着现有的许多应用程序无需修改即可直接运行在MIC平台上,大大降低了迁移成本。 2. **并行性能**:得益于大量的内核数量和宽矢量处理单元,MIC能够在单个芯片上实现极高...

    英特尔X86-64程序员参考手册

    X86-64(也称为x64或AMD64)是英特尔与AMD共同开发的一种64位微处理器架构,它向下兼容原有的IA-32(即32位x86)架构。这一架构在个人电脑、服务器以及其他高性能计算领域被广泛应用。 #### 二、基本架构卷(Volume...

    欧拉server操作系统22.03版本,X86架构

    X86架构的普及性和兼容性使其成为了一个易于维护和使用的平台,这对于任何对服务器性能有较高需求的IT环境来说都是一个重要的考量因素。在了解这些知识点的基础上,我们可以更好地评估和选择适合的服务器操作系统,...

    详解英特尔Nehalam架构.pdf

    英特尔“Nehalem”是“英特尔微架构”的昵称,后者是“Intel64”指令集... 即使英特尔64是经典的复杂指令集计算机(“CISC”)指令集类型,其英特尔微架构实现与现代简化指令集计算机(“RISC”)实现共享许多共同机制

    Core英特尔的华丽转身 x86 CPU的跨越式进步!.pdf

    Core英特尔的华丽转身 x86 CPU的跨越式进步!.pdf

    MIC应用初体验

    综上所述,MIC架构为高性能计算领域带来了全新的解决方案,不仅提供了强大的并行计算能力,而且还保持了对现有x86架构应用的支持。对于初学者来说,了解MIC架构的基础知识、编程方式以及优化方法是非常重要的。未来...

    Zep——开源的X86架构的内核

    它以其兼容性、性能和丰富的软件库而闻名。Zep内核选择支持X86架构,意味着它旨在运行在这些广泛的硬件平台上,为用户提供一个底层的操作系统核心。 Zep作为一个开源项目,意味着其源代码是公开的,任何人都可以...

    英特尔对目前世界上最流行英特尔处理器架构进行拓展

    标题“英特尔对目前世界上最流行英特尔处理器架构进行拓展”和描述“英特尔公司不断对目前最为广泛使用的计算机架构——英特尔架构进行拓展。在持续革新的道路上,英特尔再次推出了对英特尔架构的升级,推出了具有高...

    英特尔® 64 架构 x2APIC 规范.pdf

    此外,文档中还提到,Intel保留对处理器中尚未定义的特性和指令进行未来定义的权利,并且不对这些特性和指令的未授权使用导致的任何冲突或不兼容性负责。 2. Intel® 64架构处理器: 文档所涉及的处理器基于Intel®...

    英特尔 64 位和 IA-32 架构软件开发人员手册(全套最新)+最新历史更新说明-2022年4月

    而英特尔64位架构,也称为EM64T或x64,是在IA-32基础上扩展的64位版本,它在保留向后兼容性的同时,提供了更大的虚拟地址空间和更高的性能潜力。 手册中的主要内容可能包括以下几个方面: 1. **处理器架构**:详细...

    英特尔架构指南1

    **英特尔64和IA-32架构**是英特尔为支持64位计算而设计的一套指令集和架构规范,同时保持了对早期32位IA-32架构的兼容性。这一架构的发展不仅满足了高性能计算的需求,也为软件开发者提供了丰富的工具和资源。 ####...

    mic与gpu对比

    MIC常见的offload模式只需要添加少量的编译指导语句,即可让程序利用MIC进行运算,同时保持与传统CPU程序的兼容性。这种特性极大地减少了程序维护的成本。 #### 四、MIC架构深入解析 ##### 4.1 MIC硬件架构概述 ...

    英特尔X86系列处理器与ARM系列处理器性能和参数对比.doc

    自从1971年 Intel诞生了第一个微处理器——4004开始,微处理器得到了飞速的发展,在这短短的四十年的时间里有很多家公司生产过无数种型号的微处理器,但是最终只有Inter公司和ARM公司生存下来并发展成为世界最主要的...

    英特尔® 64 和 IA-32 架构软件开发人员手册合并版移除密码

    《英特尔® 64 和 IA-32 架构软件开发人员手册》(以下简称“手册”)是英特尔公司为开发者提供的一份详尽的技术文档,它包含了关于英特尔64位架构(Intel® 64)和IA-32架构(即传统的32位x86架构)的所有关键技术...

    英特尔 64 位和 IA-32 架构软件开发人员手册第 3 卷(2019年10月最新更新)

    英特尔公司是全球领先的...通过手册的指导,开发者能够更好地编写与英特尔处理器兼容的代码,提升软件的效率和稳定性。这些知识对于系统编程人员、操作系统开发者以及需要深入了解硬件平台的高级用户来说尤其重要。

    英特尔架构指南2

    ### 英特尔架构指南2:CPU架构精要解析 #### 概述 《英特尔架构指南2》作为一套详尽的技术文档集,旨在为开发者提供关于英特尔64位(Intel®64)与IA-32架构下的指令集及其应用方面的深入指导。这套文档由三个部分...

    让为ARM写程序在Android X86 4.0上运行

    ARM与X86之间的兼容性问题,是Android开发中常见的挑战,特别是在进行跨平台测试和部署时。 综上所述,为了让ARM程序在Android X86 4.0上运行,开发者需要了解并掌握交叉编译、NDK编程、ABI兼容性以及可能的模拟...

Global site tag (gtag.js) - Google Analytics