GPU操作手册范本Word下载.docx
《GPU操作手册范本Word下载.docx》由会员分享,可在线阅读,更多相关《GPU操作手册范本Word下载.docx(55页珍藏版)》请在冰点文库上搜索。
![GPU操作手册范本Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/d3cbae00-6b35-40cb-b46c-39efda6aa7cf/d3cbae00-6b35-40cb-b46c-39efda6aa7cf1.gif)
使用普通千兆交换机在12节点机器上用10小时可完成2500GB数据向各节点的分发工作,并且具有使用的GPU数越多分发数据速度越快的特点;
4、系统可扩展性强。
运算速度与使用的GPU数呈正比关系;
5、实现GPU“热拔插”。
各个GPU完全独立运行,如个别节点出现故障,不影响其它节点运行;
6、作业界面友好、简单易操作;
7、成本低廉。
不足常规并行机的10%;
8、节电95%以上、占地空间省90%以上。
本手册的重点是介绍GPU\CPU协同并行计算非对称走时叠前时间偏移处理系统的应用过程及作业的编制、修改及运行的方法。
为了使用户对GPU\CPU协同并行计算非对称走时叠前时间偏移有更全面的了解,手册的第一部分简要介绍了GPU\CPU协同并行计算的相关知识。
本手册由钦、国峰、佟小龙、博、管忠、邹德志等人编写,希望用户在使用中,多提宝贵意见,以便使软件更加完善。
2.系统综述
2.1GPU\CPU协同并行计算机的构成
1)GPU的发展历程
GPU是英文GraphicProcessingUnit的缩写,即图形处理器。
早期的GPU是单纯作图形处理,
现在的GPU应该称为“大规模多线程并行处理器”或叫“GPU计算机”,GPU可以看成是“GeneralProcessingUnit”通用处理器的缩写。
某些专用于高性能计算的GPU已经不做显卡用了,外接屏幕的接口有的也没有了,可以说真正成为了高性能通用处理器。
2)GPU与传统CPU的主要区别
GPU与CPU的设计初衷不一样
我们可做如下形象比喻(如图2所示):
CPU的设计思想是一件事只由一个人去做,尽快完成后再去做另外的事情――串行做事;
GPU的设计思想是一件事情同时让尽可能多的人去做――并行做事。
图2CPU与GPU设计思想示意图
GPU和CPU各有优缺点,CPU适合串行运算,而GPU适合并行运算。
GPU与CPU的处理器微结构存在很大的差别
CPU量的晶体管用作高速缓存(cache)、逻辑控制单元(Control),只有少量的用作计算单元(Alu)。
而GPU则把更多的晶体管用作了计算单元,只有少量晶体管用作了高速缓存(Cache)和逻辑控制单元,这使得GPU比CPU更适合完成密集计算任务(图3)。
图3GPU与CPU的微结构示意图(GPU将更多的晶体管用于数据处理)
3)GPU的优势
作为计算机的核心,CPU在逻辑判断、非线性寻址等复杂的逻辑运作中,有着非常高的效率,但是由于传统兼容包袱的沉重(如:
最快的x86cpu也必须兼容26年前的8086cpu),竞争的不充分等多方面因素,发展速度相对缓慢。
GPU的优势在于天生的并行计算的体系机构。
目前的8800GTXGPU中,有128个StreamMultiProcessor(流处理器,就是上图的ALU,可理解为运算单元,也就是通常说的核)。
可同时并发上万个线程。
而最新的GTX280GPU里面,SM的数量达到了240个,在高性能计算领域有着无以伦比的优势。
在过去的五年,GPU有了突飞猛进的发展。
目前,GPU已经达到240核,14亿晶体管,浮点运算能力可达到1TFLOPS(万亿次/每秒),而四核CPU的浮点运算能力仅为0.07TFLOPS(700亿次/每秒)。
TelsaS10701U机架服务器,共有4个GPU卡,共960个核,性能达到4万亿次每秒,功耗只有700瓦。
而如果要达到相同计算性能,需要CPU服务器集群才能实现,而功耗可能达到几万瓦。
2.2协同并行计算(CPPC)的概念
简单的说,CPU是串行计算的领先者,而GPU是并行计算的领先者。
CPU在操作系统、系统软件、应用程序、通用计算、系统控制等领域功能强大;
而GPU在密集计算方面则独树一帜。
协同并行计算(CPPC)就是将GPU和CPU两种不同架构的处理器结合在一起,组成硬件上的协同并行运行模式,同时在应用程序编写上实现GPU和CPU的协同配合的协同并行计算(CPPC)。
具体说,协同并行计算(CPPC)机就是由CPU负责执行顺序型的代码,如操作系统、数据库等应用,而由GPU来负责密集的并行计算。
因此,在高性能计算领域,可以把CPU服务器和GPU服务器结合起来(图4),构成一个混合型的集群,各司其职,大大提高集群系统的总体计算效能。
图4协同并行计算(CPPC)示意图-不同结构处理器共同计算的模式
2.3软件开发平台
协同并行计算(CPPC)作为高性能计算的一个发展方向,一直受到人们广泛关注。
目前已有的开发平台包括Stanford大学的brookGPU,PeakStream公司推出的开发包,以及Nvidia公司的CUDA。
几个系统中,brookGPU是Stanford大学的一个开源项目,也是世界上最早的利用GPU进行通用计算的开发包。
PeakStream目前已经被google收购,其产品目前只支持Ati公司的显卡。
Nvidia从进军高性能计算领域以来,除了cuda的开发包,硬件产品已经更新三代,从G80到G90直到今天的GTX280系列。
晶体管数量达到14亿个,开发工具也从最早的0.8版本到今天2.0,为多线程编程。
并提供全套免费的开发工具,其中除了编译器(nvcc)、系统函数库(cudafft、cudablas)之外,有专门的剖析工具(cudavisualprofiler)帮助进行分析函数性能,可在仿真模式下提供调试,支持C/C++开发环境。
CUDA的优势是这是一个完全针对GPU计算所开发的C语言开发环境,它与NVIDIA公司的GPU高度协同,因此应用程序通过适当的优化可以获得极高的效率。
同时,标准的C语言开发环境也可以使得开发者非常容易掌握,有经验的编程人员通过很短时间的熟悉就可以开发出高质量的GPU计算程序。
2.4CUDA介绍
CUDA(computeunifieddevicearchitecture,统一计算设备架构)是NVIDIA公司在2007年推出的针对通用计算GPU的一个全新构想,使专注于图像处理的GPU超高计算性能在数据处理和科学计算等通用计算领域发挥优势。
CUDA包括全新的硬件设计和全新的软件开发环境,抛开以前的图形API方式而直接将GPU作为计算单元来管理和进行并行计算。
CUDA编程语言是针对通用计算GPU的C语言环境,应用CUDA编程可方便地实现GPU通用计算。
目前CUDA提供的功能包括:
在GPU上提供标准C语言编程;
为在支持CUDA的NVIDIAGPU的并行计算提供统一的软硬件解决方案;
兼容从低功耗的笔记本用GPU到高性能多GPU系统;
支持CUDA的GPU能进行并行数据缓存和线程执行管理;
标准FFT和BLAS数值程序库;
针对计算的专用CUDA驱动;
经过优化的,从GPU到支持CUDA的GPU的直接上传,下载通道;
CUDA驱动与OPENGL和DIRECTX等图形驱动程序兼容;
支持LINUX32位/64位、windowsXP32位/64位、windowsvista以及MACOS等操作系统;
CUDA提供对驱动程序的直接访问,以及汇编语言的方位。
CUDA通过标准的C语言将GPU的众多计算特性结合在一起,由线程来创建应用程序,这类似于CPU上的多线程程序。
但与仅能有很少线程同时工作地多核CPU比较,GPU可以同时执行成千上万个线程。
从CUDA体系结构的组成来看,包含了三个部分:
开发库、存管理、设备访问和执行调度等函数。
基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的主机代码,另一种是运行在GPU上的设备代码。
不同类型的代码由于其运行的物理位置不同,能够访问到得资源也不同。
驱动部分基本上可以理解为是支持CUDA的GPU设备抽象层,提供硬件设备的抽象访问接口。
通过CUDA编程时,将GPU看做可以并行执行非常多个线程的计算设备。
GPU作为CPU的协处理器来运作:
在主机上运行应用程序中数据并行的、计算密集的部分加载到此设备上。
更准确的说,对不同数据执行相同操作的应用程序部分可以独立房在此设备上作为由许多不同线程执行的函数。
而要达到这种效果,可以将这样一个函数在设备的指令集中编译,并将得到的程序加载到设备商。
主机和设备都保留自己的DRAM,分别称为主机存和设备存。
用户可以通过优化的API调用将数据从一个DRAM复制到其他DRAM中,而优化的API调用使用了设备的高性能直接存储器存取引擎。
3安装与启动
3.1运行环境
CPU/GPU协同并行计算叠前时间偏移处理系统的最低配置要求:
CPU:
1)CPU环境要能够安装Linux操作系统;
2)有足够的数据存储空间;
3)有C语言的运行环境。
GPU:
1)配有Nvidia的通用处理器(GPU);
2)GPU能够被协同工作的CPU所支持;
3)能够支持CUDA(统一计算设备架构平台)。
目前支持CUDA的GPU(CUDA-enabledGPU)包含GeForce、Quadro和Tesla三个系列。
下表列出了大部分支持CUDA的设备及其多处理器的数量和计算能力:
表格1:
支持CUDA的设备及其多处理器的数量和计算能力
[1]Nvida通用处理器的型号
[1]多处理器数量
[1]计算能力
[2]GeForceGTX280
[2]30
[2]1.3
[3]GeForceGTX260
[3]24
[3]1.3
[4]GeForce9800GX2
[4]2×
16
[4]1.1
[5]GeForce9800GTX
[5]16
[5]1.1
[6]GeForce8800Ultra,8800GTX
[6]16
[6]1.0
[7]GeForce8800GT
[7]14
[7]1.1
[8]GeForce9600GSO,8800GS,8800MGTX
[8]12
[8]1.1
[9]GeForce8800GTS
[9]12
[9]1.0
[10]GeForce9600GT,8800MGTS
[10]8
[10]1.1
[11]GeForce9500GT,8600GTS,8600GT,
[12]8700MGT,8600MGT,8600MGS
[11]4
[11]1.1
[13]GeForce8500GT,8400GS,8400MGT,
[14]8400MGS
[12]2
[12]1.1
[15]GeForce8400MG
[13]1
[13]1.1
[16]TeslaS1070
[14]4×
30
[14]1.3
[17]TeslaC1060
[15]30
[15]1.3
[18]TeslaS870
[16]4×
[16]1.0
[19]TeslaD870
[17]2×
[17]1.0
[20]TeslaC870
[18]16
[18]1.0
[21]QuadroPlex1000ModelS4
[19]4×
[19]1.0
[22]QuadroPlex1000ModelIV
[20]2×
[20]1.0
[23]QuadroFX5600
[21]16
[21]1.0
[24]QuadroFX3700
[22]14
[22]1.1
[25]QuadroFX3600M
[23]12
[23]1.1
[26]QuadroFX4600
[24]12
[24]1.0
[27]QuadroFX1700,FX570,NVS320M,FX1600M,
[28]FX570M
[25]4
[25]1.1
[29]QuadroFX370,NVS290,NVS140M,NVS135M,
[30]FX360M
[26]2
[26]1.1
[31]QuadroNVS130M
[27]1
[27]1.1
通用处理器计算能力1.0的规
⏹每个块的最大线程数为512;
⏹一个线程块的x、y和z维的最大规格分别为512、512和64;
⏹线程块网格各维度的最大规格为65535;
⏹Warp块的大小是32个线程;
⏹每个多处理器的寄存器数量是8192;
⏹每个多处理器可用的共享存储器数量是16KB,组织为16个存储体固定存储器的总量是64KB;
⏹固定存储器的缓存工作区是每个多处理器8KB;
⏹纹理存储器的缓存工作区介于每个多处理器6到8KB之间;
⏹每个多处理器的最大活动块数是8;
⏹每个多处理器的最大活动warp块数是24;
⏹每个多处理器的最大活动线程数是768;
⏹对于绑定到一维CUDA数组的纹理参考,最大宽度为213;
⏹对于绑定到二维CUDA数组的纹理参考,最大宽度为216,最大高度为215;
⏹对于绑定到三维CUDA数组的纹理参考,最大宽度为211,最大高度为211,最大深度为211;
⏹对于绑定到线性存储器的纹理参考,最大宽度为227;
⏹核大小限制为200万PTX指令;
⏹每个多处理器都由8个处理器组成,因此一个多处理器能够在4个时钟周期处理一个warp块的32个线程。
通用处理器计算能力1.1的规
⏹支持在全局存储器的32位字上操作的原子函数(请参见第4.4.4节)。
通用处理器计算能力1.2的规
支持在共享存储器中操作的原子函数以及在全局存储器的64位字上操作的原子函数;
⏹支持warpvote函数(请参见第4.4.5节);
⏹每个多处理器的寄存器数量是16384;
⏹每个多处理器的最大活动warp块数量是32;
⏹每个多处理器的最大活动线程数是1024。
通用处理器计算能力1.3的规
⏹支持双精度浮点运算。
推荐配置:
4个核;
存大于16G
TeslaT1060,TeslaS1070
3.2系统安装
系统由公司统一安装。
3.3交互作业界面的启动
程序配有交互界面,当安装相应程序后,在命令行输入%pstmv2,便可出现软件的交互界面。
主界面下有三个软件运行的分界面,分别是数据分发界面,作业组织及运行界面,数据合并界面,三部分将分别在后边相关环节详细介绍。
主界面如图6。
4使用说明
4.1工区的建立
软件在执行时原则上并不需要建立工区,作业参数(如输入数据等)都按绝对路径输入。
但是,建议用户在使用时建立作业运行目录,将不同类型文件按类分别存入不同的目录,便于管理。
该系统的磁盘分配及用途如下:
1)《存储盘》:
是由16块1TB的盘组成的rida5盘,存储空间14TB。
也可以另行指定或其他存储设备;
2)《工作盘》:
各节点单独安装使用,是由2块1TB盘组成的rida0盘,临时用于存储各节点分发的数据,此盘仅用于短时间的数据存储。
通常目录名称为:
/scr。
也可以由用户选用与项目相关的容易记忆的目录名;
3)《系统盘》:
各节点单独安装使用,用于各节点的系统软件、应用软件等重要文件的存储。
由1块500GB盘构成。
用户通常不使用此盘。
建议在《存储盘》上按以下容建立工区的目录:
第一级目录:
项目名,如:
daqing
第二级目录:
1)存放输入数据的目录,如:
input
2)存放作业文件的目录,如:
job
3)存放作业运行过程监测文件的目录,如:
list
4)存放偏移结果的目录,如:
output
5)存放网格文件、速度库文件、定义使用GPU文件的目录,如:
geo
示意图如下:
图5:
目录结构图
图6软件主界面
4.2数据格式说明
有下列四类数据和文件涉及格式问题:
A、输入的叠前地震数据
B、输出的结果数据
C、偏移速度文件
D、观测系统网格文件。
1)输入叠前地震数据的格式:
叠前地震数据要经过前期处理的数据体。
可以是炮集、CMP道集等类型。
目前支持如下格式:
(1)grisysfmt4(IEEE32-bit)格式。
要有炮点,检波点坐标,CMP号,线号,偏移距信息。
(2)CGGfmt4(IEEE32-bit)格式。
(3)SEGY格式。
(4)OMEGA183格式。
2)输出数据的格式:
程序可输出叠加剖面和CRP道集。
但是本软件在运行过程中采用分数据计算的策略,因此一般输出为与GPU卡数一样或为其整数倍的偏移距个数的道集。
程序可以输出多种格式的数据,输出数据格式与输入数据格式有关,相关要求见后续说明:
带有炮点,检波点坐标,CMP号,线号,偏移距信息。
对输入数据建立索引文件
输入数据可以选择以下四种数据格式:
1、CGG-fmt4-IEEE32bit
2、GRISYS-fmt4-IEEE32bit
3、SEGY
4、OMEGA183
3)PSTM偏移过程数据格式说明
图7偏移过程中数据格式说明
4)偏移速度文件格式:
目前本程序支持两种速度文件格式。
由参数“vflag”控制。
(1)当vflag=1时:
速度文件中只要求提供CMP面元编号(CMP面元编号=(线号-1)×
网格定义的最大CMP号+CMP号),格式如下(数字间有空格即可,不限空格多少):
例1:
每条CMP测线的最大CMP号为1000,输入第2条线的第1个CMP的速度(时间-速度对)如下:
HANDVEL1001
0248130024815002481
130024811500248120002481
300052805000588060006100
(2)当vflag=2时:
速度文件中要提供CMP面元编号(CMP面元编号=(线号-1)×
网格定义的最大CMP号+CMP号)、线号,CMP号,格式如下:
例2:
与例1相同的速度,输入方式如下:
HANDVEL100121
300052805000588060006100
5)观测系统网格格式
程序应用的网格文件就是定义观测系统时应用的网格文件。
实际处理中,观测系统定义时各处理系统的网格文件格式存在差异,但实际容是一致的。
本程序要求的网格文件为12个参数。
其中前6个为整型,后6个为浮点型,表2和图8为各参数的说明和示意图。
网格数据在文本中存放格式如:
1101173710.00.00.012.512.5
表格2:
网格文件说明表
在文件中的次序
表示的容说明
数据类型
备注
1
网格中最小线号
整型
2
网格中最大线号
3
网格线增量
4
网格中最小CMP号
5
网格中最大CMP号
6
网格中CMP号增量
7
原点(1,1)的X坐标
浮点型
8
原点(1,1)的Y坐标
9
面元线间距离在X方向的投影
正负
10
面元线间距离在Y方向的投影
11
面元CMP间距离在X方向的投影
12
面元CMP号间距离在Y方向的投影
图8网格示意图
如图8的网格图,假设面元大小为25X25,原点坐标(X0,Y0)为(0,0),线号和CMP号增量都为1,且二者增量方向均为向坐标增加方向,倾角为30o,则本软件网格描叙为:
1411410021.6512.5-12.521.65
说明:
不同处理系统间网格定义方式可经过本软件附带的程序转换到本格式,具体见网格转换说明。
4.3处理操作过程
整个处理过程分为四个步骤:
第一步:
准备数据,建立输入数据体的索引文件
第二步:
分发数据并自动建立新的索引文件
第三步:
组织作业并发送作业
第四步:
自动将各节点完成的结果合并在一起。
操作过程如下:
【1】准备数据,建立输入数据的索引文件:
按照前章节介绍的数据格式要求,准备输入数据、网格文件、速度文件、作业文件的偏移参数。
确认各环节无误。
A.数据是grisys格式、CGG格式或者OMEGA格式时建立索引文件的过程如下:
在存放输