流处理器核心技术的应用研究
VIP免费
流处理器核心技术的应用研究
摘 要
流处理器是近年来出现的一种起源于媒体图形处理的高性能处理器,它一
般采用大规模的运算阵列和多级存储,通过片内并行并结合面向媒体特征的指
令,实现对应用计算的高性能支持,其代表芯片包括 Imagine 、Merrimac、RAW
、Cheops 、TRIPS 、SCORE 、Cell 以及 FT64 等。流处理器已经在数字处理、多媒体
以及图像等领域得到了广泛应用。
CUDA(Compute Unified Device Architecture)是在 GPU 上进行计算的新
基础架构,它将 GPU 作为一种真正通用的数据并行计算设备,它可以使用 GPU
来解决商业、工业以及科学方面的复杂并行计算问题。它是一个完整的 GPU 解决
方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形 API
接口来实现 GPU 的访问,它给大规模的数据计算应用提供了一种比 CPU 更加强
大的计算能力。
通过查阅和阅读 CUDA 技术文献,对 CUDA 技术进行深入学习和研究:
1. 本文首先探讨了 CUDA 编程结构,其中包括 CUDA 的执行过程,CUDA 的运算
单元,CUDA 和主存储器间的数据传输,CUDA 的软件架构,CUDA 的编程模型。
2. 其次根据 CUDA 编程结构的特性,以实际科学计算中经常用到的矩阵乘法算
法作为实验,从内存存取的优化、共享内存的优化、线程块的优化三个角度
分别对该算法进行程序优化,通过实验结果总结了 CUDA 程序的优化原则。
3. 再次依据 CUDA 技术的特点,研究复杂网络计算同步的应用实例,建立环状
自相似结构复杂网络模型,确定进行同步的计算方法,构建复杂网络同步计
算模型。将该模型中抽象出的可以并行执行的数据集合,使用二分算法映射
到 CUDA 上执行计算。
4. 最后对小区固定电话用户复杂网络进行数值仿真计算,通过实验结果对并
行程序和串行程序进行数值对比,验证了 CUDA 在并行计算上的性能优势。
关键词:流处理器 并行计算 复杂网络应用
ABSTRACT
Stream Processor is the origin of the media of a high-performance graphics processors
in recent years, which generally use the large-scale computing and multi-level storage
array through the parallel-chip and media-oriented features of the Directive, to
achieve support high-performance computing applications. On behalf of chips
including Imagine, Merrimac, RAW, Cheops, TRIPS, SCORE, Cell and FT64 so on.
Stream Processor has been in data processing, multimedia, as well as images and
other fields has been widely applied.
CUDA (Compute Unified Device Architecture) is a new infrastructure which
calculated on the GPU, it makes GPU as a truly universal data parallel computing
devices, it can use the GPU to address the commercial, industrial and scientific
aspects of the issue of the complexity of parallel computing. It is a complete solution
of GPU to provide direct access to hardware interfaces, like the traditional way
without having to rely on the same graphics API interface to achieve GPU's visit,
which a large-scale data to provide a more powerful than the CPU computing power.
According to access and read the CUDA technology literature, for CUDA technology
to conduct an in-depth study and research:
1.At first this article introduce CUDA programming structure, including the CUDA
implementation, CUDA computing unit, CUDA and between the main memory
data transfer, CUDA software architecture, CUDA programming model.
2.Second followed by CUDA programming in accordance with the characteristics
of the structure to the actual scientific computing are often used as a matrix
multiplication algorithm experiment, from the memory access optimization, the
optimization of shared memory, thread pieces of the optimization of the three
angles The algorithm for process optimization through experimental results
summed up the principle of CUDA optimization process.
3.Third based on the characteristics of CUDA technology to study the complexity
of network computing application synchronization, the establishment of circular
self-similar structure of the complex network model to determine the calculation
of synchronization, to build complex network computing model synchronization.
The model can abstract out the implementation of the data set in parallel, the use
of the second sub-mapping algorithm to perform a calculation of CUDA.
4.Finally plot a complex network of fixed telephone subscribers to carry out
numerical simulation by the experimental results of parallel programming and
serial numerical comparison procedures to verify the CUDA parallel computing in
the performance advantages
Key Word :Stream Processor, Parallel Computing, Complex Network
Application
目 录
摘 要
ABSTRACT
目 录
第一章 绪 论......................................................1
§1.1 研究历史背景.............................................1
§1.2 研究现状.................................................5
§1.3 论文工作.................................................6
第二章 流体系结构..................................................7
§2.1 流处理思想...............................................7
§2.2 流编程模型...............................................8
§2.3 GPU 的流处理特征..........................................9
§2.4 流处理器的优缺点........................................11
第三章 CUDA 介绍..................................................13
§3.1 CUDA 的背景介绍..........................................13
§3.2 支持 CUDA 的 GPU 产品......................................16
§3.3 具有片上共享缓存的一组SIMD 多处理器.....................17
§3.4 PTX并行线程执行模型.....................................18
§3.5 CUDA 的执行过程..........................................20
§3.6 CUDA 的运算单元..........................................20
§3.7 CUDA 和主存储器间的数据传输..............................21
§3.8 CUDA 的软件架构..........................................21
§3.8.1 NVCC C 编译器......................................21
§3.8.2 Host 端程序与Device 端程序.........................22
§3.8.3 软件执行模型的特点.................................24
§3.9 CUDA 编程模型............................................25
§3.9.1 高度多线程协处理器.................................25
§3.9.2 线程批处理.........................................25
§3.9.3 协作线程阵列.......................................26
§3.9.4 协作线程阵列的线程格...............................26
§3.9.5 编程模型的特点.....................................27
§3.10 CUDA 的应用前景.........................................27
第四章 CUDA 程序的改进............................................29
§4.1 实验算法................................................29
§4.2 实验环境................................................29
§4.3 内存存取的优化..........................................30
§4.4 共享内存的优化..........................................36
§4.5 线程块的优化............................................38
§4.6 程序优化结论............................................42
§4.6.1 CUDA 共享缓存的读取优化............................42
§4.6.2 CUDA 全局内存的读取优化............................44
§4.6.3 CUDA 纹理内存的读取优化............................45
第五章 复杂网络同步计算的分析......................................47
§5.1 应用背景................................................47
§5.2 问题描述................................................48
§5.3 复杂网络同步计算模型的分析..............................49
§5.3.1 复杂网络的分解.....................................49
§5.3.2 复杂网络同步计算的分析.............................50
第六章 固定电话用户网络同步计算在 CUDA 的实现......................55
§6.1 复杂网络构建与算法分析..................................55
§6.2 数据结构定义............................................58
§6.3 初始装载过程............................................61
§6.4 线程分配................................................61
§6.4.1 单环复杂网络线程的分配.............................61
§6.4.2 多环复杂网络线程的分配.............................62
§6.5 内核启动................................................65
§6.6 同步计算算法描述.........................................65
§6.6.1 间隔的细分.........................................67
§6.6.2 特征值计数的计算...................................69
§6.7 数据返回.................................................70
第七章 CUDA 程序与串行程序性能对比................................72
§7.1 实验环境................................................72
§7.2 仿真数值计算结果及其分析................................72
第八章 总结和展望.................................................74
§8.1 全文总结................................................74
§8.2 未来展望................................................75
参考文献...........................................................76
第一章 绪论
第一章 绪 论
现在计算机图形处理器(GPU,Graphical Processing Unit)高速发展,
随着图形处理器性能的大幅度提高以及可编程特性的发展,人们逐渐开始不仅
仅用图形处理器处理图形渲染类的流水线计算,而更多的让其应用于通用计算。
由于图形图像的渲染需要高强度的并行计算,因此流处理器的体系结构就
是为计算密集型处理而设计,它具有数量庞大的运算单元、鲜明的存储层次结构
由于总线技术的进步,PCI-E 接口的出现,从而可以得到更高的片外带宽,更
多的晶体管被用于数据处理而不是数据存储与流控制,而其本身高的本地带宽
更适用于满足大规模的运算单元阵列的需求,因此流处理器又被称为计算密集
型处理器。
流处理器特别适合处理那些可以具有较高算法强度且可以被表达为并行数
据计算的问题[1],即同样的程序如果通过细分成众多数据元素的并行执行,会
具有较高的算术操作与存储操作之比。进行数据的并行处理,把数据元素映射、
规划为数以千计的并行处理线程。很多通用计算应用程序都有一个较大的数据集
就可以通过数据并行编程模式来加速他们的执行。这些通用计算应用程序包括:
地震模拟,计算生物学,选择商业风险计算,医学成像,模式识别,信号处理
物理仿真等。
§1.1 研究历史背景
对于把计算机图形处理器应用于通用计算技术,是目前科学研究的热点问
题。在 NVIDIA 公司发布 GT200 系列显示芯片之后,基于计算机图形处理器的通
用计算更加受到了人们的关注。而且Intel 公司也发布声明,声明其下一代独立
显卡 Larrabee 有十分超强的通用计算能力。
在 2003 年,Intel 和 AMD 就都在为生产出性能强大的处理器而努力。由于这
两大芯片公司的激烈竞争,在短短几年的时间里,处理器的主频时钟速度有了
显著的提升。尤其是到了 Intel 的 Pentium 4 推出的时候,处理器的时钟频率提
升到了一个前所未有的高度。
但是随着制造工艺技术的制约,这种时钟频率的提升很快就碰到了壁垒。从
2001 年至2003 年,Pentium 4 处理器的时钟频率从最初的 1.5GHz 提升到了
3GHz。然而从 2003 年到 2005 年,整整 2 年的时间里,处理器的时钟频率提升的
速度骤然放缓,只是从 3GHz 增加到 3.8GHz。
后来 Intel 公司充分的优化了处理器的架构,使之可以运行在更高的频率
上,Prescott 核心就是这种新处理器架构的代表。但是时钟频率的限制不只局
限于工业制造技术的方面,而且局限于最简单最基本的物理定律的壁垒。摩尔定
律描述了有关在一定面积内的晶体管的集成度。长期以来,处理器晶体管集成度
的提高都伴随着性能的提升和时钟频率的提高。因此随着处理器架构的革新,晶
体管的集成度也越来越高,其局限性也越来越明显。此时计算机图形处理器却迎
来了前所未有的发展,显示核心比 CPU 更适用摩尔定律。
CPU 的架构设计与计算机图形处理器完全不同。处理器的设计宗旨就是要从
指令流中得到最高的处理效能。因此处理器的设计使用了很多附加的措施,例如
将数据分为浮点、整数等不同的数据类型,嵌入随机存储装置,使用分支预测技
1
流处理器核心技术的应用研究
术等等。而好的处理器架构就能在同一时间处理更多条指令,就是指程序的并行
处理。由此,Pentium 处理器中引入了超标量执行的概念,例如每个时钟周期可
以处理 2 条指令。而在 Pentium Pro 处理器中,又引入了 out-of-order 乱序执
行的概念。为了更好的利用执行单元,处理器可以乱序执行指令,从而进一步提
高指令处理的效能。但是问题出现在指令流是连续的,它会大大制约并行执行单
元的效率。因此随意的在处理器中增加并行执行单元是毫无用处的,因为这些并
行执行单元可能在绝大多数时间处于空闲状态。这也是目前困扰多核心处理器的
一大问题。
而计算机图形处理器在执行时的工作原理就相对简单。它的工作就是要生成
一组多边形,同时产生一组像素填充到多边形中去。多边形和像素之间的处理操
作是独立的,因此可以使用并行处理的思想,在处理流水线中尽可能的加入更
多的并行执行单元来加快处理的速度。从而计算机图形处理器就会有更多的执行
处理单元处于忙碌状态,这会比 CPU 具备更高的处理效能。
计算机图形处理器与CPU 另一个不同之处就是记忆体。GPU 与显存之间的联
系十分紧密。当GPU 要读取一个材质单元时,需要使用几个时钟周期读取临近的
材质单元。并且当写入一个像素的时候,也需要花费几个时钟周期参考临近的单
元。这种机制对于内存来说是非常有利的,因此它可以更加合理的利用显存带宽
计算机图形处理器与CPU 不同之处在于,GPU 不需要庞大的高速缓存。缓存的目
的仅是加速材质的处理速度。
长期以来 CPU 与计算机图形处理器是完全两个独立处理部分。使用 CPU 来进
行办公、互联网浏览等应用。而计算机图形处理器是为了更快的绘制出立体的图
像。后来对计算机图形处理器处理新的理念的出现,改变了传统的独立处理。这
就是计算机图形处理器具备了可编程性。第一款被称作可编程的计算机图形处理
器是 NVIDIA 公司研发的 NV20芯片,就是 Geforce3 系列。它能够处理的程序指
令非常有限,大约在 10条左右,另外它所能处理的数据类型也非常之有限,只
能处理 9bit 或12bit 固定长度的数据。
当NVIDIA 公司研发的NV30芯片发布的时候,摩尔定律再次得到了印证,
不仅晶体管数量增加,计算单元的数量也成倍增长。同时这也使得显卡芯片更具
灵活性。因此 NVIDIA 的 NV30 具备许多革命性的突破,就是它使计算机图形处理
器看上去不仅仅是一个图形加速器。
从NV30芯片开始,计算机图形处理器开始支持单精度浮点运算,只是它并
不完全支持 IEEE754标准。另外它支持超过数以万记的指令处理。这一特点使得
计算机图形处理器可以通过一些途径找到突破芯片生产工艺技术的壁垒,制造
出性能更为强大的芯片。
使用图形加速器的架构设计思想,运用到数学计算中去,这种设计思想在
20世纪 90 年代就已经产生。这是只是简单的利用基于计算机图形处理器硬件布
线级别的功能,比如利用光栅和Z-buffers 来计算弹道轨迹或绘制 Voronoi 图
表。这是对计算机图形处理器最为原始的通用计算应用实例。Voronoi 图,又叫
泰森多边形或Dirichlet 图,它是由一组由连接两邻点直线的垂直平分线组成
的连续多边形组成。N个在平面上有区别的点,按照最邻近原则划分平面;每个
点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi 多边形共享
一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形
相关的Voronoi 多边形的一个顶点。Voronoi 三角形是 Delaunay图的偶图。
在 2003 年,计算机图形处理器架构设计中又出现了另一个新的概念——
2
摘要:
展开>>
收起<<
流处理器核心技术的应用研究摘要流处理器是近年来出现的一种起源于媒体图形处理的高性能处理器,它一般采用大规模的运算阵列和多级存储,通过片内并行并结合面向媒体特征的指令,实现对应用计算的高性能支持,其代表芯片包括Imagine、Merrimac、RAW、Cheops、TRIPS、SCORE、Cell以及FT64等。流处理器已经在数字处理、多媒体以及图像等领域得到了广泛应用。CUDA(ComputeUnifiedDeviceArchitecture)是在GPU上进行计算的新基础架构,它将GPU作为一种真正通用的数据并行计算设备,它可以使用GPU来解决商业、工业以及科学方面的复杂并行计算问题。它是一个...
相关推荐
作者:高德中
分类:高等教育资料
价格:15积分
属性:72 页
大小:2.57MB
格式:DOC
时间:2024-11-19