<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I don’t think we should integrate offloading into openmp.  1) the Expertise for these 2 libraries are different and developers don’t need to understand both to
 contribute to just one of them. 2) Enables code reuse of offloading for other programming models.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Yonghong Yan [mailto:yanyh15@gmail.com]
<br>
<b>Sent:</b> Friday, September 30, 2016 9:09 AM<br>
<b>To:</b> C Bergström <cbergstrom@pathscale.com><br>
<b>Cc:</b> Narayanaswamy, Ravi <ravi.narayanaswamy@intel.com>; openmp-dev <openmp-dev@lists.llvm.org><br>
<b>Subject:</b> Re: [Openmp-dev] Location for omptarget<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Fri, Sep 30, 2016 at 9:39 AM, C Bergström <<a href="mailto:cbergstrom@pathscale.com" target="_blank">cbergstrom@pathscale.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12.0pt">Maybe I'm reading this wrong and again I'm trying to be sarcastic<br>
(please ignore) - so you think it's best to just blindly rush some<br>
code out and not have proper design or engineering with good API or<br>
reuse in mind? You think 1 programming model should be the only thing<br>
people need and that anyone else using some else doesn't matter..<br>
That's what you're implying, right?<o:p></o:p></p>
</blockquote>
<div>
<p class="MsoNormal">You are reading this wrong.  Having multiple models is great, especially for users. however, unifying support of runtime is difficult because of the difference of the requirement of different models and interfaces. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Yonghong<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">I've been down the hacker path with 5 programming models personally.<br>
Code reuse ends up being extremely helpful and I wish I had someone<br>
pushing me to do proper design 1st. This becomes especially true if<br>
you want to support multiple different archs and device types. I don't<br>
know if I would call them wrapper API, but common interfaces are<br>
possible and imho essential at multiple layers. (With the view that<br>
programming models are broken into pieces of high level and low level<br>
implementation details)<o:p></o:p></p>
</blockquote>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><br>
<br>
On Fri, Sep 30, 2016 at 8:58 PM, Yonghong Yan <<a href="mailto:yanyh15@gmail.com">yanyh15@gmail.com</a>> wrote:<br>
><br>
><br>
> On Fri, Sep 30, 2016 at 8:39 AM, C Bergström <<a href="mailto:cbergstrom@pathscale.com">cbergstrom@pathscale.com</a>><br>
> wrote:<br>
>><br>
>> On Fri, Sep 30, 2016 at 8:30 PM, Yonghong Yan via Openmp-dev<br>
>> <<a href="mailto:openmp-dev@lists.llvm.org">openmp-dev@lists.llvm.org</a>> wrote:<br>
>> ><br>
>> > Why not just be part of openmp library, no libomptarget thing at all?<br>
>> > The<br>
>> > more you develop in the future and the more you will find that it is<br>
>> > hard to<br>
>> > separate. That is my vote too.<br>
>><br>
>> Yonghong - please subscribe if you're going to post<br>
><br>
> posted using wrong email. I subscribed already.<br>
>><br>
>> ----------<br>
>> The big picture idea is that if liboffload or libtarget handles<br>
>> offloading in a general way it can be leveraged by multiple<br>
>> programming models. There's nothing OMP specific about copying a<br>
>> region(kernel), uploading it to a GPU and launching it. Right now<br>
>> there's like 2-3 different projects all reinventing code which has a<br>
>> lot of overlap. By sharing it hopefully flushes out a good API as well<br>
>> as better robustness from increased testing. (That's my idea/goal<br>
>> anyway... what others have in mind is..)<br>
><br>
> completely understand. For me, I only care openmp ;-). I honestly would like<br>
> to make the whole openmp runtime, including libomptarget, be shared by other<br>
> programming models. The intention of parallel-libs is good. I however do not<br>
> know how the approach will work in reality if we do not have something<br>
> working. people would be tired of waiting and discussing of runtime<br>
> interface as well as the functionality, so they will create their own no<br>
> matter what. at least this is what I did since creating a wrapper layer on<br>
> top of multiple device driver API is not hard.<br>
><br>
> thus my bet to contribute the whole things to the community is first to have<br>
> something working functionality-wise, e.g. support different kinds of<br>
> devices, as well as with the current openmp runtime, then we make the API<br>
> generalized for others to use.<br>
><br>
> Yonghong<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>