找回密码
 新注册用户
搜索
查看: 6773|回复: 10

[转帖] C版大作--超越图形界限 AMD并行计算技术全面解析(转自ZOL)

[复制链接]
发表于 2010-8-25 19:39:27 | 显示全部楼层 |阅读模式
本帖最后由 cicikml 于 2010-8-26 10:05 编辑

作者:中关村在线 濮元恺 责任编辑:王胤韬 【原创】 CBSi中国·ZOL 2010年08月25日

http://vga.zol.com.cn/192/1927855.html


    ● 全文导读与内容简介

    在2010年8月16日,AMD宣布推出全面支持OpenCL 1.1的ATI Stream软件开发包(SDK)2.2版,新版本的SDK为开发人员提供开发强大的新一代应用软件所需要的工具。这一版本的最大意义在于它表明了AMD在不断追求与开放性应用程序接口OpenCL的兼容,同时AMD再通过OpenCL快速提升其在业行内的影响力,毕竟借助这一标准,AMD和NVIDIA站在了统一起跑线上,OpenCL接口对于一个技术与标准的追随者来说是千载难逢的机会。

    作为全世界成立较早和目前仍然具备绝对影响力的图形芯片生产厂商,ATI一直在探索图形芯片发展的方向,并在这25年发展历程中长期领跑GPU性能增长。自从统一渲染架构提出以来,ATI一直在寻求对这款架构的完善,我们看到继Xenos之后的在PC市场ATI设计了R600到R800一系列性耗比和性价比广受好评的架构。


全面支持OpenCL 1.1的ATI Stream软件开发包(SDK)2.2版


    不同厂商对于未来计算环境的考虑是有很大差异的,NVIDIA正在借助G80架构以来的特性不断加强GPU的通用性和编程易用性,其GPU内部大量单元用于逻辑控制和存储,而AMD则主要倾向于用最少的晶体管开销用于流处理器阵列的构建,用线程规模来掩盖延迟。总体来说,NVIDIA坚持的TLP(线程并行度)考验线程能力和并性能力,AMD坚持的ILP(指令并行度)则考验指令处理。

    今天我们希望总结我们之前获得的大量资料,借助这篇文章对AMD并行计算技术做比较详细的特性分析。在文章的不同章节,我们将各有侧重地分析GPU并行计算的原理、发展历程、运算单元细节和目前我们能够找到的GPU通用计算实例。同时我们对Fermi架构、Fusion概念和Larrabee架构的特性做简单分析和预测,希望能让用户通过这些业界最为前瞻的产品找到未来GPU发展路径。

第一章:GPU工作原理与并行计算



     我们将以21世纪视觉需求与GPU变化为开端回忆GPU从诞生以来的应用领域变革,通过GPU渲染流水线全面转向可编程浮点单元,GPU已经走向了并行应用,同时成为超级计算机不可或缺的部件。在目前备受关注的云计算领域,GPU同样可以发挥自己运算密度和并发线程数极高的特色,更多无法采购大型设备而急需计算资源的用户,将享受到GPU云计算带来的便利。

第二章:GPU结构与ATI芯片发展



    我们将从R300架构开始回顾ATI GPU发展历程,同时和读者一起探讨不同结构流处理器指令细节,同时关注ATI第一代统一渲染架构Xenos对未来发展的影响。

第三章:GPU通用计算发展与细节



    这一章我们参考大量基础性资料来讲解CPU和GPU内部功能单元的异同,通过这些异同和它们的适用环境,我们了解到AMD提出的CPU+GPU异构计算平台能够借助更好的编程接口获得更好的加速比。这种方式比单纯给GPU增加调度能力或者给CPU增加并行度要更为实际,易用性也会得到解决。

第四章:GPU内部的计算实现细节



    这一部分我们关注CPU主要计算单元分布和职能,GPU内部通用计算代码运算过程,同时我们对浮点和整数能力做了进一步分析。这一章的亮点在GPU流处理器结构与性能分析部分,我们使用了较为专业的底层软件来对比不同架构的性能差异,对前文的分析做了数据佐证。

