Sound and Partially-Complete Static Analysis of Data-Races in GPU Programs

GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need a deep understanding of the GPU programming model to avoid subtle data-races in their codes. Static verification that is sound and incomplet...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 8; číslo OOPSLA2; s. 2434 - 2461
Hlavní autoři: Liew, Dennis, Cogumbreiro, Tiago, Lange, Julien
Médium: Journal Article
Jazyk:angličtina
Vydáno: New York, NY, USA ACM 08.10.2024
Témata:
ISSN:2475-1421, 2475-1421
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need a deep understanding of the GPU programming model to avoid subtle data-races in their codes. Static verification that is sound and incomplete can guarantee data-race freedom, but the alarms it raises may be spurious and need to be validated. In this paper, we establish a True Positive Theorem for a static data-race detector for GPU programs, i.e., a result that identifies a class of programs for which our technique only raises true alarms. Our work builds on the formalism of memory access protocols, that models the concurrency operations of CUDA programs. The crux of our approach is an approximation analysis that can correctly identify true alarms, and pinpoint the conditions that make an alarm imprecise. Our approximation analysis detects when the reported locations are reachable (control independence, or CI), and when the reported locations are precise (data independence, or DI), as well identify inexact values in an alarm. In addition to a True Positive result for programs that are CI and DI, we establish the root causes of spurious alarms depending on whether CI or DI are present. We apply our theory to introduce FaialAA, the first sound and partially complete data-race detector. We evaluate FaialAA in three experiments. First, in a comparative study with the state-of-the-art tools, we show that FaialAA confirms more DRF programs than others while emitting 1.9× fewer potential alarms. Importantly, the approximation analysis of FaialAA detects 10 undocumented data-races. Second, in an experiment studying 6 commits of data-race fixes in open source projects OpenMM and Nvidia’s MegaTron, FaialAA confirmed the buggy and fixed versions of 5 commits, while others were only able to confirm 2. Third, we show that 59.5% of 2,770 programs are CI and DI, quantifying when the approximation analysis of FaialAA is complete. This paper is accompanied by the mechanized proofs of the theoretical results presented therein and a tool (FaialAA) implementing of our theory.
AbstractList GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need a deep understanding of the GPU programming model to avoid subtle data-races in their codes. Static verification that is sound and incomplete can guarantee data-race freedom, but the alarms it raises may be spurious and need to be validated. In this paper, we establish a True Positive Theorem for a static data-race detector for GPU programs, i.e., a result that identifies a class of programs for which our technique only raises true alarms. Our work builds on the formalism of memory access protocols, that models the concurrency operations of CUDA programs. The crux of our approach is an approximation analysis that can correctly identify true alarms, and pinpoint the conditions that make an alarm imprecise. Our approximation analysis detects when the reported locations are reachable (control independence, or CI), and when the reported locations are precise (data independence, or DI), as well identify inexact values in an alarm. In addition to a True Positive result for programs that are CI and DI, we establish the root causes of spurious alarms depending on whether CI or DI are present. We apply our theory to introduce FaialAA, the first sound and partially complete data-race detector. We evaluate FaialAA in three experiments. First, in a comparative study with the state-of-the-art tools, we show that FaialAA confirms more DRF programs than others while emitting 1.9× fewer potential alarms. Importantly, the approximation analysis of FaialAA detects 10 undocumented data-races. Second, in an experiment studying 6 commits of data-race fixes in open source projects OpenMM and Nvidia’s MegaTron, FaialAA confirmed the buggy and fixed versions of 5 commits, while others were only able to confirm 2. Third, we show that 59.5% of 2,770 programs are CI and DI, quantifying when the approximation analysis of FaialAA is complete. This paper is accompanied by the mechanized proofs of the theoretical results presented therein and a tool (FaialAA) implementing of our theory.
GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need a deep understanding of the GPU programming model to avoid subtle data-races in their codes. Static verification that is sound and incomplete can guarantee data-race freedom, but the alarms it raises may be spurious and need to be validated. In this paper, we establish a True Positive Theorem for a static data-race detector for GPU programs, i.e., a result that identifies a class of programs for which our technique only raises true alarms. Our work builds on the formalism of memory access protocols, that models the concurrency operations of CUDA programs. The crux of our approach is an approximation analysis that can correctly identify true alarms, and pinpoint the conditions that make an alarm imprecise. Our approximation analysis detects when the reported locations are reachable (control independence, or CI), and when the reported locations are precise (data independence, or DI), as well identify inexact values in an alarm. In addition to a True Positive result for programs that are CI and DI, we establish the root causes of spurious alarms depending on whether CI or DI are present. We apply our theory to introduce FaialAA, the first sound and partially complete data-race detector. We evaluate FaialAA in three experiments. First, in a comparative study with the state-of-the-art tools, we show that FaialAA confirms more DRF programs than others while emitting 1.9× fewer potential alarms. Importantly, the approximation analysis of FaialAA detects 10 undocumented data-races. Second, in an experiment studying 6 commits of data-race fixes in open source projects OpenMM and Nvidia’s MegaTron, FaialAA confirmed the buggy and fixed versions of 5 commits, while others were only able to confirm 2. Third, we show that 59.5% of 2,770 programs are CI and DI, quantifying when the approximation analysis of FaialAA is complete. This paper is accompanied by the mechanized proofs of the theoretical results presented therein and a tool (FaialAA) implementing of our theory.
ArticleNumber 357
Author Cogumbreiro, Tiago
Liew, Dennis
Lange, Julien
Author_xml – sequence: 1
  givenname: Dennis
  orcidid: 0000-0003-1002-5677
  surname: Liew
  fullname: Liew, Dennis
  email: zhenrong.liew001@umb.edu
  organization: University of Massachusetts Boston, Boston, USA
– sequence: 2
  givenname: Tiago
  orcidid: 0000-0002-3209-9258
  surname: Cogumbreiro
  fullname: Cogumbreiro, Tiago
  email: tiago.cogumbreiro@umb.edu
  organization: University of Massachusetts Boston, Boston, USA
– sequence: 3
  givenname: Julien
  orcidid: 0000-0001-9697-1378
  surname: Lange
  fullname: Lange, Julien
  email: julien.lange@rhul.ac.uk
  organization: Royal Holloway, University of London, Egham, United Kingdom
