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:20181221T160728Z
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:Workshop\nProgram Transformation, Programming Systems, Worksho
 p Reg Pass\n\nA Study of OpenMP Device Offloading in LLVM: Correctness and
  Consistency\n\nYu\n\nTo leverage widely available accelerators, OpenMP ha
 s introduced device constructs. Device constructs simplify the development
  of heterogeneous parallel programs and improve the performance. Many comp
 ilers including Clang already have support for device constructs, but ther
 e exist few documentations about the implementation details of device cons
 tructs. Lacking implementation details makes it cumbersome to understand t
 he root cause of concurrency bugs and performance issues encountered on ac
 celerators. In this paper, we conduct a study on Clang to analyze the impl
 ementation of device constructs for GPUs. We manually analyze the generate
 d Parallel Thread Execution (PTX) code for each OpenMP construct to determ
 ine the relationship between the construct and PTX instructions. Based on 
 the analysis, we evaluate the correctness of these constructs and discuss 
 potential concurrency bugs incurred by incorrect usage of device construct
 s, for instance, data races, stale data and atomicity violation. Furthermo
 re, we also talk about three observed inconsistencies in Clang, which may 
 misinform programmers while writing an OpenMP program. Our work can help p
 rogrammers gain a better understanding of device offloading and avoid hidd
 en pitfalls when using Clang and OpenMP.
URL:https://sc18.supercomputing.org/presentation/?id=pec434&sess=sess176
END:VEVENT
END:VCALENDAR

