流处理器核心技术的应用研究

VIP免费
3.0 高德中 2024-11-19 5 4 2.57MB 72 页 15积分
侵权投诉
流处理器是近年来出现的一种起源于媒体图形处理的高性能处理器,它一
般采用大规模的运算阵列和多级存储,通过片内并行并结合面向媒体特征的指
令,实现对应用计算的高性能支,其代表芯片包括 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:
1At 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.
2Second 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.
3Third 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.
4Finally 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
绪论
第一章 绪 论
GPUGraphical 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
绪论
Shader。这里计算图形处理器的硬件已经可以进行通用的矩阵计算。此后
1 年SIGGRAPH力于 GPU 通用计算方面的
研究工作。由此他们率先提出了一个为 GPGPU 的概念具有通用计算用
的 GPU。来在 2003 年年一个通用计算程序 BrookGPU 发布
BrookGPU 是坦福大学开发一个出计形处理器
的强大计算性能,然目前 GPU 不能完取代 CPU,个编器为计算
图形处理器模CPU 的一般应用提供了一个运行环BrookGPU 是一个编
和实时系统,可以为GPU 提供单的似 C 的编程环个编程环运行
NVIDIA GeForce FX 5900 Ultra shader 序运算度可20 GFLOPS,相
于 10GHz Pentium 4为 25.3 GB/sec
Pentium 4 只有 5.96 GB/sec。
在 2003 年,要想发图形处理器的运算优只有两种图 API 可
选择:Direct3D OpenGL因此开发人用计算图形处理器强大的计
算能力就需要学习这些图形 API 的用法。是进行计算图形处理器通用计算
开发人一般并不是业的开发人对于他们是一项非
而复杂的技术。需要熟悉 3D 应用程序中的 Shader 单元、材质单元、等等
样的概念通并行处理程序方面的技术例:流处理,内,分
式计算,计算等等。以一个比计算图形处理器和 CPU
差异,在个完不同的处理架构,寻找到相似的、共通的东西
stream 流成会据流,数据流图形处理
中不的流入流出。计算图形处理器使用理来而在普遍的 CPU
编程中,可以将它一个数
kernel 内 stream 流
pixel shader 素着单元。它实现一个型的程序,它
合处理较长较大的数据。
从一个应用程序的内中的流读取执行结果,于在
中进行渲染为处理器中并有渲染这概念因此这可以作是对内存的访
问。控制内存的点,作。可以使用 vertex shader
单元来完为 pixel shader 素着单元在处理,不
Brook程序制定了一基于 C 语言指令——“C with streams
Brook是将 3D API 起来,在应用程序中,分的
图形处理器的并行处理能力,CPU 完繁重的计算任务因此 Brook
个编,以*.br 文C++,并
C++。它不会受3D API ,可以 3D API
DirectX、OpenGL ARB、OpenGL NV3x 还x86。
Brook个技术优,首先是使用 GPU 通用计算不再困难。现代处理
看重并行处理能,它集成多的处理,同
在不断扩展着多线程技术和 SIMD(单指令多数据)处理单元。而目前计算
图形处理器大,更灵活的方向发展计算图形处理器开始支持单
点运算,支持整数运算,很快就支持双精度计算。GPU 将吸纳 CPU
能,为一个数学处理器,而Intel AMD 紧张
方面的研究。
Brook最初及 GPGPU,不3D API GPU 的应Brook
3
流处理器核心技术的应用研究
技术了 GPU 通计算 Brook 仍然有多不更多的完
能使 GPU 通用计算为可以赖的高能计算技术。
目前 Brook发展所的问题不是API,跨平台方面的技术性瓶颈。它面
对了样的 3D API所有的 API 整合到一起,的工作
随着 3D 技术的不发展,真正的问题兼容性。大计算图形
理器制造计算图形处理器中加入自
技术,从而会产生种不同本的程序。公司的 DirectX API
在硬件方面完统一过规游戏而优化的专门驱,可以游戏执行
的更快速,而这些对于 Brook开发兼容性问题就会产生因此要统一
计算图形处理器通用计算的 API 就会困难因此长期以来,Brook 仍然只
是应用在开发人和研究中,得到更广泛的及。
Brook是它并ATI 和
NVIDIA 公司够重公司都关的技术,在新技术背后
更为广的研究前景由此Brook的研究基础上,在美国 Santa Clara
开发团队与 NVIDIA 开发一起,进行了新领域的研究工作
结果是提供一软件和硬件相结合的整体高性能计算解决方案——CUDA。
§1.2 研究现状
高性能计算,数据技术的,数据挖掘用,生物技术的发展
数据的要求高性能计(High Performance Computing,HPC)
通过统可以解决分大型计算的问题,
信开数据的存取结构复杂,数据的
控制点。随着计算处理器,特别是 GPU 计算能力的提高,高性能
计算步进入)领域,进一步探讨并行编程模型并行编程等
软件技术。
计算,的3D游戏
显示提供一个存,所有的图形处理CPU 单图形渲染适
并行处理,执行行工作的 CPU 不能执行项任务。直到 1995 年,PC
领域GPU 3dfx Voodoo 出来以游戏画质才取得了一个飞跃
GPU 的便
运算也越越快
计算ATI
在 2006年9 Radeon X1000 时代,ATI 斯坦福大学相科研合作,
了首使用 GPU 点运算能力图形的软件——Folding @ Home
代 GPU 运算户端
款专门作流处理/的 GPU 并不是 NVIDIA 公司发布的 Tesla
芯片,而是 ATI 公司发布的 FireStream 芯片。在 2006 年,ATI 就发布了基于
R580 核48形 。
Tesla 芯片的 G80 核心成为高性能及并行计算的代因此专门针对并行计算
设计的 Tesla 芯片显示出高性能的计算能力。
4
摘要:

流处理器核心技术的应用研究摘要流处理器是近年来出现的一种起源于媒体图形处理的高性能处理器,它一般采用大规模的运算阵列和多级存储,通过片内并行并结合面向媒体特征的指令,实现对应用计算的高性能支持,其代表芯片包括Imagine、Merrimac、RAW、Cheops、TRIPS、SCORE、Cell以及FT64等。流处理器已经在数字处理、多媒体以及图像等领域得到了广泛应用。CUDA(ComputeUnifiedDeviceArchitecture)是在GPU上进行计算的新基础架构,它将GPU作为一种真正通用的数据并行计算设备,它可以使用GPU来解决商业、工业以及科学方面的复杂并行计算问题。它是一个...

展开>> 收起<<
流处理器核心技术的应用研究.doc

共72页,预览8页

还剩页未读, 继续阅读

作者:高德中 分类:高等教育资料 价格:15积分 属性:72 页 大小:2.57MB 格式:DOC 时间:2024-11-19

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 72
客服
关注