版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实现对电阻抗断层成像程序的加速分析综述目录TOC\o"1-2"\h\u7828实现对电阻抗断层成像程序的加速分析综述 153881.1并行计算模型 1289681.1.1PEIT 2312271.2GPU并行计算 2135661.2.1GPU架构体系 2155361.3CUDA架构 440591.1.1CUDA编程模型 4231111.1.2CUDA执行模型 5264121.1.3CUDA内存模型 61.1并行计算模型并行计算主要用于求解大型线性方程组,其目的是减轻计算机的压力,提高计算机的计算效率.在并行计算中,并行计算机的结构决定了计算模型存取内存的并行计算和顶级并行算法.并行计算机的主要分类主要不同于内存访问模型,微处理器和因特网,可分为机群(Cluster)、对称多处理共享存储并行计算机(SymmetricMultiprocessing,SMP)、星群(Constellation)、大规模并行计算机(MassivelyParallelProcessing,MPP)和分布式共享存储并行计算机(DistributedSharedMemory,DSM)五类REF_Ref1099839773\n\h[10].与超级计算机相比,机群具有投资风险低、成本高、编程方便、可扩展性好的优点;机群广泛应用于多种编程语言中,特别是在分布式的环境中,一个聚类显示出很好的结果,Beowulf是最具代表性的聚类.他的前身是CESDIS(TheCenterofExcellenceinSpaceDataandInformationSciences)组织中Thomas和DonBecker两位用以太网和16个节点构成的计算机集群系统REF_Ref1108159238\n\h[11],其计算能力十分出色.在天气预报、石油勘探等重要科学和工程领域的实际需要中,处理通常需要并行计算模型,而传统的计算方法通常无能为力.并行计算机没有统一的计算模型.但是,几个有价值的参考模型已经在业内被广泛认可,比如PRAM模型、BSP模型、LogP模型等.PRAM假设有对其容量大小没有限制的一个共享存储器,并且有多个功能相同的处理器,在任意时刻处理器可以访问共享存储单元REF_Ref1178664603\n\h[20].根据其是不是可以同时进行内存输出和内存输入,它又分为以下三类:\o"PRAM-EREW(页面不存在)"PRAM-EREW,\o"PRAM-CREW(页面不存在)"PRAM-CREW,\o"PRAM-CRCW(页面不存在)"PRAM-CRCW(其中C代表Concurrent,意为允许并发操作,E-代表Exclusive,意味排斥并发操作).PRAM中的\o"同步时钟(页面不存在)"同步时钟控制着所有的操作,并使这些操作都能同步进行.BSP计算的构成有部件(处理器,它们胜任处理和/或局部内存事务),网络(在成对的部件之间的路由),屏障(允许所有或子集的部件进行同步化的硬件设施).LogP模型充分讨论网络的通信特性,并且放弃关于网络拓扑的讨论,LogP没有超级步骤的概念.,这是因为在LogP中消息是同步的,这意味着一旦消息到达处理器REF_Ref1173202328\n\h[19],就不必等待下一个超级步骤.简单的来说,并行计算模型是利用多台服务器进行同步计算从而提升对程序的求解速率,而对于具体的服务器如何提升自身的计算,还可以借助于GPU,一种高性能的处理器.1.1.1PEIT收到并行计算的启发,MarkusJehl等人的团队,在DUNE求解器,PETSC,ZOLTAN负载均衡等的工具的基础上,由于目前一些较为特殊的电极模型(如人头),其物理结构复杂,使得其正问题中使用MATLAB进行对分解场域模型进行仿真的速率很慢,所以编写了一个可以在并行机器和集群上运行的求解器(PEIT),以减少EIT图像采集过程的计算时间.该求解器被广泛用于500万-1500万个单元网格的正演模拟.计算结果用于实验数据的图像重建REF_Ref1199992686\n\h[25].与MATLAB相比,除了雅可比矩阵的计算外,他们的求解器在每一步上都已经串行地更快了.特别是对于一个典型的步骤繁琐的EIT应用程序.1.2GPU并行计算计算机图形处理单元(GPU)是一种单芯片处理器,集成了“几何变换,照明,三角形构造,剪切和绘图引擎等”功能以及每秒至少10,000,000个多边形的处理能力REF_Ref1181958775\n\h[21].GPU极大地提高了计算机的图形处理速度,提高了图形的质量,并促进了计算机图形学等领域的发展.与中央处理器(CPU)的串行设计模型有所不同,GPU是为图形处理而设计的,它实质上天生具有并行计算的能力.1.2.1GPU架构体系基于GPU的通用计算只是并行计算之一.根据各种架构和实现方法,并行可分为几个层次,最微观的层面是单个核心上的指令级并行(Instruction-LevelParallelism,ILP),依靠处理器上多个算术单元的微并行性来同时执行多个指令,然后是多核并行性,即在单个芯片上整合多个处理器核,并在这些处理器上运行多个进程或线程.它同时使用内核来同时实现线程并行性/进程级并行性(TLP/PLP),处理器级线程或进程并行性;最后是将多台独立的计算机连接到网络,以实现独立的计算机级群集分布式并行性.由于其优异的表现,GPU的架构体系每年都在升级,其创始人曾保证GPU的速度和功能要超越摩尔定律,每6个月就翻一倍.本论文中以当前最新的AmpereA100架构进行分析.Ampere架构的性能大约是上一代Turing的150%.图1.2.1-1GA100GPU全貌2020年5月,NVIDIA在发布会上发布新一代Ampere架构.Ampere架构仍然使用成熟的和多层次的GPC-TPC-S架构.GA100型有八个GPC组,每个GPC组有八个TPC组,而每个TPC组又有8个SM组,主要区别在于L2缓存不再是一个组合组,而是分为两组.二级GA100缓存的容量几乎是上一代GV100的7倍,从6MB到40MB,二级缓存的大功率将在一定程度上降低对视频存储宽度的依赖性.为了避免访问L2远程设备时出现高延迟问题,将此L2缓存分为两个块以确保延时不高.这种高容量的容量和分区结构,L2GA100的缓存带宽增加了2.3倍,并且查询机器的缓存可以确保二级缓存被自动用于提高应用程序的效率.它能加快非结构扫描数据和其他压缩数据,使DRAM的读取带宽为原来的4倍,使L2的读取带宽为原来4倍,使容量为其原来的2倍,对于大型二级缓存,Ampere向开发人员提供常驻数据控制,用户管理高速缓存数据用户手动保存在L2中可以加速访问,并使其持久化.另外在显存带宽上面,A100也进行了升级.它仍然使用了HBM2的显存,一共五个活动堆栈,每个堆栈中有8片8Gb显存,最终组成40GB的显存,运行在1215MHz的频率上,其显存带宽高达1555GB/s,是V100的1.7倍多.另外,它还具备ECC硬件检查功能,但需要占用显存空间.GA100现存有6组HBM2,但只有5组是实际可以使用,另外一组封锁的则是专门为检查功能提供的.另外,GPU内部的所有寄存器L1和L2缓存以及显存均支持ECC功能.1.3CUDA架构在求解逆问题的雅可比矩阵时,求解速度通常与问题的大小成正比.对于较大的矩阵,求解时间很长,打破了计算机硬件的峰值,无法解决,而现实问题中,建模通过有限元法推导后的矩阵一般都会超高阶(如人头,因为结构复杂),在CUDA被NVIDIA公司推出后,GPU再一次被推上新高度.1.1.1CUDA编程模型GPU具有高浮点运算能力、高性能、低延迟和强逻辑运算能力.CUDA编程利用GPU和CPU的特性来一起处理任务.执行过程是在CPU端准备数据,然后将数据传输到GPU端进行并行计算,最后将计算结果返回到中央处理器.CPU与GPU的交互工作可以大幅提高计算性能.如图1.3-1所示为CUDA线程组织结构模型.图1.1.1-1线程组织结构模型图为了知道CUDA程序设计是如何进行线程组织的,需要知道结构模型.从图1.1.1-1中可以看到,CUDA中线分层为三层,分为线程网格(grid)、线程块(block)、线程(thread).一个线程索引(threadIndex)是1~3次元,另外,由多个thread组成的block也可以是1~3次元,就像线程构成线程块一样,线程块也可以由1~3次元线程网格构成REF_Ref1184647895\n\h[22].在执行CUDA应用程序时,整个应用程序的关键是kernel函数.是.以grid形式构成,以block为单位,分别在block之间并行,不同的Block之间的数据共享只能通过整个显示来显示,同一block中的其他thread之间可以通过共享内存进行通信.即,kernel函数.Block之间存在并行计算和thread并行计算两个阶段.另外,为了实现更高的效率,CUDA程序设计时尤其需要注意内存的使用.对于CUDA程序,请尽量使用寄存器将数据声明为本地变量.对于重复使用的数据可以将数据保存在共享内存中.为了尽可能减少对设备内存子系统的访问数,需要以适当的方法进行数据合并访问.1.1.2CUDA执行模型当执行内核函数时,本文将在线程块中运行.当内核网格启动时,线程块将分配给可用的SM.当在SM中保留线程块时,该线程仅驻留在指定的流多处理器上.在并发执行SM中,基于线程束(Warp)执行调度,并且当在SM中调度线程块时,线程块的线程被进一步划分为线程束,一个Warp由32个连续的线程(Thread)组成,线程束中的所有线程执行相同的命令,每个线程处理私有数据REF_Ref1187471471\n\h[23].图3.3.2-1展示了CUDA编程相对应的组件的示意图. 图1.1.2-1CUDA映射过程这里创建的CUDA并行程序使用单指令多线程(SIMT)体系结构管理和执行线程.SIMT体系结构类似于单指令多数据(Single-instructionMulti-data)体系结构,将两条相同的指令广播到多个执行单元以实现并行.然而,在SIMT架构中,同一向量的所有元素必须在同一同步组中一起运行,但是在SIMT架构中,属于同一线程束的多个线程可以独立运行REF_Ref1187471471\n\h[23],因此编程灵活性比单指令多数据架构更大.单个线程束的所有线程在同一程序地址处同时开始运行,但单个线程可能仍具有不同的行为.SIMT体系结构可以确保创建各种并行代码.1.1.3CUDA内存模型并行程序性能往往是由CUDA内存模型所影响的,它是最关键的因素之一.因此,需要合理使用任何类型的存储器来分析所有类型的存储器的特性及其关系并获得更好的程序性能.CUDA架构主要包括寄存器、共享存储器、常数存储器、本地存储器、全局存储器、纹理存储器和其他可编程存储器类型.这些可编程存储器具有不同的作用范围、生命周期和缓存操作.寄存器(Register)和本地内存(LocalMemory)是内核(Kernel)中每个线程的隐私
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 佳洁士超市活动方案策划(3篇)
- 成都端午活动策划方案(3篇)
- 土石移出施工方案(3篇)
- 新年活动策划方案图片(3篇)
- 电气自动化就业方向
- 2026年及未来5年中国水獭养殖行业市场全景评估及投资战略研究报告
- 制剂辅料术语与全球药典术语系统化
- 创新药毒理数据流式分析图表模板
- 创新医疗影像设备的资本竞争
- 化工吸收工安全操作强化考核试卷含答案
- 蒸发浓缩结晶工设备调试考核试卷及答案
- 基于javaweb的图书管理系统
- 运动控制技术课件
- 东芝热泵式滚筒洗衣干衣机DGH-117X6D、DGH-117X6DZ产品培训资料
- 小学一年级文明就餐教育
- 道路工程试验检测课件
- 2023-2024学年高二入学考试物理试题及答案
- 中国参与国际通信海缆建设和保护相关情况报告(2025年)
- 妇女儿童权益保护法律讲座
- 2、CDR量表培训-2013.1课件
- 腰椎间盘突出症课件(共100张课件)
评论
0/150
提交评论