BookMark eNptkMFLwzAYxYNMcM7h3VNunqJJ2iTNcVSdysDi3Ll87RKJtM1I4mH_vRubIuLh8T14Px587xyNBj8YhC4ZvWEsF7eZLLTS6gSNea4EYTlno1_-DE1j_KCUMp3lRabH6HnpP4c1hp0qCMlB121J6ftNZ5LBywTJtXg2QLeNLmJv8R0kIK_QmojdgOfVClfBvwfo4wU6tdBFMz3eCVo93L-Vj2TxMn8qZwsCXKlEJKdSW6WMFE1hjQKd2UJYYakGTqkUihV2TW3DuJFZayQ0JqeMMa2pklxmE3R96G2DjzEYW2-C6yFsa0br_Qr1cYUdSf6Qrdt_5IcUwHX_8FcHHtr-p_Q7_AKJfWXS
CitedBy_id crossref_primary_10_1007_s11227_025_07237_3
Cites_doi 10.1007/s10703-021-00362-8
10.1109/ISCA45697.2020.00088
10.1134/S0361768818060051
10.1145/1882291.1882320
10.1007/978-3-642-35873-9_3
10.1109/ICPP.2013.15
10.1145/1941553.1941574
10.1109/DSN.2018.00033
10.1145/3498721
10.1109/TSE.2013.2297120
10.1145/1468075.1468121
10.1145/3460319.3464832
10.1109/CGO.2004.1281665
10.1145/3046678
10.23919/DATE.2019.8715160
10.1109/ASEW.2019.00023
10.1093/bib
10.1371/journal.pcbi.1005659
10.1007/978-3-319-03542-0_5
10.1007/s10817-017-9428-2
10.1145/2743017
10.1007/978-3-642-34188-5_18
10.1109/APSEC48747.2019.00019
10.1145/2491411.2494569
10.1109/ICST.2017.53
10.3978/j.issn.2223-4292.2012.08.02
10.1145/3062341.3062342
10.1007/s10703-023-00415-0
10.1109/SC.2014.20
10.1145/3192366.3192368
10.1145/3434306
10.1109/TPDS.2013.44
10.1016/j.scico.2012.07.004
10.1007/3-540-45139-0_7
10.1109/SNPD.2016.7515929
10.1109/ISPASS.2009.4919648
10.1145/2370036.2145844
10.1007/978-3-319-12736-1_11
10.1007/978-3-319-63387-9_25
10.1109/ICSE.2013.6606613
10.1109/ASE.2008.29
10.1007/978-3-030-81685-8_19
10.1109/ARES.2013.59
10.1109/ISSRE.2015.7381820
10.1007/978-3-319-52709-3_10
10.1016/j.jmgm.2010.06.010
10.1145/3377811.3380358
10.1016/j.scico.2014.03.013
10.1109/ICSE-Companion.2019.00026
10.1145/3192366.3192417
10.1145/2384616.2384625
10.1145/3290370
10.1134/S036176881805002X
10.1109/SCAM.2008.24
10.1145/3188720
10.1145/2254064.2254110
10.1007/978-3-319-08867-9_15
10.1007/978-3-540-78800-3_24
10.1145/2664666.2664673
10.4204/EPTCS.356.4
10.1007/s10462-018-09679-z
10.1007/978-3-319-19249-9_35
10.1145/2771284.2771285
10.1145/3462673
10.1109/SCAM51674.2020.00035
10.1016/j.infsof.2009.10.004
10.5281/zenodo.12666682
10.1145/2676726.2676987
10.1007/11547662_21
10.1109/IPDPSW.2012.302
10.1145/3361870
10.1145/3001834
10.1145/2442516.2442520
10.1145/2851613.2851830
10.1145/503272.503279
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3689797
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 2461
ExternalDocumentID 10_1145_3689797
3689797
GrantInformation_xml – fundername: National Science Foundation
  grantid: 2204986
  funderid: https:\/\/doi.org\/10.13039\/100000001
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a277t-62069f77e65b8fe7a93f85f5f09a20065718fd0fb12e63ce6abe4011199076263
ISICitedReferencesCount 2
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001358441400002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Sat Nov 29 07:48:01 EST 2025
Tue Nov 18 21:33:42 EST 2025
Fri Feb 21 01:26:37 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue OOPSLA2
Keywords static analysis
data-race detection
true positives
GPU programming
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-62069f77e65b8fe7a93f85f5f09a20065718fd0fb12e63ce6abe4011199076263
ORCID 0000-0001-9697-1378
0000-0002-3209-9258
0000-0003-1002-5677
OpenAccessLink https://dl.acm.org/doi/10.1145/3689797
PageCount 28
ParticipantIDs crossref_primary_10_1145_3689797
crossref_citationtrail_10_1145_3689797
acm_primary_3689797
PublicationCentury 2000
PublicationDate 2024-10-08
PublicationDateYYYYMMDD 2024-10-08
PublicationDate_xml – month: 10
  year: 2024
  text: 2024-10-08
  day: 08
