paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SuperCollider: Scalable and Effective Data Race Detection for CUDA

SuperCollider:面向 CUDA 的可扩展且有效的数据竞争检测
PLDI 10(PLDI)2026匹配度 3/10 · 论文研究 CUDA 数据竞争动态检测,属于程序分析与并发/GPU 系统方向,和用户画像核心的静态分析、LLM/Agent、浮点程序分析、贝叶斯程序分析均无直接交叉;仅在“程序分析”和“ML 系统底层 GPU 正确性”上略有相邻。引用 2 inbox
Mark Stephenson, Sana Damani, Mohamed Tarek Ibn Ziad, Anis Ladram, Michael Garland
crossref: 2026-09-10

AI 速览

一句话:提出 SuperCollider,一种仅跟踪线程级状态、无内存开销且可扩展的 CUDA 数据竞争检测器。

CUDA 数据竞争源于多线程在缺乏适当同步时错误访问同一内存位置,可导致数据损坏、死锁或活锁,且极难复现。现有动态 GPU 竞争检测器通过忠实跟踪数万线程的内存操作、屏障和内存栅栏来发现隐蔽竞争,但带来高内存开销(如超过 9 倍)和/或运行时开销(如 1000 倍),并容易误报。本文提出 SuperCollider,一种简单且可扩展的 CUDA 竞争检测器:它只跟踪线程级状态,不依赖同步协议,不引入内存占用开销,可无缝处理 shared、global 和 tensor 内存空间,不产生误报,且速度相对较快。虽然 SuperCollider 不能检测所有竞争,但在专业编写的 CUDA 程序中有效捕获了大量数据竞争,包括现有工作无法发现的竞争。该方法在库和 CUDA 基准中暴露了 90 多个数据竞争,甚至在 CUDA 编程指南中发现了一个竞争,并能运行于现代 GPU 工作负载所需的极端规模。

问题
CUDA 程序中的数据竞争难以推理和复现,现有动态竞争检测器在可扩展性、开销和误报方面存在显著不足。
方法
SuperCollider 只跟踪线程级状态,不依赖具体同步协议,支持 shared、global 和 tensor 内存空间,并设计为无内存占用开销且不产生误报。
评估
在专业编写的 CUDA 库和基准上发现 90 多个数据竞争,包括 CUDA 编程指南中的竞争,并证明可在现代 GPU 工作负载所需的极端规模下运行。
原文摘要(Abstract)

Data races, which occur when two or more threads incorrectly access the same memory location without appropriate synchronization, cause CUDA programmers considerable pain. Even experts struggle to reason about extreme parallelism, multiple memory spaces and scopes, and diverse synchronization mechanisms. Races can manifest as subtle data corruption, deadlock, or livelock, which are difficult to reproduce in a debugging environment. To date, there is no generally reliable tool for identifying races in GPU programs at scale. State-of-the-art dynamic GPU race detectors attempt to detect data races by faithfully tracking the memory operations, barriers, and memory fences executed by tens of thousands of threads. While this complexity enables the detection of subtle races, it comes with a cost: existing tools incur substantial memory-footprint overheads (e.g., greater than 9x) and/or runtime overheads (e.g., 1000x), and tend to report false positives. This paper introduces SuperCollider, a simple race detector for CUDA that tracks only thread-level state, is agnostic to synchronization protocols, introduces no memory-footprint overhead, seamlessly handles shared, global, and tensor memory spaces, does not produce false positives, and is relatively fast. Although SuperCollider cannot detect all races, we demonstrate that it effectively catches many data races in professionally authored CUDA programs, including races that prior art cannot. Our approach exposed over 90 data races across libraries and CUDA benchmarks, and even found a race in the CUDA Programming Guide. Unlike prior art, SuperCollider can operate at the extreme scales required by modern GPU workloads.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{StephensonDZLG26,
  title = {SuperCollider: Scalable and Effective Data Race Detection for CUDA},
  author = {Mark Stephenson and Sana Damani and Mohamed Tarek Ibn Ziad and Anis Ladram and Michael Garland},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {PLDI},
  year = {2026},
  doi = {10.1145/3808339}
}