【IT168 资讯】现在半导体产业还在不断向着更快更强的方向发展,除了我们平常使用的电脑在不断提升性能以外,其实在高性能计算HPC方面更是如此,比如管理互联网共享数据的爆炸性增长(例如最近很受关注的云计算应用)、寻求应对气候变化的解决方案、管理不断增加的自然资源(如石油和天然气)开采成本以及应对各种各样的其他挑战,都需要更多的计算资源,而这些资源只能依靠越来越多的高性能超级计算机来提供。
这些最依赖于计算机的CPU和GPU来完成这些繁杂的工作,那么Intel/AMD/NVIDIA这三大家半导体厂商在这方面的思路都是怎么样的呢?今天我们就此做一个对比分析;首先来说NVIDIA。
高性能计算策略对比之NVIDIA
大家知道NVIDIA自己没有CPU技术,所以此前一直在x86处理器授权方面碰到很多困难,不过聪明的CEO黄仁勋巧妙解决了这个问题:废弃x86转投ARM。
在此前的GPU技术大会(GTC)上,公司CEO黄仁勋在会上一改之前对未来产品计划三缄其口的风格,黄仁勋在此次大会上预告了下两代GPU架构,并宣布了“Project Denver(丹佛计划)”)”,同时决定开发兼容ARM指令集的高性能通用处理器。继特斯拉和费米之后,两款新核心的代号仍然以著名物理学家命名,分别是Kepler(开普勒)和Maxwell(麦克斯韦)。
按照黄仁勋在会上的描述,2009年推出的费米比2007年的特斯拉(G80)在每瓦双精度浮点性能上提升了近一倍。而2011年底将推出的开普勒会把双精度浮点性能提升4倍以上。开普勒会基于28nm工艺制造,引进多项类似CPU的功能特色,比如虚拟内存、Non-blocking(非阻塞)I/O等。
▲黄仁勋预告下两代GPU:Kepler+Maxwell
再过两年到了2013年,22nm工艺打造的麦克斯韦就将来临,每瓦双精度浮点性能相比费米提高10倍,相比特斯拉提高接近16倍。“Maxwell”将会是首批ARM处理器将与自家的GPU结合的产品。
采用28nm工艺的“Kepler”架构的GPU预计在今年年底登场,而采用20nm工艺的“Maxwell”架构则在2013年底。
很明显,NVIDIA希望搭载ARM这艘大船出海,并把自己的强势GPU产品推向全世界,以满足未来高性能计算方面的需求。
高性能计算策略对比之AMD
而AMD在自身资源方面,有着自己的特点,首先AMD拥有CPU和GPU两项技术优势,因此通过互补优势,达到最好的效率。我们从它们下一代GPU和CPU技术上,就可以看到AMD融合计算的思路:未来AMD CPU和GPU将共享系统资源,共同完成高性能计算。
先来分析一下AMD下一代GPU的架构特点:它可能用"graphics-enabled vector processor"(配图形功能的向量处理器)来形容更恰当,这比NVIDIA的Fermi GPU可能更过之而无不及。
▲AMD下一代GPU架构某种程度将充当CPU角色
这个GPU具备X86内存寻址特性,换句话说就是可以和CPU一样调用系统内存,CPU通过MMU内存控制器访问内存,而GPU则是通过IOMMU实现内存调用。这种新技术允许系统设备在虚拟内存中进行寻址,也就是将虚拟内存地址映射为物理内存地址,让实体设备可以在虚拟的内存环境中工作,这样可以帮助系统扩充内存容量,提升性能。该技术可以通过搭配具备IOMMU的AMD 8系和9系主板来实现。
▲
同时AMD下一代GPU还具备64bit x86指针、Page fault、地址转换缓存、分配内存的功能,操作系统将会同时为CPU、GPU内存调用全面服务。当然只是能够调用内存还不够,还需要让GPU能够接替原本CPU干的活,这方面我们看到了很多希望。
▲
我们仔细总结AMD下一代GPU的架构特性:
每个计算单元CU将基于vector向量处理器、scalar具备协处理器和特殊图形硬件
每个计算单元CU将会具备4线程MIMD(用于多指令多数据计算)和64-op FMAD vector向量处理器单元(用于SIMD单指令多数据计算),并支持40路SMT多线程能力
每个计算单元CU将独占16KB L1 cache,并搭配64KB L2 cache(可以被别的CU和CPU共享)
可支持x86兼容寻址、指针、page faults、CPU/GPU共享L2 Cache和内存
很明显,GPU将会具备处理器的架构特点,那么它和处理器架构相似程度有多高呢?接下来就让我们来对比一下推土机的架构。
下图是Bulldozer的具体结构,可以看到一个Bulldozer有2个整数运算的内核,每个内核有4个整数运算通道。4个通道内,2个ALU和AGU为一组,而现在AMD的架构是3个ALU和AGU为一组,最大能实现3个x86整数运算命令。如果是4个ALU和AGU一组的话,那么一个整数运算内核要比现有CPU内核大,如果是2个ALU和AGU一组的话,大约是现有内核的2/3。
▲AMD Bulldozer架构
Bulldozer模块的指令获取和解码,每个周期可处理4条指令,而计算指令与在寄存器操作的x86指令会被分成8个内部微操作指令(uOPs),整数运算管道中ALU和AGU则两两成对,正好吻合。
在浮点运算单元方面,则准备了两个整合的128bit SIMD单元,这将兼容英特尔的256bit AVX指令集,AVX将在这两个128bit SIMD单元中执行。
编辑点评:AMD下一代GPU架构废弃VLIW4架构,而选择更偏向通用计算的SIMD结构,使得它的计算特点和CPU有某些相似的地方,同时CPU和GPU的资源可以真正实现共享,包括内存、缓存等等,以达到效率最大化,未来可能真的不需要去区分到底是CPU的性能好还是GPU的性能好,因为它们已经成为一个整体,不能独立区分你我。
高性能计算策略对比之Intel
当然,Intel在高性能计算方面也有自己的思路。在前不久的国际超级计算大会(ISC)上,英特尔公司副总裁兼数据中心事业部总经理施浩德(Kirk Skaugen )阐述了英特尔计划在2011-2020这个十年期的末期实现每秒百亿亿次浮点计算性能(ExaFLOP/s)的愿景。针对这个计划,Intel推出了Intel Many Integrated Core(Intel MIC)架构,并将推出MIC架构产品(代号为“Knights Corner”)和MIC软件开发平台(代号为“Knights Ferry”)。
▲英特尔Knights Ferry协处理器开发扩展卡
Knights Corner CPU将会采用Intel 2012开始使用的3D“三门”晶体管技术,使用22nm工艺制造。并且将会是Intel首个使用MIC(Many Integrated Core,多核心整合)技术的CPU,每个CPU将会集成50个专门为并行计算设计的核心(目前已有的产品是32个核心),和NVIDIA/AMD的GPU设计理念类似,属于协处理器产品,说白了其实就是夭折的Larrabee设计的再现。
已有Knights Corner结构:
目前已有的Knights Ferry产品包括在服务器CPU中的32个主至强芯片核心,以及PCIe插槽中相应的512位向量处理单元。这款芯片的每个核心运行4个线程,包括8MB共享缓存以及高达2GB的高速GDDR5内存。
英特尔自己就表示Knights Corner和MIC平台的关键性优势就在于其兼容性,支持x86代码,从而开发者可以使用类似的平台为MIC系统写代码。英特尔MIC计算机总经理Anthony Neal-Graves表示,“关键性的优点就是其编程模型的普适性,Xeon上编写的程序都可以用于MIC。”
▲
据称英特尔MIC架构在编程模式上的优势可以把英特尔至强处理器上的应用快速扩展到Knights Ferry 软件开发平台上。这项工作负载最初是专为英特尔至强处理器开发和优化的,但是由于英特尔MIC架构采用了我们熟悉的编程模式,在几个小时内就能针对英特尔MIC架构优化其代码,同时实现超过每秒6500 亿次浮点计算的性能。”
点评:Intel的思路其实很明显,就是用CPU来做高性能并行计算,因为Intel没有图形技术,而Intel在处理器技术和制造方面,有自己的优势,不过对并行计算的研究程度能否达到NVIDIA和AMD这些图形技术厂商,我们表示一定的怀疑。我们期待未来这三家厂商在这个领域的正面交锋。
更多资讯和企业高性能计算解决方案可访问高性能计算社区。