首页> 中文学位 >Hydra:基于CPU-GPU结合体系架构的多种并行错误检测
【6h】

Hydra:基于CPU-GPU结合体系架构的多种并行错误检测

代理获取

目录

图目录

表目录

摘要

1 引言

2 背景知识

2.1 CPU-GPU结合的体系架构

2.1.1 GPU发展概述

2.1.2 GPU体系架构

2.1.3 GPU编程模型

2.1.4 CPU-GPU结合体系架构

2.2 并行错误检测

2.2.1 数据竞争检测

2.2.2 原子性违背检测

2.2.3 顺序违背检测

2.3 并行错误检测算法分析

2.4 本章小结

3 Hydra设计

3.1 Hydra架构概览

3.2 访存收集模块

3.2.1 访存收集与时间戳生成

3.2.2 访存发送

3.3 访存预处理模块

3.3.1 访存接收

3.3.2 访存历史信息维护

3.4 GPU上的并行错误检测

3.5.Hydra的优化策略

3.5.1 计数Bloom过滤器优化策略

3.5.2 避免共享内存替换优化策略

3.5.3 “最后写”优化策略

3.6.Hydra虚拟化设计

3.7.本章小结

4 Hydra评估

4.1.实验环境

4.2.Hydra配置

4.3.错误检测精确性

4.4.性能评估

4.4.1 性能开销评估——单错误检测

4.4.2 性能开销评估——多错误同时检测

4.4.3 支持虚拟化性能开销

4.4.4 优化策略有效性

4.4.4 GPU规模需求与利用率

4.4.5 硬件空间开销与硬件复杂度

4.4.6 带宽开销

4.5.本章小结

5 相关工作

5.1 并行错误检测

5.1.1 软件检测工具

5.1.2 硬件检测架构

5.2 CPU-GPU结合体系架构

5.3 本章小结

6 结语与期望

参考文献

致谢

声明

展开▼

摘要

随着计算机技术的发展,我们已经进入多核时代。为了利用多核设备带来的潜在计算能力,并行程序得到了普遍的应用。然而,并行程序执行的不确定性与并行错误的多样性也使软件调试问题日益严重,使得并行程序错误对软件的可靠性构成了严重的威胁。因此,如何有效地进行并行错误检测成为了亟待解决的问题。然而,现存的软件检测手段往往带来巨大的运行时负载,硬件检测手段则仅专注于特定的并行错误,导致其无法普适于多种多样的并行错误。
  本文基于目前新兴的CPU-GPU结合体系架构,提出了Hydra架构。Hydra利用CPU-GPU架构中GPU的强大的并行计算能力与可编程性,来同时检测主流的多种并行错误,包括数据竞争、原子性违背和顺序违背。Hydra在CPU端收集访存记录,通过片上互联总线将记录发送至GPU端,最后再GPU端进行错误检测。更进一步,为了提升检测速度与检测精确性,Hydra利用了以下三项优化策略:1)利用bloom过滤器过滤不需要进行检测的访存记录;2)识别并避免共享访存记录的替换;3)通过happens-before关系识别同地址访存记录的“最后写”,通过仅仅比较“最后写”优化检测效率。设计复杂度方面,Hydra只需要较平滑的硬件复杂度,并且不需要改变片上关键路径(如高速缓存或者缓存一致性)的逻辑;实验表明,在32核的配置下,Hydra只带来1.1%的额外硬件开销。检测开销方面,实验数据表明,当检测单种并行错误时,Hydra最多只带来0.18%的额外运行开销;当同时检测多种并行错误时,运行开销也只为0.46%。检测精确性方面,Hydra可以做到与当前主流的软件检测工具(如Helgrind)相同的检测精确性。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号