PublicationDecade 2020
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2024
Publisher ACM
Publisher_xml – name: ACM
References Kensuke Kojima and Atsushi Igarashi. 2013. A Hoare Logic for SIMT Programs. In Proceedings of APLAS. 8301, Springer, Berlin, Heidelberg. 58–73. isbn:978-3-319-03541-3 https://doi.org/10.1007/978-3-319-03542-0_5 10.1007/978-3-319-03542-0_5
Dennis Liew, Tiago Cogumbreiro, and Julien Lange. 2024. Sound and partially-complete static analysis of data-races in GPU programs (Artifact). https://doi.org/10.5281/zenodo.12666682 10.5281/zenodo.12666682
Thu-Trang Nguyen, Toshiaki Aoki, Takashi Tomita, and Iori Yamada. 2019. Multiple Program Analysis Techniques Enable Precise Check for SEI CERT C Coding Standard. In Proceedings of APSEC. IEEE, Piscataway, NJ, USA. 70–77. https://doi.org/10.1109/APSEC48747.2019.00019 10.1109/APSEC48747.2019.00019
A. Yu. Gerasimov, L. V. Kruglov, M. K. Ermakov, and S. P. Vartanov. 2018. An Approach to Reachability Determination for Static Analysis Defects with the Help of Dynamic Symbolic Execution. Programming Computer Software, 44, 6 (2018), 467–475. issn:0361-7688 https://doi.org/10.1134/S0361768818060051 10.1134/S0361768818060051
Bharti Chimdyalwar, Priyanka Darke, Anooj Chavda, Sagar Vaghani, and Avriti Chauhan. 2015. Eliminating Static Analysis False Positives Using Loop Abstraction and Bounded Model Checking. In Proceedings FM. Springer, Cham. 573–576. isbn:978-3-319-19249-9 https://doi.org/10.1007/978-3-319-19249-9_35 10.1007/978-3-319-19249-9_35
H. Post, C. Sinz, A. Kaiser, and T. Gorges. 2008. Reducing False Positives by Combining Abstract Interpretation and Bounded Model Checking. In Proceedings of ASE. IEEE, Piscataway, NJ, USA. 188–197. isbn:9781424421879 https://doi.org/10.1109/ASE.2008.29 10.1109/ASE.2008.29
Rajeev Alur, Joseph Devietti, Omar S. Navarro Leija, and Nimit Singhania. 2022. Static detection of uncoalesced accesses in GPU programs. Formal Methods in System Design, 60 (2022), 1–32. issn:1572-8102 https://doi.org/10.1007/s10703-021-00362-8 10.1007/s10703-021-00362-8
Prasanth Chatarasi, Jun Shirako, Martin Kong, and Vivek Sarkar. 2017. An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection. In Proceedings of LCPC’16. Springer, Berlin, Heidelberg. 106–120. isbn:978-3-319-52709-3 https://doi.org/10.1007/978-3-319-52709-3_10 10.1007/978-3-319-52709-3_10
Xavier Rival. 2005. Understanding the Origin of Alarms in ASTRÉE. In Proceedings of SAS. Springer, Berlin, Heidelberg. 303–319. isbn:3540285849 https://doi.org/10.1007/11547662_21 10.1007/11547662_21
Anup Holey, Vineeth Mekkat, and Antonia Zhai. 2013. HAccRG: Hardware-Accelerated Data Race Detection in GPUs. In Proceedings of ICPP. IEEE, Piscataway, NJ, USA. 60–69. issn:0190-3918 https://doi.org/10.1109/ICPP.2013.15 10.1109/ICPP.2013.15
Ariel Eizenberg, Yuanfeng Peng, Toma Pigli, William Mansky, and Joseph Devietti. 2017. BARRACUDA: Binary-level Analysis of Runtime RAces in CUDA Programs. In Proceedings of PLDI. ACM, New York, NY, USA. 126–140. isbn:978-1-4503-4988-8 https://doi.org/10.1145/3062341.3062342 10.1145/3062341.3062342
Stefan Blom, Marieke Huisman, and Matej Mihelčić. 2014. Specification and Verification of GPGPU Programs. Science of Computer Programming, 95, P3 (2014), 376–388. issn:0167-6423 https://doi.org/10.1016/j.scico.2014.03.013 10.1016/j.scico.2014.03.013
Tukaram Muske and Alexander Serebrenik. 2020. Techniques for Efficient Automated Elimination of False Positives. In Proceedings of SCAM. IEEE, Piscataway, NJ, USA. 259–263. https://doi.org/10.1109/SCAM51674.2020.00035 10.1109/SCAM51674.2020.00035
Kensuke Kojima and Atsushi Igarashi. 2017. A Hoare Logic for GPU Kernels. Transactions on Computational Logic, 18, 1 (2017), Article 3, 43 pages. issn:1529-3785 https://doi.org/10.1145/3001834 10.1145/3001834
Ali Bakhoda, George L. Yuan, Wilson W. L. Fung, Henry Wong, and Tor M. Aamodt. 2009. Analyzing CUDA workloads using a detailed GPU simulator. In Proceedings of ISPASS. IEEE, Piscataway, NJ, USA. 163–174. https://doi.org/10.1109/ISPASS.2009.4919648 10.1109/ISPASS.2009.4919648
Mingyuan Wu, Yicheng Ouyang, Husheng Zhou, Lingming Zhang, Cong Liu, and Yuqun Zhang. 2020. Simulee: Detecting CUDA Synchronization Bugs via Memory-Access Modeling. In Proceedings of ICSE. ACM, New York, NY, USA. 937–948. https://doi.org/10.1145/3377811.3380358 10.1145/3377811.3380358
Ethel Bardsley, Adam Betts, Nathan Chong, Peter Collingbourne, Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Daniel Liew, and Shaz Qadeer. 2014. Engineering a Static Verification Tool for GPU Kernels. In Proceedings of CAV. 8559, Springer, Berlin, Heidelberg. 226–242. isbn:978-3-319-08866-2 https://doi.org/10.1007/978-3-319-08867-9_15 10.1007/978-3-319-08867-9_15
Vijay Anand Korthikanti, Jared Casper, Sangkug Lym, Lawrence McAfee, Michael Andersch, Mohammad Shoeybi, and Bryan Catanzaro. 2023. Reducing activation recomputation in large transformer models. In Proceedings of MLSys. 5, Curran, Red Hook, NY, USA. 341–353. https://proceedings.mlsys.org/paper_files/paper/2023/file/80083951326cf5b35e5100260d64ed81-Paper-mlsys2023.pdf
Tomofumi Yuki, Paul Feautrier, Sanjay Rajopadhye, and Vijay Saraswat. 2013. Array dataflow analysis for polyhedral X10 programs. In Proceedings of PPoPP. ACM, New York, NY, USA. 23–34. isbn:9781450319225 https://doi.org/10.1145/2442516.2442520 10.1145/2442516.2442520
Thomas Ball and Sriram K. Rajamani. 2001. Automatically Validating Temporal Safety Properties of Interfaces. In Proceedings of SPIN. Springer, Berlin, Heidelberg. 103–122. isbn:3540421246 https://doi.org/10.1007/3-540-45139-0_7 10.1007/3-540-45139-0_7
Phillipe Pereira, Higo Albuquerque, Hendrio Marques, Isabela Silva, Celso Carvalho, Lucas Cordeiro, Vanessa Santos, and Ricardo Ferreira. 2016. Verifying CUDA Programs Using SMT-Based Context-Bounded Model Checking. In Proceedings of SAC. ACM, New York, NY, USA. 1648–1653. https://doi.org/10.1145/2851613.2851830 10.1145/2851613.2851830
Priyanka Darke, Bharti Chimdyalwar, Avriti Chauhan, and R. Venkatesh. 2017. Efficient Safety Proofs for Industry-Scale Code Using Abstractions and Bounded Model Checking. In Proceedings of ICST. IEEE, Piscataway, NJ, USA. 468–475. https://doi.org/10.1109/ICST.2017.53 10.1109/ICST.2017.53
Zhen Hang Jiang, Yunsi Fei, and David Kaeli. 2019. Exploiting Bank Conflict-Based Side-Channel Timing Leakage of GPUs. ACM Transactions on Architecture and Code Optimization, 16, 4 (2019), Article 42, 24 pages. issn:1544-3566 https://doi.org/10.1145/3361870 10.1145/3361870
Giang Nguyen, Stefan Dlugolinsky, Martin Bobák, Viet Tran, Álvaro López García, Ignacio Heredia, Peter Malík, and Ladislav Hluchý. 2019. Machine Learning and Deep Learning frameworks and libraries for large-scale data mining: a survey. Artificial Intelligence Review, 52, 1 (2019), 77–124. issn:1573-7462 https://doi.org/10.1007/s10462-018-09679-z 10.1007/s10462-018-09679-z
Alan Leung, Manish Gupta, Yuvraj Agarwal, Rajesh Gupta, Ranjit Jhala, and Sorin Lerner. 2012. Verifying GPU kernels by test amplification. In Proceedings of PLDI. ACM, New York, NY, USA. 383–394. isbn:9781450312059 https://doi.org/10.1145/2254064.2254110 10.1145/2254064.2254110
Lorenzo Dematté and Davide Prandi. 2010. GPU computing for systems biology. Briefings in Bioinformatics, 11, 3 (2010), 03, 323–333. issn:1477-4054 https://doi.org/10.1093/bib/bbq006 10.1093/bib/bbq006
John E. Stone, David J. Hardy, Ivan S. Ufimtsev, and Klaus Schulten. 2010. GPU-accelerated molecular modeling coming of age. Journal of Molecular Graphics and Modelling, 29, 2 (2010), 116–125. issn:1093-3263 https://doi.org/10.1016/j.jmgm.2010.06.010 10.1016/j.jmgm.2010.06.010
Francesco Ranzato. 2013. Complete Abstractions Everywhere. In Proceedings of VMCAI. Springer, Berlin, Heidelberg. 15–26. isbn:9783642358722 https://doi.org/10.1007/978-3-642-35873-9_3 10.1007/978-3-642-35873-9_3
Ken E. Batcher. 1968. Sorting networks and their applications. In Proceedings of AFIPS. ACM, New York, NY, USA. 307–314. isbn:9781450378970 https://doi.org/10.1145/1468075.1468121 10.1145/1468075.1468121
Manuel Valdiviezo, Cristina Cifuentes, and Padmanabhan Krishnan. 2014. A Method for Scalable and Precise Bug Finding Using Program Analysis and Model Checking. In Proceedings of APLAS. Springer, Cham. 196–215. isbn:978-3-319-12736-1 https://doi.org/10.1007/978-3-319-12736-1_11 10.1007/978-3-319-12736-1_11
Lin Shi, Wen Liu, Heye Zhang, Yongming Xie, and Defeng Wang. 2012. A survey of GPU-based medical image computing techniques. Quantitative imaging in medicine and surgery, 2 (2012), 188–206. https://doi.org/10.3978/j.issn.2223-4292.2012.08.02 10.3978/j.issn.2223-4292.2012.08.02
Peter Collingbourne, Cristian Cadar, and Paul H. J. Kelly. 2012. Symbolic Testing of OpenCL Code. In Proceedings of HVC. Springer, Berlin, Heidelberg. 203–218. isbn:978-3-642-34187-8 https://doi.org/10.1007/978-3-642-34188-5_18 10.1007/978-3-642-34188-5_18
Mai Zheng, Vignesh T. Ravi, Feng Qin, and Gagan Agrawal. 2014. GMRace: Detecting Data Races in GPU Programs via a Low-Overhead Scheme. Transactions on Parallel and Distributed Systems, 25, 1 (2014), 104–115. https://doi.org/10.1109/TPDS.2013.44 10.1109/TPDS.2013.44
Stefan K. Muller and Jan Hoffmann. 2021. Modeling and Analyzing Evaluation Cost of CUDA Kernels. Proceedings of the ACM on Programming Languages, 5, POPL (2021), Article 25, 31 pages. https://doi.org/10.1145/3434306 10.1145/3434306
Caitlin Sadowski, Edward Aftandilian, Alex Eagle, Liam Miller-Cushon, and Ciera Jaspan. 2018. Lessons from building static analysis tools at Google. Commun. ACM, 61, 4 (2018), 58–66. https://doi.org/10.1145/3188720 10.1145/3188720
Tiago Cogumbreiro, Julien Lange, Dennis Liew Zhen Rong, and Hannah Zicarelli. 2023. Memory Access Protocols: Certified Data-Race Freedom for GPU Kernels. FMSD, 38 pages. https://doi.org/10.1007/s10703-023-00415-0 10.1007/s10703-023-00415-0
Guodong Li and Ganesh Gopalakrishnan. 2010. Scalable SMT-based verification of GPU kernel functions. In Proceedings of FSE. ACM, New York, NY, USA. 187–196. https://doi.org/10.1145/1882291.1882320 10.1145/1882291.1882320
Shixiong Zh
e_1_2_1_60_1
e_1_2_1_20_1
e_1_2_1_41_1
e_1_2_1_66_1
Yang Junfeng (e_1_2_1_73_1) 2012
e_1_2_1_68_1
e_1_2_1_24_1
e_1_2_1_45_1
e_1_2_1_62_1
e_1_2_1_22_1
e_1_2_1_43_1
e_1_2_1_64_1
e_1_2_1_28_1
e_1_2_1_49_1
e_1_2_1_26_1
e_1_2_1_47_1
e_1_2_1_71_1
e_1_2_1_31_1
e_1_2_1_54_1
e_1_2_1_77_1
e_1_2_1_8_1
e_1_2_1_56_1
e_1_2_1_6_1
e_1_2_1_12_1
e_1_2_1_35_1
e_1_2_1_50_1
e_1_2_1_4_1
e_1_2_1_10_1
e_1_2_1_52_1
e_1_2_1_75_1
e_1_2_1_2_1
e_1_2_1_16_1
e_1_2_1_39_1
e_1_2_1_14_1
e_1_2_1_37_1
e_1_2_1_58_1
e_1_2_1_18_1
e_1_2_1_65_1
e_1_2_1_40_1
e_1_2_1_67_1
e_1_2_1_23_1
e_1_2_1_46_1
e_1_2_1_61_1
e_1_2_1_21_1
e_1_2_1_44_1
e_1_2_1_63_1
e_1_2_1_27_1
e_1_2_1_25_1
e_1_2_1_48_1
Korthikanti Vijay Anand (e_1_2_1_42_1) 2023
e_1_2_1_69_1
e_1_2_1_29_1
Jacobson John (e_1_2_1_33_1) 2024
e_1_2_1_70_1
e_1_2_1_7_1
e_1_2_1_30_1
e_1_2_1_55_1
e_1_2_1_76_1
e_1_2_1_5_1
e_1_2_1_57_1
e_1_2_1_78_1
e_1_2_1_3_1
e_1_2_1_13_1
e_1_2_1_34_1
e_1_2_1_51_1
e_1_2_1_72_1
e_1_2_1_1_1
e_1_2_1_11_1
e_1_2_1_32_1
e_1_2_1_53_1
e_1_2_1_74_1
e_1_2_1_17_1
e_1_2_1_38_1
e_1_2_1_15_1
e_1_2_1_36_1
e_1_2_1_59_1
e_1_2_1_9_1
e_1_2_1_19_1
References_xml – reference: Mingyuan Wu, Yicheng Ouyang, Husheng Zhou, Lingming Zhang, Cong Liu, and Yuqun Zhang. 2020. Simulee: Detecting CUDA Synchronization Bugs via Memory-Access Modeling. In Proceedings of ICSE. ACM, New York, NY, USA. 937–948. https://doi.org/10.1145/3377811.3380358 10.1145/3377811.3380358
– reference: Caitlin Sadowski, Edward Aftandilian, Alex Eagle, Liam Miller-Cushon, and Ciera Jaspan. 2018. Lessons from building static analysis tools at Google. Commun. ACM, 61, 4 (2018), 58–66. https://doi.org/10.1145/3188720 10.1145/3188720
– reference: Adam Betts, Nathan Chong, Alastair F. Donaldson, Shaz Qadeer, and Paul Thomson. 2012. GPUVerify: a Verifier for GPU Kernels. In Proceedings of OOPSLA. ACM, New York, NY, USA. 113–132. https://doi.org/10.1145/2384616.2384625 10.1145/2384616.2384625
– reference: Roberto Giacobazzi, Francesco Logozzo, and Francesco Ranzato. 2015. Analyzing Program Analyses. In Proceedings of POPL. ACM, New York, NY, USA. 261—273. isbn:9781450333009 https://doi.org/10.1145/2676726.2676987 10.1145/2676726.2676987
– reference: Priyanka Darke, Bharti Chimdyalwar, Avriti Chauhan, and R. Venkatesh. 2017. Efficient Safety Proofs for Industry-Scale Code Using Abstractions and Bounded Model Checking. In Proceedings of ICST. IEEE, Piscataway, NJ, USA. 468–475. https://doi.org/10.1109/ICST.2017.53 10.1109/ICST.2017.53
– reference: A. Yu. Gerasimov. 2018. Directed Dynamic Symbolic Execution for Static Analysis Warnings Confirmation. Programming and Computer Software, 44, 5 (2018), 316–323. issn:0361-7688 https://doi.org/10.1134/S036176881805002X 10.1134/S036176881805002X
– reference: Dennis Liew, Tiago Cogumbreiro, and Julien Lange. 2024. Sound and partially-complete static analysis of data-races in GPU programs (Artifact). https://doi.org/10.5281/zenodo.12666682 10.5281/zenodo.12666682
– reference: Ethel Bardsley, Adam Betts, Nathan Chong, Peter Collingbourne, Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Daniel Liew, and Shaz Qadeer. 2014. Engineering a Static Verification Tool for GPU Kernels. In Proceedings of CAV. 8559, Springer, Berlin, Heidelberg. 226–242. isbn:978-3-319-08866-2 https://doi.org/10.1007/978-3-319-08867-9_15 10.1007/978-3-319-08867-9_15
– reference: Ariel Eizenberg, Yuanfeng Peng, Toma Pigli, William Mansky, and Joseph Devietti. 2017. BARRACUDA: Binary-level Analysis of Runtime RAces in CUDA Programs. In Proceedings of PLDI. ACM, New York, NY, USA. 126–140. isbn:978-1-4503-4988-8 https://doi.org/10.1145/3062341.3062342 10.1145/3062341.3062342
– reference: Shixiong Zhao, Rui Gu, Haoran Qiu, Tsz On Li, Yuexuan Wang, Heming Cui, and Junfeng Yang. 2018. OWL: Understanding and Detecting Concurrency Attacks. In Proceedings of DSN. IEEE, Piscataway, NJ, USA. 219–230. issn:2158-3927 https://doi.org/10.1109/DSN.2018.00033 10.1109/DSN.2018.00033
– reference: Prasanth Chatarasi, Jun Shirako, Martin Kong, and Vivek Sarkar. 2017. An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection. In Proceedings of LCPC’16. Springer, Berlin, Heidelberg. 106–120. isbn:978-3-319-52709-3 https://doi.org/10.1007/978-3-319-52709-3_10 10.1007/978-3-319-52709-3_10
– reference: Benjamin Ferrell, Jun Duan, and Kevin W. Hamlen. 2019. CUDA au Coq: A Framework for Machine-validating GPU Assembly Programs. In Proceedings of DATE. IEEE, Piscataway, NJ, USA. 474–479. https://doi.org/10.23919/DATE.2019.8715160 10.23919/DATE.2019.8715160
– reference: Peter Eastman, Jason Swails, John D. Chodera, Robert T. McGibbon, Yutong Zhao, Kyle A. Beauchamp, Lee-Ping Wang, Andrew C. Simmonett, Matthew P. Harrigan, Chaya D. Stern, Rafal P. Wiewiora, Bernard R. Brooks, and Vijay S. Pande. 2017. OpenMM 7: Rapid development of high performance algorithms for molecular dynamics. Computational Biology, 13, 7 (2017), 07, 1–17. https://doi.org/10.1371/journal.pcbi.1005659 10.1371/journal.pcbi.1005659
– reference: A. Yu. Gerasimov, L. V. Kruglov, M. K. Ermakov, and S. P. Vartanov. 2018. An Approach to Reachability Determination for Static Analysis Defects with the Help of Dynamic Symbolic Execution. Programming Computer Software, 44, 6 (2018), 467–475. issn:0361-7688 https://doi.org/10.1134/S0361768818060051 10.1134/S0361768818060051
– reference: Tukaram Muske and Alexander Serebrenik. 2020. Techniques for Efficient Automated Elimination of False Positives. In Proceedings of SCAM. IEEE, Piscataway, NJ, USA. 259–263. https://doi.org/10.1109/SCAM51674.2020.00035 10.1109/SCAM51674.2020.00035
– reference: Thomas Ball and Sriram K. Rajamani. 2001. Automatically Validating Temporal Safety Properties of Interfaces. In Proceedings of SPIN. Springer, Berlin, Heidelberg. 103–122. isbn:3540421246 https://doi.org/10.1007/3-540-45139-0_7 10.1007/3-540-45139-0_7
– reference: Tiago Cogumbreiro, Julien Lange, Dennis Liew Zhen Rong, and Hannah Zicarelli. 2023. Memory Access Protocols: Certified Data-Race Freedom for GPU Kernels. FMSD, 38 pages. https://doi.org/10.1007/s10703-023-00415-0 10.1007/s10703-023-00415-0
– reference: Lei Wang, Qiang Zhang, and PengChao Zhao. 2008. Automated Detection of Code Vulnerabilities Based on Program Analysis and Model Checking. In Proceedings of SCAM. IEEE, Piscataway, NJ, USA. 165–173. https://doi.org/10.1109/SCAM.2008.24 10.1109/SCAM.2008.24
– reference: Ali Bakhoda, George L. Yuan, Wilson W. L. Fung, Henry Wong, and Tor M. Aamodt. 2009. Analyzing CUDA workloads using a detailed GPU simulator. In Proceedings of ISPASS. IEEE, Piscataway, NJ, USA. 163–174. https://doi.org/10.1109/ISPASS.2009.4919648 10.1109/ISPASS.2009.4919648
– reference: Guodong Li and Ganesh Gopalakrishnan. 2012. Parameterized Verification of GPU Kernel Programs. In Proceedings of IPDPSW. IEEE, Piscataway, NJ, USA. 2450–2459. https://doi.org/10.1109/IPDPSW.2012.302 10.1109/IPDPSW.2012.302
– reference: Steven Arzt, Siegfried Rasthofer, Robert Hahn, and Eric Bodden. 2015. Using Targeted Symbolic Execution for Reducing False-Positives in Dataflow Analysis. In Proceedings of SOAP. ACM, New York, NY, USA. 1–6. isbn:9781450335850 https://doi.org/10.1145/2771284.2771285 10.1145/2771284.2771285
– reference: Corneliu Popeea and Wei-Ngan Chin. 2013. Dual analysis for proving safety and finding bugs. Science of Computer Programming, 78, 4 (2013), 390–411. issn:0167-6423 https://doi.org/10.1016/j.scico.2012.07.004 10.1016/j.scico.2012.07.004
– reference: Ken E. Batcher. 1968. Sorting networks and their applications. In Proceedings of AFIPS. ACM, New York, NY, USA. 307–314. isbn:9781450378970 https://doi.org/10.1145/1468075.1468121 10.1145/1468075.1468121
– reference: John Jacobson, Martin Burtscher, and Ganesh Gopalakrishnan. 2024. HiRace: Accurate and Fast Data Race Checking for GPU Programs. In Proceedings of SC. IEEE, Piscataway, NJ, USA. 12 pages.
– reference: Anup Holey, Vineeth Mekkat, and Antonia Zhai. 2013. HAccRG: Hardware-Accelerated Data Race Detection in GPUs. In Proceedings of ICPP. IEEE, Piscataway, NJ, USA. 60–69. issn:0190-3918 https://doi.org/10.1109/ICPP.2013.15 10.1109/ICPP.2013.15
– reference: Hongzhe Li, Taebeom Kim, Munkhbayar Bat-Erdene, and Heejo Lee. 2013. Software Vulnerability Detection Using Backward Trace Analysis and Symbolic Execution. In Proceedings of ARES. IEEE, Piscataway, NJ, USA. 446–454. https://doi.org/10.1109/ARES.2013.59 10.1109/ARES.2013.59
– reference: Peter Collingbourne, Cristian Cadar, and Paul H. J. Kelly. 2012. Symbolic Testing of OpenCL Code. In Proceedings of HVC. Springer, Berlin, Heidelberg. 203–218. isbn:978-3-642-34187-8 https://doi.org/10.1007/978-3-642-34188-5_18 10.1007/978-3-642-34188-5_18
– reference: Shrawan Kumar, Bharti Chimdyalwar, and Ulka Shrotri. 2013. Precise Range Analysis on Large Industry Code. In Proceedings of ESEC/FSE. Association for Computing Machinery, New York, NY, USA. 675–678. isbn:9781450322379 https://doi.org/10.1145/2491411.2494569 10.1145/2491411.2494569
– reference: Thu-Trang Nguyen, Toshiaki Aoki, Takashi Tomita, and Iori Yamada. 2019. Multiple Program Analysis Techniques Enable Precise Check for SEI CERT C Coding Standard. In Proceedings of APSEC. IEEE, Piscataway, NJ, USA. 70–77. https://doi.org/10.1109/APSEC48747.2019.00019 10.1109/APSEC48747.2019.00019
– reference: Rajeev Alur, Joseph Devietti, Omar S. Navarro Leija, and Nimit Singhania. 2022. Static detection of uncoalesced accesses in GPU programs. Formal Methods in System Design, 60 (2022), 1–32. issn:1572-8102 https://doi.org/10.1007/s10703-021-00362-8 10.1007/s10703-021-00362-8
– reference: Lorenzo Dematté and Davide Prandi. 2010. GPU computing for systems biology. Briefings in Bioinformatics, 11, 3 (2010), 03, 323–333. issn:1477-4054 https://doi.org/10.1093/bib/bbq006 10.1093/bib/bbq006
– reference: Manuel Valdiviezo, Cristina Cifuentes, and Padmanabhan Krishnan. 2014. A Method for Scalable and Precise Bug Finding Using Program Analysis and Model Checking. In Proceedings of APLAS. Springer, Cham. 196–215. isbn:978-3-319-12736-1 https://doi.org/10.1007/978-3-319-12736-1_11 10.1007/978-3-319-12736-1_11
– reference: Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proceedings of CGO. IEEE, Piscataway, NJ, USA. 75–88. isbn:0-7695-2102-9 https://doi.org/10.1109/CGO.2004.1281665 10.1109/CGO.2004.1281665
– reference: Giang Nguyen, Stefan Dlugolinsky, Martin Bobák, Viet Tran, Álvaro López García, Ignacio Heredia, Peter Malík, and Ladislav Hluchý. 2019. Machine Learning and Deep Learning frameworks and libraries for large-scale data mining: a survey. Artificial Intelligence Review, 52, 1 (2019), 77–124. issn:1573-7462 https://doi.org/10.1007/s10462-018-09679-z 10.1007/s10462-018-09679-z
– reference: Tiago Cogumbreiro, Julien Lange, Dennis Liew Zhen Rong, and Hannah Zicarelli. 2021. Checking Data-Race Freedom of GPU Kernels, Compositionally. In Proceedings of CAV (LNCS, Vol. 12759). ACM, New York, NY, USA. 403–426. https://doi.org/10.1007/978-3-030-81685-8_19 10.1007/978-3-030-81685-8_19
– reference: Adam Betts, Nathan Chong, Alastair F. Donaldson, Jeroen Ketema, Shaz Qadeer, Paul Thomson, and John Wickerson. 2015. The Design and Implementation of a Verification Technique for GPU Kernels. Transactions on Programming Languages and Systems, 37, 3 (2015), Article 10, 49 pages. issn:0164-0925 https://doi.org/10.1145/2743017 10.1145/2743017
– reference: Zhen Hang Jiang, Yunsi Fei, and David Kaeli. 2019. Exploiting Bank Conflict-Based Side-Channel Timing Leakage of GPUs. ACM Transactions on Architecture and Code Optimization, 16, 4 (2019), Article 42, 24 pages. issn:1544-3566 https://doi.org/10.1145/3361870 10.1145/3361870
– reference: Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Grégoire Sutre. 2002. Lazy Abstraction. In Proceedings of POPL. ACM, New York, NY, USA. 58–70. https://doi.org/10.1145/503272.503279 10.1145/503272.503279
– reference: Guodong Li, Peng Li, Geof Sawaya, Ganesh Gopalakrishnan, Indradeep Ghosh, and Sreeranga P. Rajan. 2012. GKLEE: Concolic Verification and Test Generation for GPUs. In Proceedings of PPoPP. 47, ACM, New York, NY, USA. 215–224. issn:0362-1340 https://doi.org/10.1145/2370036.2145844 10.1145/2370036.2145844
– reference: Phillipe Pereira, Higo Albuquerque, Hendrio Marques, Isabela Silva, Celso Carvalho, Lucas Cordeiro, Vanessa Santos, and Ricardo Ferreira. 2016. Verifying CUDA Programs Using SMT-Based Context-Bounded Model Checking. In Proceedings of SAC. ACM, New York, NY, USA. 1648–1653. https://doi.org/10.1145/2851613.2851830 10.1145/2851613.2851830
– reference: Francesco Ranzato. 2013. Complete Abstractions Everywhere. In Proceedings of VMCAI. Springer, Berlin, Heidelberg. 15–26. isbn:9783642358722 https://doi.org/10.1007/978-3-642-35873-9_3 10.1007/978-3-642-35873-9_3
– reference: Marcus Nachtigall, Lisa Nguyen Quang Do, and Eric Bodden. 2019. Explaining Static Analysis — A Perspective. In Proceedings of ASEW. IEEE, Piscataway, NJ, USA. 29–32. https://doi.org/10.1109/ASEW.2019.00023 10.1109/ASEW.2019.00023
– reference: Mukund Raghothaman, Sulekha Kulkarni, Kihong Heo, and Mayur Naik. 2018. User-guided program reasoning using Bayesian inference. In Proceedings of PLDI. ACM, New York, NY, USA. 722–735. isbn:9781450356985 https://doi.org/10.1145/3192366.3192417 10.1145/3192366.3192417
– reference: Nikos Gorogiannis, Peter W O’Hearn, and Ilya Sergey. 2019. A true positives theorem for a static race detector. Proceedings of the ACM on Programming Languages, 3, POPL (2019), 1–29. https://doi.org/10.1145/3290370 10.1145/3290370
– reference: Peter Collingbourne, Cristian Cadar, and Paul H.J. Kelly. 2014. Symbolic Crosschecking of Data-Parallel Floating-Point Code. IEEE Transactions on Software Engineering, 40, 7 (2014), 710–737. https://doi.org/10.1109/TSE.2013.2297120 10.1109/TSE.2013.2297120
– reference: Guodong Li and Ganesh Gopalakrishnan. 2010. Scalable SMT-based verification of GPU kernel functions. In Proceedings of FSE. ACM, New York, NY, USA. 187–196. https://doi.org/10.1145/1882291.1882320 10.1145/1882291.1882320
– reference: Vijay Anand Korthikanti, Jared Casper, Sangkug Lym, Lawrence McAfee, Michael Andersch, Mohammad Shoeybi, and Bryan Catanzaro. 2023. Reducing activation recomputation in large transformer models. In Proceedings of MLSys. 5, Curran, Red Hook, NY, USA. 341–353. https://proceedings.mlsys.org/paper_files/paper/2023/file/80083951326cf5b35e5100260d64ed81-Paper-mlsys2023.pdf
– reference: Stefan K. Muller and Jan Hoffmann. 2021. Modeling and Analyzing Evaluation Cost of CUDA Kernels. Proceedings of the ACM on Programming Languages, 5, POPL (2021), Article 25, 31 pages. https://doi.org/10.1145/3434306 10.1145/3434306
– reference: Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Proceedings of TACAS. Springer, Berlin, Heidelberg. 337–340. isbn:3540787992 https://doi.org/10.1007/978-3-540-78800-3_24 10.1007/978-3-540-78800-3_24
– reference: Tomofumi Yuki, Paul Feautrier, Sanjay Rajopadhye, and Vijay Saraswat. 2013. Array dataflow analysis for polyhedral X10 programs. In Proceedings of PPoPP. ACM, New York, NY, USA. 23–34. isbn:9781450319225 https://doi.org/10.1145/2442516.2442520 10.1145/2442516.2442520
– reference: Junfeng Yang, Ang Cui, Sal Stolfo, and Simha Sethumadhavan. 2012. Concurrency Attacks. In Proceedings of HotPar. USENIX, Berkeley, CA, USA. 15–15. https://www.usenix.org/conference/hotpar12/concurrency-attacks
– reference: Bharti Chimdyalwar, Priyanka Darke, Anooj Chavda, Sagar Vaghani, and Avriti Chauhan. 2015. Eliminating Static Analysis False Positives Using Loop Abstraction and Bounded Model Checking. In Proceedings FM. Springer, Cham. 573–576. isbn:978-3-319-19249-9 https://doi.org/10.1007/978-3-319-19249-9_35 10.1007/978-3-319-19249-9_35
– reference: Bin Zhang, Chao Feng, Bo Wu, and Chaojing Tang. 2016. Detecting integer overflow in Windows binary executables based on symbolic execution. In Proceedings of SNPD. IEEE, Piscataway, NJ, USA. 385–390. https://doi.org/10.1109/SNPD.2016.7515929 10.1109/SNPD.2016.7515929
– reference: Kensuke Kojima and Atsushi Igarashi. 2017. A Hoare Logic for GPU Kernels. Transactions on Computational Logic, 18, 1 (2017), Article 3, 43 pages. issn:1529-3785 https://doi.org/10.1145/3001834 10.1145/3001834
– reference: Stefan Blom, Marieke Huisman, and Matej Mihelčić. 2014. Specification and Verification of GPGPU Programs. Science of Computer Programming, 95, P3 (2014), 376–388. issn:0167-6423 https://doi.org/10.1016/j.scico.2014.03.013 10.1016/j.scico.2014.03.013
– reference: Ethel Bardsley, Alastair F. Donaldson, and John Wickerson. 2014. KernelInterceptor: Automating GPU Kernel Verification by Intercepting Kernels and their Parameters. In Proceedings of IWOCL. ACM, New York, NY, USA. Article 7, 5 pages. https://doi.org/10.1145/2664666.2664673 10.1145/2664666.2664673
– reference: Dennis Liew, Tiago Cogumbreiro, and Julien Lange. 2022. Provable GPU Data-Races in Static Race Detection. In Proceedings of PLACES (EPTCS, Vol. 356). OPA, Waterloo, Australia. 36–45. https://doi.org/10.4204/EPTCS.356.4 10.4204/EPTCS.356.4
– reference: Yuanfeng Peng, Vinod Grover, and Joseph Devietti. 2018. CURD: A Dynamic CUDA Race Detector. In Proceedings of PLDI. ACM, New York, NY, USA. 390–403. isbn:978-1-4503-5698-5 https://doi.org/10.1145/3192366.3192368 10.1145/3192366.3192368
– reference: Ashwin Kallingal Joshy, Xueyuan Chen, Benjamin Steenhoek, and Wei Le. 2021. Validating Static Warnings via Testing Code Fragments. In Proceedings of ISSTA. ACM, New York, NY, USA. 540–552. isbn:9781450384599 https://doi.org/10.1145/3460319.3464832 10.1145/3460319.3464832
– reference: Aditya K. Kamath, Alvin A. George, and Arkaprava Basu. 2020. ScoRD: A Scoped Race Detector for GPUs. In Proceedings of ISCA. IEEE, Piscataway, NJ, USA. 1036–1049. https://doi.org/10.1109/ISCA45697.2020.00088 10.1109/ISCA45697.2020.00088
– reference: Youil Kim, Jooyong Lee, Hwansoo Han, and Kwang-Moo Choe. 2010. Filtering False Alarms of Buffer Overflow Analysis Using SMT Solvers. Information and Software Technology, 52, 2 (2010), 210–219. issn:0950-5849 https://doi.org/10.1016/j.infsof.2009.10.004 10.1016/j.infsof.2009.10.004
– reference: H. Post, C. Sinz, A. Kaiser, and T. Gorges. 2008. Reducing False Positives by Combining Abstract Interpretation and Bounded Model Checking. In Proceedings of ASE. IEEE, Piscataway, NJ, USA. 188–197. isbn:9781424421879 https://doi.org/10.1109/ASE.2008.29 10.1109/ASE.2008.29
– reference: Pierre Ganty, Francesco Ranzato, and Pedro Valero. 2021. Complete Abstractions for Checking Language Inclusion. ACM Transactions on Computational Logic, 22, 4 (2021), Article 22, sep, 40 pages. issn:1529-3785 https://doi.org/10.1145/3462673 10.1145/3462673
– reference: Tukaram Muske and Uday P. Khedker. 2015. Efficient elimination of false positives using static analysis. In Proceedings of ISSRE. IEEE, Piscataway, NJ, USA. 270–280. https://doi.org/10.1109/ISSRE.2015.7381820 10.1109/ISSRE.2015.7381820
– reference: Marco Campion, Mila Dalla Preda, and Roberto Giacobazzi. 2022. Partial (In)Completeness in abstract interpretation: limiting the imprecision in program analysis. Proceedings of the ACM Programming Languages, 6, POPL (2022), Article 59, 31 pages. https://doi.org/10.1145/3498721 10.1145/3498721
– reference: Pengcheng Li, Xiaoyu Hu, Dong Chen, Jacob Brock, Hao Luo, Eddy Z. Zhang, and Chen Ding. 2017. LD: Low-Overhead GPU Race Detection Without Access Monitoring. Transactions on Architecture and Code Optimization, 14, 1 (2017), Article 9, 25 pages. issn:1544-3566 https://doi.org/10.1145/3046678 10.1145/3046678
– reference: Lin Shi, Wen Liu, Heye Zhang, Yongming Xie, and Defeng Wang. 2012. A survey of GPU-based medical image computing techniques. Quantitative imaging in medicine and surgery, 2 (2012), 188–206. https://doi.org/10.3978/j.issn.2223-4292.2012.08.02 10.3978/j.issn.2223-4292.2012.08.02
– reference: Kensuke Kojima and Atsushi Igarashi. 2013. A Hoare Logic for SIMT Programs. In Proceedings of APLAS. 8301, Springer, Berlin, Heidelberg. 58–73. isbn:978-3-319-03541-3 https://doi.org/10.1007/978-3-319-03542-0_5 10.1007/978-3-319-03542-0_5
– reference: Mikhail R. Gadelha, Enrico Steffinlongo, Lucas C. Cordeiro, Bernd Fischer, and Denis A. Nicole. 2019. SMT-Based Refutation of Spurious Bug Reports in the Clang Static Analyzer. In Proceedings of ICSE-Companion. IEEE, Piscataway, NJ, USA. 11–14. https://doi.org/10.1109/ICSE-Companion.2019.00026 10.1109/ICSE-Companion.2019.00026
– reference: Rajeev Alur, Joseph Devietti, Omar S. Navarro Leija, and Nimit Singhania. 2017. GPUDrano: Detecting Uncoalesced Accesses in GPU Programs. In Proceedings of CAV (LNCS, Vol. 10426). Springer, Berlin, Heidelberg. 507–525. https://doi.org/10.1007/978-3-319-63387-9_25 10.1007/978-3-319-63387-9_25
– reference: Peng Li, Guodong Li, and Ganesh Gopalakrishnan. 2014. Practical Symbolic Race Checking of GPU Programs. In Proceedings of SC. IEEE, Piscataway, NJ, USA. 179–190. https://doi.org/10.1109/SC.2014.20 10.1109/SC.2014.20
– reference: Xavier Rival. 2005. Understanding the Origin of Alarms in ASTRÉE. In Proceedings of SAS. Springer, Berlin, Heidelberg. 303–319. isbn:3540285849 https://doi.org/10.1007/11547662_21 10.1007/11547662_21
– reference: Brittany Johnson, Yoonki Song, Emerson Murphy-Hill, and Robert Bowdidge. 2013. Why don’t software developers use static analysis tools to find bugs? In Proceedings of ICSE. IEEE, Piscataway, NJ, USA. 672–681. https://doi.org/10.1109/ICSE.2013.6606613 10.1109/ICSE.2013.6606613
– reference: Alan Leung, Manish Gupta, Yuvraj Agarwal, Rajesh Gupta, Ranjit Jhala, and Sorin Lerner. 2012. Verifying GPU kernels by test amplification. In Proceedings of PLDI. ACM, New York, NY, USA. 383–394. isbn:9781450312059 https://doi.org/10.1145/2254064.2254110 10.1145/2254064.2254110
– reference: John E. Stone, David J. Hardy, Ivan S. Ufimtsev, and Klaus Schulten. 2010. GPU-accelerated molecular modeling coming of age. Journal of Molecular Graphics and Modelling, 29, 2 (2010), 116–125. issn:1093-3263 https://doi.org/10.1016/j.jmgm.2010.06.010 10.1016/j.jmgm.2010.06.010
– reference: Mai Zheng, Vignesh T. Ravi, Feng Qin, and Gagan Agrawal. 2014. GMRace: Detecting Data Races in GPU Programs via a Low-Overhead Scheme. Transactions on Parallel and Distributed Systems, 25, 1 (2014), 104–115. https://doi.org/10.1109/TPDS.2013.44 10.1109/TPDS.2013.44
– reference: Mai Zheng, Vignesh T. Ravi, Feng Qin, and Gagan Agrawal. 2011. GRace: A Low-overhead Mechanism for Detecting Data Races in GPU Programs. In Proceedings of PPoPP. ACM, New York, NY, USA. 135–146. isbn:978-1-4503-0119-0 https://doi.org/10.1145/1941553.1941574 10.1145/1941553.1941574
– reference: Kensuke Kojima, Akifumi Imanishi, and Atsushi Igarashi. 2018. Automated Verification of Functional Correctness of Race-Free GPU Programs. Journal of Automated Reasoning, 60, 3 (2018), 279–298. issn:0168-7433 https://doi.org/10.1007/s10817-017-9428-2 10.1007/s10817-017-9428-2
– ident: e_1_2_1_2_1
  doi: 10.1007/s10703-021-00362-8