第五章:ATI GPU通用计算实例分析



    本章我们首先分析了Open CL接口对于ATI GPU未来发展的影响,然后列举了一些普通用户能够找到并且参与计算的分布式并行计算项目。文章最后的蒙特卡洛算法、N-body仿真和基于GPU的计算机病毒特征匹配来自《GPU精粹3》实例分析,我们希望这种具有普遍意义的项目和算法能够拓展未来的GPU应用深度和广度。

   ● 前言:通过GPU并行计算见证行业最大变革

    从1999年到现在从第一个显卡GPU产生到现在只有短短十年的时间。在这短短十年当中我们已经看到了GPU的运算能力呈几何级数提升,这个世界在GPU的虚拟之下更快更真,而更重要的一点是GPU已经将它的应用范围不断拓展。

    从图形领域虚拟现实的角度来说,只要有显示终端的地方就需要一颗GPU。借助于GPU可以让医学家观察到更细微的分子;借助于GPU可以让军事演习的拟真度更强;借助于GPU可以让专业工作站的效率翻倍提升;借助于GPU可以让电影的特效骗过你的眼睛。

    最近几年中当我们发现GPU的硬件结构能够适应极高并行度与大量浮点吞吐的运算环境,更多的科学研究领域已经开始大量采购GPU设备应用于电脑辅助工程、油气勘探、金融安全评估等领域。至此,GPU存在的意义已远远不是为图形运算服务这么简单。



   高性能并行计算已经成为国家竞争力的重要标志之一,对科学技术进步、经济社会发展、生态环境保护和国家与公共安全的作用日益显著。但是,在超级计算机的峰值突飞猛进的同时,其投资大、运行维护成本高、使用效率低等问题也日渐突出,成为制约超算能力提升的瓶颈。

    以低廉的成本和现成的网络设施实现高效的GPU超级计算技术越来越受到很多企业及科研单位的关注。GPU运算今天已经在产业界占有一席之地,尤其在科学模型模拟的运算上,都需仰赖GPU执行,动辄比一般中央处理器(CPU)还快出数十倍,甚至数百倍的复杂数学模型运算。

    通过Shader单元的可编程性将GPU运用于图形运算之外的应用领域,是本世纪初计算机行业最大的变革,它标志着一种可大规模生产的高性能芯片正在渗透传统CPU掌控的高性能计算领域。借助GPU这种运算单元密集的芯片,各行业可以获取性价比和性耗比更高的运算解决方案。

    曾今很多无法想象和耗费巨大的科学命题如全球气候变化、人类基因组工程等等问题如今可以借助GPU的运算能力以更快更经济的途径实现。作为这场变革的见证和参与者,我同样有幸通过媒体的宣传力量,来推动更多人对于GPU参与高性能计算的认识和理解。本文将通过介绍一个在传统图形领域的霸主——AMD GPU产品在通用计算技术方面的发展与技术细节。

