1 / 29

一种支持 CUDA 应用的软件容错系统

2010 硕士开题报告. 一种支持 CUDA 应用的软件容错系统. 报告人:赵 力 导 师:马 捷 2010.09. 摘要. 研究背景 相关研究 研究目标、内容和拟解决的关键技术 拟采取的研究方法、技术路线及可行性分析 预期研究成果及创新之处 已有工作基础 研究计划及预期进展. 研究背景. 曙光 6000 是中科院计算所研发的运算速度达到每秒千万亿次的超级计算机,它采用异构架构,控制芯片为 X86 架构 CPU ,使用了龙芯 3 号 CPU 和 Nvidia GPU 作为加速部件。. 研究背景. 曙光 6000 结构示意图. 研究背景.

urbain
Download Presentation

一种支持 CUDA 应用的软件容错系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2010硕士开题报告 一种支持CUDA应用的软件容错系统 报告人:赵 力 导 师:马 捷 2010.09

  2. 摘要 • 研究背景 • 相关研究 • 研究目标、内容和拟解决的关键技术 • 拟采取的研究方法、技术路线及可行性分析 • 预期研究成果及创新之处 • 已有工作基础 • 研究计划及预期进展

  3. 研究背景 • 曙光6000是中科院计算所研发的运算速度达到每秒千万亿次的超级计算机,它采用异构架构,控制芯片为X86架构CPU,使用了龙芯3号CPU和Nvidia GPU作为加速部件。

  4. 研究背景 • 曙光6000结构示意图

  5. 研究背景 • CPU与GPU芯片的晶体管使用示意图

  6. 研究背景 • GPU VS CPU 计算能力

  7. 研究背景 • GPGPU计算执行过程 • 1. 复制存储器至 GPU • 2. CPU 指令驱动 GPU • 3. GPU 平行处理每一内核 • 4. GPU 将结果传回主存

  8. 研究背景 • 超级计算机为了取得更高的运算速度,提高计算的并行性,必须使用更多的运算部件,特别是异构的运算部件。 • 随着系统的规模不断扩大,计算机发生硬件和软件故障的概率也随之增大。对于异构的计算机系统,由于结构的特殊性,如何提高系统的可靠性更是一个棘手的问题。

  9. 研究背景 超级计算机系统规模比较

  10. 研究背景 • 国防科技大学研制的天河一号是我国首台千万亿次超级计算机系统 ,属于异构计算机系统。 天河一号结构图

  11. 研究背景 • 由于显卡硬件没有相应的容错校验设计,系统软件本身未对GPU进行容错处理,为提高系统的可靠性,天河一号采用的Radeon HD 4870X2加速卡降低了工作频率。

  12. 研究背景 • 检查点技术可以使系统和应用从已发生的故障中恢复,从而减少计算损失,是一种广泛使用的软件容错技术。 • 在目前主流的计算机平台上,已经研发出了许多研究性的检查点容错系统。但是这些检查点系统只能针对传统的计算程序,对于GPU异构计算还缺乏支持。

  13. 相关研究 • Berkeley Lab Checkpoint/Restart (BLCR) 是一个开源的内核级单进程检查点容错软件,对用户进程完全透明,基于Linux系统实现,支持x86、ppc等平台,广泛应用到LAM-MPI,MVAPICH2 等系统中。 • BLCR本身仅支持简单的单进程检查点,不支持通信及GPU加速部件。

  14. 研究目标、内容和拟解决的关键技术 • 研究目标 • 对CUDA应用进行可靠性分析 • 设计针对CUDA应用的容错机制和软件实现 • 提高CUDA应用的可靠性

  15. 研究目标、内容和拟解决的关键技术 • 研究内容 • 研究CUDA异构应用的加速原理和实现机制,分析CUDA代码的编译、执行过程,对CUDA应用进行可靠性分析,找到CUDA应用的脆弱点。 • 在已有的单进程检查点软件BLCR基础上,设计基于检查点技术的异构应用容错框架,实现GPU状态的保存和恢复,最终实现CUDA 应用的检查点的触发、保存、恢复。

  16. 研究目标、内容和拟解决的关键技术 • 研究内容 • 设计实现CUDA应用的GPU代码部分冗余执行,通过比较结果来实现CUDA应用的检错,在出错时重新执行GPU代码部分,提高CUDA应用的可靠性。

  17. 研究目标、内容和拟解决的关键技术 • 拟解决的关键技术 • 设计GPU状态的高效的保存和恢复机制以及状态保存时CPU与GPU的状态同步 • 为CUDA应用提供冗余计算机制,通过比较结果来判断出错并重新计算。

  18. 拟采取的研究方法、技术路线及可行性分析 • 研究方法 • 以现有的检查点工具BLCR为基础,增加GPGPU容错的功能 • 由于CUDA底层硬件的封闭性和复杂性,采用黑箱的处理方法。不直接访问GPU的硬件来获得GPU信息,在主机中实时维护一个GPU的状态信息表,通过访问GPU状态表来得到GPU的状态。

  19. 拟采取的研究方法、技术路线及可行性分析 • 技术路线 • 使用GPGPU进行通用计算时,在程序中必须使用GPGPU的专用API。通过记录应用程序对GPGPU API的使用,就可以实现对GPU状态列表的实时维护。 • 根据GPU的状态信息,将显存中分配的资源(起始地址,长度,内容)写入检查点映像文件中;恢复时依据映像文件中的GPU状态信息,在显存中重新分配资源。

  20. 拟采取的研究方法、技术路线及可行性分析 • 技术路线:GPU状态信息表 • 将GPU状态信息表组织成一个双向链表,每个节点代表一个被分配的GPU显存块,节点中保存显存块的起始地址Address和块的大小Length。CUDA应用分配显存时按照起始地址在表中插入相应的节点,释放显存时删除相应的节点。

  21. 拟采取的研究方法、技术路线及可行性分析 • 技术路线:检查点映像文件 • 原始检查点映像文件 • 包含GPU状态的检查点映像文件

  22. 拟采取的研究方法、技术路线及可行性分析 • 技术路线:软件容错框架执行过程 Wrapper Library CPU端 GPU端

  23. 拟采取的研究方法、技术路线及可行性分析 • 技术路线:CPU与GPU状态同步 • 根据GPGPU加速计算时的工作原理,CPU与GPU通过PCI-E总线传递数据。只有在数据传输时,CPU与GPU的状态同步;当GPU端执行计算时,CPU与GPU异步运行,状态不同步。 • CPU与GPU的状态同步,本质上是CPU端与GPU端显存上的数据的一致性。只要保证检查点中保存的GPU状态数据在检查点后不会被修改,即可保证CPU与GPU的状态一致性。

  24. 拟采取的研究方法、技术路线及可行性分析 • CPU与GPU的数据一致性 • 与检查点时机

  25. 拟采取的研究方法、技术路线及可行性分析 • 技术路线:GPU冗余计算过程 • 对GPU端代码的入口kernel拦截,将每个kernel执行多次并比较结果,若相同则执行正确返回,否则再次执行kernel。

  26. 任务评测 • 1.通过使GPU正常频率运行,降低频率,测量基准测试程序在GPU异构平台上运行的平均运行时间。 • 2.相同平台上,使用本项目实现的容错软件对相同的基准测试程序做检查点,测量其运行时间。 • 3.对比两种运行方法的结果,得出使用进行软件容错的优缺点。

  27. 预期研究成果及创新之处 • 开发出基于BLCR的CR_GPU容错软件,实现对GPU加速部件的检查点容错,通过冗余执行提高GPU计算本身的可靠性。

  28. 已有工作基础 • 完成了BLCR想龙芯平台的移植 • 初步完成了BLCR对GPU的支持

  29. 研究计划及预期进展 • 2010.08-2010.10 • 完成BLCR对GPU的支持 • 2010.11-2010.12 • 增加CUDA的kernel冗余执行 • 2011.01-2011.04 • 整体优化,论文写作

More Related