– ident: e_1_2_1_37_1
  doi: 10.1109/ISCA45697.2020.00088
– ident: e_1_2_1_28_1
  doi: 10.1134/S0361768818060051
– ident: e_1_2_1_46_1
  doi: 10.1145/1882291.1882320
– ident: e_1_2_1_65_1
  doi: 10.1007/978-3-642-35873-9_3
– ident: e_1_2_1_32_1
  doi: 10.1109/ICPP.2013.15
– ident: e_1_2_1_77_1
  doi: 10.1145/1941553.1941574
– ident: e_1_2_1_76_1
  doi: 10.1109/DSN.2018.00033
– ident: e_1_2_1_12_1
  doi: 10.1145/3498721
– ident: e_1_2_1_17_1
  doi: 10.1109/TSE.2013.2297120
– ident: e_1_2_1_8_1
  doi: 10.1145/1468075.1468121
– ident: e_1_2_1_36_1
  doi: 10.1145/3460319.3464832
– ident: e_1_2_1_44_1
  doi: 10.1109/CGO.2004.1281665
– ident: e_1_2_1_50_1
  doi: 10.1145/3046678
– ident: e_1_2_1_24_1
  doi: 10.23919/DATE.2019.8715160
– ident: e_1_2_1_57_1
  doi: 10.1109/ASEW.2019.00023