第一章:GPU工作原理与并行计算
    ● 第一章:GPU工作原理与并行计算

    10年前我们所有人都认为显卡服务于制图、动画、游戏等电子娱乐领域,这没有错。因为GPU(Graphic Processing Unit 图形处理器)发明的目的就是为了应对繁杂的3D图像处理。GPU的工作通俗的来说就是完成3D图形的生成,将图形映射到相应的像素点上,对每个像素进行计算确定最终颜色并完成输出。但是谁都没有想到10年后的今天,GPU的内部架构和应用范围已经发生了翻天覆地的变化。

    随着GPU的可编程性不断增强,可编程浮点单元已经成为GPU内部的主要运算力量,并且调用越来越方便,编程门槛不断降低。GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose computing on graphics processing units,基于GPU的通用计算)。

    以前的服务器或者超级计算机都要拆除显卡这个多余的单元以减少发热和功耗,但是GPU通用计算时代的来临将板载GPU的显卡变为超级计算机不可或缺的加速部件。其实首款专门作流处理/并行计算的GPU产品并不是现在炒的火热的NVIDIA的Tesla产品,而是ATI的Fire Stream产品。早在2006年,ATI就发布了基于R580核心的流处理加速卡,48个像素渲染单元成为流处理器的雏形。

    R580核心相对于它之前的R520核心最明显的差异就是使用了20%的晶体管增量换来了200%的浮点吞吐量提升,这在当时绝对是一种创举。这种思路的提出是为了适应当时游戏编程环境越来越倚重渲染单元(Pixel Shader)运算,而这种思路的结果除了让ATI在DirectX 9.0时代末期赢得了性能王座之外,还造就了历史上第一款用于图形计算之外的Fire Stream产品。



    上世纪60年代初期,大型主机(Mainframe)的问世标志着并行计算机诞生,随后我们看到计算机体系越来越成熟。高性能计算机甚至体现了一个国家在高科技领域的发言权,其经济发展速度和结构也与高性能计算机的计算能力息息相关。同时随着个人电脑计算能力的增长缓慢和计算需求的提升,云计算似乎成为目前炙手可热的话题。

    放眼整个高性能并行计算领域,业界正在为X86架构CPU性能提升缓慢而感到担忧,特别是目前X86架构频率提升不断遇到障碍,并行度受制于传统CISC架构难以获得飞跃。超级计算机只能通过堆砌节点数量还换取性能提升吗?有没有一种性价比性耗比更高的解决方案?也许让每台PC机内置的GPU来处理这些并行数据再合适不过了。

    在本章我们将分析GPU工作原理和历史沿革,并告诉读者这种芯片结构为什么能够适应大规模并行计算。同时我们在本章对目前业界所关注的高性能并行计算和云计算也做了简短分析。

.............................................................................

全文阅读  http://vga.zol.com.cn/192/1927855_all.html#p1927855
回复

使用道具 举报

发表于 2010-8-25 22:02:02 | 显示全部楼层
金版,您穿越了!这应该是cicikml来转载的...
回复

使用道具 举报

发表于 2010-8-25 22:17:51 | 显示全部楼层
谢谢金鹏兄转载了,几个月前一直在找资料写提纲,用了一个多月时间,终于完成了这篇文章……
全文共分5章,基本上都是参考了我所看过的GPU并行计算的相关书籍写成的,其中第五章已经没时间写了,所以这部分写的很仓促。
其他部分还是有可读性的,如果用户喜欢这部分知识,相信他会阅读其中最主要的内容。
回复

使用道具 举报

发表于 2010-8-25 23:19:57 | 显示全部楼层
只有佩服的份了,看到金版89楼的评价了,
回复

使用道具 举报

发表于 2010-8-26 00:54:07 | 显示全部楼层
实在太强大了!
要花点时间阅读一下~
回复

使用道具 举报

发表于 2010-8-26 19:43:02 | 显示全部楼层
C版威武~
回复

使用道具 举报

发表于 2010-8-26 22:51:00 | 显示全部楼层
太专业了 不是计算机专业的读不懂 只能看看BOINC介绍 和Folding 感觉AMD在科学计算方面落后于NV
回复

使用道具 举报

 楼主| 发表于 2010-8-27 20:59:25 | 显示全部楼层
回复 2# Kfir

转帖是我的专长
回复

使用道具 举报

 楼主| 发表于 2010-8-27 21:01:16 | 显示全部楼层
回复 3# cicikml

兄弟写得够牛啊

村里的兄弟们都说ZOL新来的小编有水平
回复

使用道具 举报

 楼主| 发表于 2010-8-27 21:02:01 | 显示全部楼层
回复 4# eqzero

哈哈,兄弟是凭头像认出我在ZOL的马甲吧
回复

使用道具 举报

发表于 2010-8-30 03:22:13 | 显示全部楼层
据说amd并行计算的悲剧在于分支跳转
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-4-23 22:26

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表