首页> 外文期刊>IEEE Transactions on Computers >Hardware Support for Concurrent Detection of Multiple Concurrency Bugs on Fused CPU-GPU Architectures
【24h】

Hardware Support for Concurrent Detection of Multiple Concurrency Bugs on Fused CPU-GPU Architectures

机译:并行检测融合的CPU-GPU架构上的多个并发错误的硬件支持

获取原文
获取原文并翻译 | 示例

摘要

Detecting concurrency bugs, such as data race, atomicity violation and order violation, is a cumbersome task for programmers. This situation is further being exacerbated due to the increasing number of cores in a single machine and the prevalence of threaded programming models. Unfortunately, many existing software-based approaches usually incur high runtime overhead or accuracy loss, while most hardware-based proposals usually focus on a specific type of bugs and thus are inflexible to detect a variety of concurrency bugs. In this paper, we propose Hydra, an approach that leverages massive parallelism and programmability of fused CPU-GPU architectures to simultaneously detect multiple concurrency bugs in threaded software, including data race, atomicity violation and order violation. Hydra extends contemporary fused CPU and GPU by introducing two modules: 1) a trace collecting module (TCM) that instruments and collects program behavior on CPU; 2) a trace preprocessing module (TPM) that processes and then transfers the traces to GPU for bug detection. Furthermore, Hydra exploits three optimizations to improve speed and accuracy, which includes: 1). using the bloom filter to filter out unnecessary traces; 2). avoiding eviction of shared traces; 3). comparing only last-write traces for shared data with the happens-before relation. Hydra incurs small hardware complexity and requires no changes to internal critical-path processor components such as cache and its coherence protocol, and is with about 1.1 percent hardware overhead under a 32-core configuration. Experimental results show that Hydra only introduces about 0.18 percent overhead on average for detecting one type of bugs and 0.46 percent overhead for simultaneously detecting multiple bugs, yet with the similar detectability of a heavyweight software bug detector (e.g., Helgrind).
机译:检测并发错误,例如数据争用,违反原子性和违反顺序,对于程序员来说是一项繁琐的任务。由于单台计算机中内核数量的增加以及线程编程模型的普及,这种情况进一​​步恶化。不幸的是,许多现有的基于软件的方法通常会导致较高的运行时开销或准确性损失,而大多数基于硬件的建议通常只针对特定类型的错误,因此无法灵活地检测各种并发错误。在本文中,我们提出了Hydra,这是一种利用融合的CPU-GPU架构的大规模并行性和可编程性同时检测线程软件中的多个并发错误(包括数据竞争,违反原子性和违反顺序)的方法。 Hydra通过引入两个模块来扩展当代融合的CPU和GPU:1)跟踪收集模块(TCM),用于检测和收集CPU上的程序行为; 2)跟踪预处理模块(TPM),该模块处理然后将跟踪传输到GPU以进行错误检测。此外,Hydra利用三种优化来提高速度和准确性,其中包括:1)。使用布隆过滤器过滤掉不必要的痕迹; 2)。避免驱逐共享痕迹; 3)。仅将共享数据的最后写入迹线与before-before关系进行比较。 Hydra的硬件复杂度很小,不需要更改内部关键路径处理器组件(例如缓存及其一致性协议),并且在32核配置下的硬件开销约为1.1%。实验结果表明,Hydra用于检测一种类型的错误的平均平均开销仅为0.18%,而同时检测多个错误的平均开销仅为0.46%,同时具有重量级软件错误检测器(例如Helgrind)的可检测性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号