– ident: e_1_2_1_21_1
  doi: 10.1093/bib
– ident: e_1_2_1_22_1
  doi: 10.1371/journal.pcbi.1005659
– volume-title: Proceedings of SC. IEEE
  year: 2024
  ident: e_1_2_1_33_1
– ident: e_1_2_1_39_1
  doi: 10.1007/978-3-319-03542-0_5
– ident: e_1_2_1_41_1
  doi: 10.1007/s10817-017-9428-2
– ident: e_1_2_1_9_1
  doi: 10.1145/2743017
– ident: e_1_2_1_18_1
  doi: 10.1007/978-3-642-34188-5_18
– ident: e_1_2_1_59_1
  doi: 10.1109/APSEC48747.2019.00019
– ident: e_1_2_1_43_1
  doi: 10.1145/2491411.2494569
– ident: e_1_2_1_19_1
  doi: 10.1109/ICST.2017.53
– ident: e_1_2_1_68_1
  doi: 10.3978/j.issn.2223-4292.2012.08.02
– ident: e_1_2_1_23_1
  doi: 10.1145/3062341.3062342
– ident: e_1_2_1_15_1
  doi: 10.1007/s10703-023-00415-0
– ident: e_1_2_1_51_1
  doi: 10.1109/SC.2014.20
