免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2286 | 回复: 2

NVIDIA进入超级计算机市场 [复制链接]

论坛徽章:
0
发表于 2009-10-11 07:30 |显示全部楼层
NVIDIA进入超级计算机市场
计算机, NVIDIA, 超级NVIDIA进入超级计算机市场
驱动之家[原创] 作者:无言 编辑:无言 2009-10-03 14:26:25 3752 人阅读 [投递]



9月30日,在加州圣荷西召开的NVIDIA发者大会上美国橡树岭国家实验室宣布一项新超级计算机计划,将用来研究能源与气候变迁,速度可望比目前最快的超级电脑更快十倍其将采用NVIDIA下一代代号"Fermi"整合30亿晶体管的GPU,当然声明中也说明将同时使用英特尔、AMD或其他厂商生产的中央处理器。

橡树岭的电脑与运算科学副实验室主任Jeff Nichols在声明中表示:Fermi GPU可促成以往不可能实现的“重大科学突破”。他说:“借由NVIDIA的技术支持,橡树岭能创造一个能提供亿亿次(exascale,10的18次方)运算的运算平台。”亿亿次运算是超越目前千兆次(petaflop)运算1,000倍的技术,达到每秒100万兆次运算。

此后,又有消息称NVIDIA将和微软合作,开发使用Tesla高性能计算卡的基于Windows HPC Server 2008平台的集群服务器。NVIDIA已经开始正式进入超级计算机市场。

最核心的流处理器(Streaming Processor/SP)现在不但数量大增,还有了个新名字CUDA核心(CUDA Core),由此即可看出NVIDIA的转型之意,不过我们暂时还是继续沿用流处理器的说法。

所有流处理器现在都符合IEEE 754-2008浮点算法(Cypress也是如此)和完整的32位整数算法,而后者在过去只是模拟的,事实上仅能计算24-bit整数乘法;同时全面引入的还有积和熔加运算(Fused Multiply-Add/FMA),每循环操作数单精度512个、单精度256个(G200仅支持单精度FMA)。所有一切都符合业界标准,计算结果不会产生意外偏差。

双精度浮点(FP64)性能大大提升,峰值执行率可以达到单精度浮点(FP32)的1/2,而过去只有1/8,AMD现在也不过1/5,比如Radeon HD 5870分别为单精度2.72TFlops、双精度544GFlops。由于最终核心频率未定,所以暂时还不清楚Fermi的具体浮点运算能力(双精度预计可达624GFlops)。

GT200的每组SM都有16KB共享内存,由其中8个SP使用。注意它们不是缓存(cache),而是软件管理的内存(memory),可以写入、读取数据。为了满足应用程序和通用计算的需要,Fermi引入了真正的缓存,每组SM拥有64KB可配置内存(合计1MB),可分成16KB共享内存加48KB一级缓存,或者48KB共享内存加16KB一级缓存,可灵活满足不同类型程序的需要。

GT200的每组TPC还有一个一级纹理缓存,不过当GPU出于计算模式的时候就没什么用了,故而Fermi并未在这方面进行增强。

整个芯片拥有一个容量768KB的共享二级缓存,执行原子内存操作(AMO)的时候比GT200快5-20倍。
CPU和GPU执行的都是被称作线程的指令流。高端CPU现在每次最多只能执行8个线程(Intel Core i7),而GPU的并行计算能力就强大多了:G80 12288个、GT200 30720个、Fermi 24576个。

为什么Fermi还不如GT200多?因为NVIDIA发现计算的瓶颈在于共享内存大小,而不是线程数,所以前者从16KB翻两番达到64KB,后者则减少了20%,不过依然是G80的两倍,而且每32个线程构成一组“Warp”。

在G80和GT200上,每个时钟周期只有一半Warp被送至SM,换言之SM需要两个循环才能完整执行32个线程;同时SM分配逻辑和执行硬件紧密联系在一起,向SFU发送线程的时候整个SM都必须等待这些线程执行完毕,严重影响整体效率。

Fermi解决了这个问题,在每个SM前端都有两个Warp调度器和两个独立分配单元,并且和SM其它部分完全独立,均可在一个时钟循环里选择发送一半Warp,而且这些线程可以来自不同的Warp。分配单元和执行硬件之间有一个完整的交叉开关(Crossbar),每个单元都可以像SM内的任何单元分配线程(不过存在一些限制)。

这种线程架构也不是没有缺点,就是要求Warp的每个线程都必须同时执行同样的指令,否则会有部分单元空闲。每组SM每个循环内可以执行的不同操作数:FP32 32个、FP64 16个、INT 32个、SFU 4个、LD/ST 16个。
、统一64-bit内存寻址

以前的架构里多种不同载入指令,取决于内存类型:本地(每线程)、共享(每组线程)、全局(每内核)。这就和指针造成了麻烦,程序员不得不费劲清理。

Fermi统一了寻址空间,简化为一种指令,内存地址取决于存储位置:最低位是本地,然后是共享,剩下的是全局。这种统一寻址空间是支持C++的必需前提。

GT80/GT200的寻址空间都是32-bit的,最多搭配4GB GDDR3显存,而Fermi一举支持64-bit寻址,即使实际寻址只有40-bit,支持显存容量最多也可达惊人的1TB,目前实际配置最多6GB GDDR5——仍是Tesla。
下边对开发人员来说是非常酷的:NVIDIA宣布了一个名为“Nexus”的插件,可以在Visual Studio里执行CUDA代码的硬件调试,相当于把GPU当成CPU看待,难度大大降低。

Fermi的指令集架构大大扩充,支持DX11和OpenCL义不容辞,C++前边也已经说过,现在又多了Visual Studio,当然还有C、Fortran、OpenGL 3.1/3.2













仔细看结构图更像CPU,支持C++,直接支持GPU计算的一次跨越
1)统一64位地址
2)独立cache
3)多管线处理单元

以上图片均来自NV的PAPER

论坛徽章:
0
发表于 2009-10-11 17:06 |显示全部楼层
程序估计很难写。
除非提供专用的语言和编译器

论坛徽章:
0
发表于 2009-10-11 17:41 |显示全部楼层
此贴应发去IT新闻
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP