当前位置:   article > 正文

高性能计算机部件有GPU,[计算机]利用GPU进行高性能数据并行计算.pdf

利用gpu运算

[计算机]利用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作为 输入

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/883438
推荐阅读
相关标签
  

闽ICP备14008679号