– ident: e_1_2_1_60_1
  doi: 10.1145/3192366.3192368
– volume-title: Proceedings of MLSys. 5
  year: 2023
  ident: e_1_2_1_42_1
– ident: e_1_2_1_54_1
  doi: 10.1145/3434306
– ident: e_1_2_1_78_1
  doi: 10.1109/TPDS.2013.44
– ident: e_1_2_1_62_1
  doi: 10.1016/j.scico.2012.07.004
– ident: e_1_2_1_5_1
  doi: 10.1007/3-540-45139-0_7
– ident: e_1_2_1_75_1
  doi: 10.1109/SNPD.2016.7515929
– ident: e_1_2_1_4_1
  doi: 10.1109/ISPASS.2009.4919648
– ident: e_1_2_1_48_1
  doi: 10.1145/2370036.2145844
– ident: e_1_2_1_70_1
  doi: 10.1007/978-3-319-12736-1_11
– ident: e_1_2_1_1_1
  doi: 10.1007/978-3-319-63387-9_25
– ident: e_1_2_1_35_1
  doi: 10.1109/ICSE.2013.6606613
– ident: e_1_2_1_63_1
  doi: 10.1109/ASE.2008.29
– ident: e_1_2_1_16_1
  doi: 10.1007/978-3-030-81685-8_19
