BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/Chicago
X-LIC-LOCATION:America/Chicago
BEGIN:DAYLIGHT
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20260522T150121Z
LOCATION:D175
DTSTART;TZID=America/Chicago:20181112T170700
DTEND;TZID=America/Chicago:20181112T171400
UID:submissions.supercomputing.org_SC18_sess176_pec434@linklings.com
SUMMARY:A Study of OpenMP Device Offloading in LLVM: Correctness and Consi
 stency
DESCRIPTION:Lechen Yu (Georgia Institute of Technology)\n\nTo leverage wid
 ely available accelerators, OpenMP has introduced device constructs. Devic
 e constructs simplify the development of heterogeneous parallel programs a
 nd improve the performance. Many compilers including Clang already have su
 pport for device constructs, but there exist few documentations about the 
 implementation details of device constructs. Lacking implementation detail
 s makes it cumbersome to understand the root cause of concurrency bugs and
  performance issues encountered on accelerators. In this paper, we conduct
  a study on Clang to analyze the implementation of device constructs for G
 PUs. We manually analyze the generated Parallel Thread Execution (PTX) cod
 e for each OpenMP construct to determine the relationship between the cons
 truct and PTX instructions. Based on the analysis, we evaluate the correct
 ness of these constructs and discuss potential concurrency bugs incurred b
 y incorrect usage of device constructs, for instance, data races, stale da
 ta and atomicity violation. Furthermore, we also talk about three observed
  inconsistencies in Clang, which may misinform programmers while writing a
 n OpenMP program. Our work can help programmers gain a better understandin
 g of device offloading and avoid hidden pitfalls when using Clang and Open
 MP.\n\nTag: Program Transformation, Programming Systems\n\nRegistration Ca
 tegory: Workshop Reg Pass\n\n
END:VEVENT
END:VCALENDAR
