- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机]利用GPU进行高性能数据并行计算
维普资讯
利用 GPU
进行高性能数据并行计算
一文 /丁艺 明 刘 波
GPU通过单指令 多数据 (SIMD)指令类型来支持数
据并行计算。参见图1,在单指令多数据流的结构 中,单
数 一 控制部件向每条流水线分派指令,同样的指令被所有
处理部件同时执行。例如NVIDIA8800GT显卡中包含有
14组多处理器 (Multiprocessor),每组处理器有8个处理
单元 (Processor),但每组多处理器只包含一个指令单元
(InstructionUnit)。
GPU强大计算能力
早期的3D游戏,显卡只是为屏幕上显示像素提供一
个缓存,所有的图形处理都是由CPU单独完成。图形渲
染适合并行处理,擅长于执行串行工作的CPU实际上难
以胜任这项任务。直到1995年,PC机领域第一款GPU
3dfxVoodoo出来以后,游戏的速度、画质才取得了一个
飞跃。GPU的功能更新很迅速,平均每一年多便有新一代
的GPU诞生,运算速度也越来越快。以下表1表 明2006
年度GPU与CPU价格相当的情况下,GPU的计算能力已
经远远高于CPU的计算能力。注:GFLOPS为每秒浮点
运算能力。
图1 NVDIAGeForce8体系结构
为什么GPU跑得快? GPU流式编程模型
GPU具有两点主要特征:超长流水线与并行计算。 GPU编程 以流式编程模型为基础,它以允许高效计
如果装配一台汽车需要 10个时间单元,将它分成 10 算和通信的方式构造程序。在流式编程模型中,所有数据
个流水线阶段,每个阶段分配一个时间单元,那么一条装 都表现为流。我们把流定义为具有相同数据类型的数据的
配线每一个时间单元就可以生产一辆汽车。显然流水线模 有序集。数据类型可以是简单的(整数或浮点数流)或复杂
式的生产在理想状况下要比串行方式快了十倍。 的(点或三角形或变换矩阵流)。流可以是任意长度,如果
200804 97
维普资讯
/(o~o[[u 一
流很长 (流中有上百或更多的元素),那么流上的操作并行 码计算成MD5值 ,然后再去和保存在文件系统中的MD5
度将很高。流上允许的操作包括复制它们,从它们导出子 值进行比较,进而确定输入的密码是否正确。
流,用一个单独的索引流索引入它们,以及用核在它们上 在我们的程序中,允许用户输入一长度为五的密码的
执行计算。GPU程序称为核,核操作整个流,获取一个 MD5值,每位密码变化范围是A—Za—z口、^_、01一,共64种
或多个流作为输入并产生一个或多个流作为输出。核的特 字符。穷举所有的密码并用MD5算法得到所有的MD5值,
征是它操作多个流上的所有元素而不是独立的元素。 与用户输入的MD5值比较,若枚举的密码MD5值与用户
CPU程序以异步的方式调用GPU核程序。GPU作为 输入
文档评论(0)