– ident: e_1_2_1_49_1
  doi: 10.1109/ARES.2013.59
– ident: e_1_2_1_55_1
  doi: 10.1109/ISSRE.2015.7381820
– ident: e_1_2_1_13_1
  doi: 10.1007/978-3-319-52709-3_10
– ident: e_1_2_1_69_1
  doi: 10.1016/j.jmgm.2010.06.010
– ident: e_1_2_1_72_1
  doi: 10.1145/3377811.3380358
– ident: e_1_2_1_11_1
  doi: 10.1016/j.scico.2014.03.013
– ident: e_1_2_1_25_1
  doi: 10.1109/ICSE-Companion.2019.00026
– ident: e_1_2_1_64_1
  doi: 10.1145/3192366.3192417
– ident: e_1_2_1_10_1
  doi: 10.1145/2384616.2384625
– ident: e_1_2_1_30_1
  doi: 10.1145/3290370
– ident: e_1_2_1_27_1
  doi: 10.1134/S036176881805002X
– ident: e_1_2_1_71_1
  doi: 10.1109/SCAM.2008.24
– ident: e_1_2_1_67_1
  doi: 10.1145/3188720
– ident: e_1_2_1_45_1
  doi: 10.1145/2254064.2254110
– ident: e_1_2_1_6_1
  doi: 10.1007/978-3-319-08867-9_15
