一句话:提出 GPUHarbor,一个可大规模部署的 GPU 内存一致性测试工具,并在 106 台设备上开展迄今最大规模的弱内存行为研究。
内存一致性规范(MCS)是并发编程框架的关键但难验证部分,现有测试工具不易获取,导致研究设备有限。本文提出 GPUHarbor,一个带 Web 界面和 Android 应用的 GPU MCS 测试工具,用于检查一致性并刻画弱行为。作者通过论坛和社交媒体推广,收集了来自 7 个厂商、106 台设备的测试数据,规模至少是此前弱内存行为研究的 10 倍,并在嵌入式 Arm 和 NVIDIA 设备上发现两个新 bug。数据分析还揭示并量化了不同平台的弱行为发生率,例如 AMD GPU 平均比 Intel 多 25.3 倍,并讨论了这些结果对性能关键设备软件开发的影响。
Memory consistency specifications (MCSs) are a difficult, yet critical, part of a concurrent programming framework. Existing MCS testing tools are not immediately accessible, and thus, have only been applied to a limited number of devices. However, in the post-Dennard scaling landscape, there has been an explosion of new architectures and frameworks. Studying the shared memory behaviors of these new platforms is important to understand their behavior and ensure conformance to framework specifications. In this paper, we present GPUHarbor, a widescale GPU MCS testing tool with a web interface and an Android app. Using GPUHarbor, we deployed a testing campaign that checks conformance and characterizes weak behaviors. We advertised GPUHarbor on forums and social media, allowing us to collect testing data from 106 devices, spanning seven vendors. In terms of devices tested, this constitutes the largest study on weak memory behaviors by at least 10×, and our conformance tests identified two new bugs on embedded Arm and NVIDIA devices. Analyzing our characterization data yields many insights, including quantifying and comparing weak behavior occurrence rates (e.g., AMD GPUs show 25.3× more weak behaviors on average than Intel). We conclude with a discussion of the impact our results have on software development for these performance-critical devices.
@inproceedings{LevineCM0023,
title = {GPUHarbor: Testing GPU Memory Consistency at Large (Experience Paper)},
author = {Reese Levine and Mingun Cho and Devon McKee and Andrew Quinn and Tyler Sorensen},
booktitle = {ISSTA},
year = {2023},
doi = {10.1145/3597926.3598095}
}