Hydra: Efficient Detection of Multiple Concurrency Bugs on Fused CPU-GPU Architecture

Zhuofang Dai, Haojun Wang, Weihua Zhang, Haibo Chen, B. Zang
{"title":"Hydra: Efficient Detection of Multiple Concurrency Bugs on Fused CPU-GPU Architecture","authors":"Zhuofang Dai, Haojun Wang, Weihua Zhang, Haibo Chen, B. Zang","doi":"10.1109/ICPP.2014.42","DOIUrl":null,"url":null,"abstract":"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 GPU architecture to simultaneously detect multiple types of concurrency bugs, including data race, atomicity violation and order violation. Hydra instruments and collects program behavior on CPU and transfers the traces to GPU for bug detection through on-chip interconnect. Furthermore, to achieve high speed, Hydra exploits bloom filter to filter out unnecessary detection traces. 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% hardware overhead under a 32-core configuration. Experimental results show that Hydra only introduces about 0.35% overhead on average for detecting one type of bugs and 0.92% overhead for simultaneously detecting multiple bugs, yet with the similar detectability of a heavyweight software bug detector (e.g., Helgrind).","PeriodicalId":441115,"journal":{"name":"2014 43rd International Conference on Parallel Processing","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-10-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2014 43rd International Conference on Parallel Processing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICPP.2014.42","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

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 GPU architecture to simultaneously detect multiple types of concurrency bugs, including data race, atomicity violation and order violation. Hydra instruments and collects program behavior on CPU and transfers the traces to GPU for bug detection through on-chip interconnect. Furthermore, to achieve high speed, Hydra exploits bloom filter to filter out unnecessary detection traces. 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% hardware overhead under a 32-core configuration. Experimental results show that Hydra only introduces about 0.35% overhead on average for detecting one type of bugs and 0.92% overhead for simultaneously detecting multiple bugs, yet with the similar detectability of a heavyweight software bug detector (e.g., Helgrind).
Hydra:在融合的CPU-GPU架构上高效检测多个并发错误
对于程序员来说,检测并发错误(如数据竞争、原子性冲突和顺序冲突)是一项繁琐的任务。由于单个机器中内核数量的增加和线程编程模型的流行,这种情况进一步恶化。不幸的是,许多现有的基于软件的方法通常会导致高运行时开销或准确性损失,而大多数基于硬件的建议通常只关注特定类型的错误,因此无法灵活地检测各种并发错误。在本文中,我们提出了Hydra,一种利用融合GPU架构的大规模并行性和可编程性来同时检测多种类型的并发错误的方法,包括数据竞争、原子性冲突和顺序冲突。Hydra在CPU上测量和收集程序行为,并通过片上互连将跟踪传输到GPU进行错误检测。此外,为了实现高速度,Hydra利用bloom filter过滤掉不必要的检测痕迹。Hydra的硬件复杂性很小,并且不需要更改内部关键路径处理器组件(如缓存及其一致性协议),在32核配置下的硬件开销约为1.1%。实验结果表明,Hydra在检测一种类型的bug时平均只引入了0.35%的开销,同时检测多个bug时平均只引入了0.92%的开销,但却具有与重量级软件bug检测器(例如Helgrind)相似的可检测性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信