– ident: e_1_2_1_20_1
  doi: 10.1007/978-3-540-78800-3_24
– ident: e_1_2_1_7_1
  doi: 10.1145/2664666.2664673
– ident: e_1_2_1_52_1
  doi: 10.4204/EPTCS.356.4
– ident: e_1_2_1_58_1
  doi: 10.1007/s10462-018-09679-z
– ident: e_1_2_1_14_1
  doi: 10.1007/978-3-319-19249-9_35
– ident: e_1_2_1_3_1
  doi: 10.1145/2771284.2771285
– ident: e_1_2_1_26_1
  doi: 10.1145/3462673
– ident: e_1_2_1_56_1
  doi: 10.1109/SCAM51674.2020.00035
– ident: e_1_2_1_38_1
  doi: 10.1016/j.infsof.2009.10.004
– ident: e_1_2_1_53_1
  doi: 10.5281/zenodo.12666682
– ident: e_1_2_1_29_1
  doi: 10.1145/2676726.2676987
– ident: e_1_2_1_66_1
  doi: 10.1007/11547662_21
– ident: e_1_2_1_47_1
  doi: 10.1109/IPDPSW.2012.302
– ident: e_1_2_1_34_1
  doi: 10.1145/3361870
– ident: e_1_2_1_40_1
  doi: 10.1145/3001834
– volume-title: Concurrency Attacks. In Proceedings of HotPar. USENIX
  year: 2012
  ident: e_1_2_1_73_1
– ident: e_1_2_1_74_1
  doi: 10.1145/2442516.2442520
– ident: e_1_2_1_61_1
  doi: 10.1145/2851613.2851830
– ident: e_1_2_1_31_1
  doi: 10.1145/503272.503279
SSID ssj0001934839
Score 2.2976131
Snippet GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 2434
SubjectTerms Formal software verification
Parallel computing models
Software and its engineering
Theory of computation
SubjectTermsDisplay Software and its engineering -- Formal software verification
Theory of computation -- Parallel computing models
Title Sound and Partially-Complete Static Analysis of Data-Races in GPU Programs
URI https://dl.acm.org/doi/10.1145/3689797
Volume 8
WOSCitedRecordID wos001358441400002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Bb9MwFLbK4MAFxgCtwJAPiAsyNI4T28dqbCDUbRXr0G6V49hTpDadtm4aFyT-Oc-xnWYdEnDgErWuX6r6fXl-fn3fewi9KW2RFCUfEKOzgjDYMIhIE0asAudYlobphvX-bcQPD8XpqRz3ej8jF-Z6xuta3NzI8_-qahgDZTvq7D-ou70pDMBrUDpcQe1w_SvFH7tGSZ4E4D5Vs9l34p56UJBpfMtK3ypF8lEtFfkaMrPefRqfOPKAy9m67Dqu43aja4SGuwfub4aQ3TV38YYY-Wyd9FFTptaZtNqXLwl8kLOrOZzDK0-wmVTqbNFKOKZDZG0HjlqISFDmU-JWhosynpGEeebze_ObsWB5RQdgR0fj49GQdm0pC2FOE976qu13bT5z5THSXEjuU31vV9Ve2-3aHETPyM6mQfAeuk8BnS4r8OBHJ0wnUyaafnTtL_DUayf7Icg6z0bPO55Nx0WZbKJH4WyBhx4TT1DP1FvocezbgYMZf4q-NBDBABF8FyLYQwRHiOCFxSuI4KrGABEcIfIMnezvTXY_k9BTgyjK-ZLkdJBLy7nJs0JYw5VMrchsZgdSuehSBr6KLQfwBFOTp9rkqjBwBE8S8Fq4q1z0HG3Ui9psI6xdqT3BS5pzw2A5CqpkwjRVPFWZSNI-2oJVmZ77qilxnfvobVylqQ5l6F03lNl0TSF9-IY4Md5jbcqLP095iR6uIPoKbSwvrswOeqCvl9XlxetG178AvnNxyw
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Sound+and+Partially-Complete+Static+Analysis+of+Data-Races+in+GPU+Programs&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Liew%2C+Dennis&rft.au=Cogumbreiro%2C+Tiago&rft.au=Lange%2C+Julien&rft.date=2024-10-08&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=8&rft.issue=OOPSLA2&rft.spage=2434&rft.epage=2461&rft_id=info:doi/10.1145%2F3689797&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3689797
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon