<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=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 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:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">#3, below, to me, means &#8220;accelerator&#8221;.. fling data over the wall to the accelerator, go do something else, when the answer comes back, use it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">And this makes sense for computationally BIG tasks &nbsp;with O(n^2 or n^3 or worse exp(n)) (say, inverting a matrix.. )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Jim Lux<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> beowulf-bounces@beowulf.org [mailto:beowulf-bounces@beowulf.org]
<b>On Behalf Of </b>Brendan Moloney<br>
<b>Sent:</b> Monday, March 11, 2013 9:02 PM<br>
<b>To:</b> Joshua mora acosta<br>
<b>Cc:</b> Beowulf List; Mark Hahn<br>
<b>Subject:</b> Re: [Beowulf] difference between accelerators and co-processors<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I think this analysis is missing some important points.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">1) Comparing a single low power APU to a single high power discrete GPU doesn't make sense for HPC. Rather we should compare a rack of equipment that can operate in the same power envelope.<br>
<br>
2) You can bolt GDDR5 onto an APU, eliminating the local bandwidth advantage (AMD is doing exactly this for the PS4). Also, we should really be comparing the bandwidth available to each GPU &quot;core&quot;.<o:p></o:p></p>
</div>
<p class="MsoNormal">3) Almost every GPGPU research paper devotes significant space (perhaps the whole paper) to figuring out ways of doing some step in their algorithm, that is trivial on a CPU, efficiently on a GPU.&nbsp; Avoiding round trips is a driving force
 in most algorithm development. So the programming should be easier, even if you still need (for now) the explicit API calls for memory &quot;transfers&quot;.<o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">On Sun, Mar 10, 2013 at 5:55 PM, Joshua mora acosta &lt;<a href="mailto:joshua_mora@usa.net" target="_blank">joshua_mora@usa.net</a>&gt; wrote:<o:p></o:p></p>
<p class="MsoNormal">See this paper<br>
<a href="http://synergy.cs.vt.edu/pubs/papers/daga-saahpc11-apu-efficacy.pdf" target="_blank">http://synergy.cs.vt.edu/pubs/papers/daga-saahpc11-apu-efficacy.pdf</a><br>
<br>
While discrete GPUs underperform wrt APU on host to/from device transfers in a<br>
ratio of ~2X, it compensates by far the computing power and local bandwidth<br>
~8-10X.<br>
<br>
You can cook though a test where you do little computation and it is all bound<br>
by the host to/from device transfers.<br>
<br>
Programming wise there is no difference as there isn't yet coherence so<br>
explicit transfers through API calls are needed.<br>
<span style="color:#888888"><br>
Joshua</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
------ Original Message ------<br>
Received: 04:06 PM CDT, 03/10/2013<br>
From: Vincent Diepeveen &lt;<a href="mailto:diep@xs4all.nl">diep@xs4all.nl</a>&gt;<br>
To: Mark Hahn &lt;<a href="mailto:hahn@mcmaster.ca">hahn@mcmaster.ca</a>&gt;Cc: Beowulf List &lt;<a href="mailto:beowulf@beowulf.org">beowulf@beowulf.org</a>&gt;<br>
Subject: Re: [Beowulf] difference between accelerators and co-processors<br>
<br>
&gt;<br>
&gt; On Mar 10, 2013, at 9:03 PM, Mark Hahn wrote:<br>
&gt;<br>
&gt; &gt;&gt; Is there any line/point to make distinction between accelerators and<br>
&gt; &gt;&gt; co-processors (that are used in conjunction with the primary CPU<br>
&gt; &gt;&gt; to boost<br>
&gt; &gt;&gt; up the performance)? or these terms can be used interchangeably?<br>
&gt; &gt;<br>
&gt; &gt; IMO, a coprocessor executes the same instruction stream as the<br>
&gt; &gt; &quot;primary&quot; processor. &nbsp;this was the case with the x87, for instance,<br>
&gt; &gt; though the distinction became less significant once the x87 came<br>
&gt; &gt; onchip.<br>
&gt; &gt; (though you certainly notice that FPU on any of these chips is mostly<br>
&gt; &gt; separate - not sharing functional units or register files,<br>
&gt; &gt; sometimes even<br>
&gt; &gt; with separate micro-op schedulers.)<br>
&gt; &gt;<br>
&gt; &gt;&gt; Specifically, the word &quot;accelerator&quot; is used commonly with GPU. On<br>
&gt; &gt;&gt; the<br>
&gt; &gt;&gt; other hand &nbsp;the word &quot;co-processors&quot; is used commonly with Xeon Phi.<br>
&gt; &gt;<br>
&gt; &gt; I don't think it is a useful distinction: both are basiclly<br>
&gt; &gt; independent<br>
&gt; &gt; computers. &nbsp;obviously, the programming model of Phi is dramatically<br>
&gt; &gt; more<br>
&gt; &gt; like a conventional processor than Nvidia.<br>
&gt; &gt;<br>
&gt;<br>
&gt; Mark, that's the marketing talk about Xeon Phi.<br>
&gt;<br>
&gt; It's surprisingly the same of course except for the cache coherency;<br>
&gt; big vector processors.<br>
&gt;<br>
&gt; &gt; there is a meaningful distinction between offload and coprocessor<br>
&gt; &gt; approaches.<br>
&gt; &gt; that is, offload means you use the device to accelerate a set of<br>
&gt; &gt; libraries<br>
&gt; &gt; (offload matrix multiply, eig, fft, etc). &nbsp;to use a coprocessor, I<br>
&gt; &gt; think the<br>
&gt; &gt; expectation is that the main code will be very much aware of the<br>
&gt; &gt; state of the<br>
&gt; &gt; PCIe-attached hardware.<br>
&gt; &gt;<br>
&gt; &gt; I suppose one might suggest that &quot;accelerator&quot; to some extent implies<br>
&gt; &gt; offload usage: you're accelerating a library.<br>
&gt; &gt;<br>
&gt; &gt; another interesting example is AMD's upcoming HSA concept: since<br>
&gt; &gt; nearly all<br>
&gt; &gt; GPUs are now on-chip, AMD wants to integrate the CPU and GPU<br>
&gt; &gt; programming<br>
&gt; &gt; models (at least to some extent). &nbsp;as far as I understand it, HSA<br>
&gt; &gt; is based<br>
&gt; &gt; on introducing a quite general intermediate ISA that can be<br>
&gt; &gt; executed using<br>
&gt; &gt; all available hardware resources: CPU and/or GPU. &nbsp;although Nvidia<br>
&gt; &gt; does have<br>
&gt; &gt; its own intermediate ISA, they don't seem to be trying to make it<br>
&gt; &gt; general,<br>
&gt; &gt; *and* they don't seem interested in making it work on both C/GPU.<br>
&gt; &gt; (well,<br>
&gt; &gt; so far at least - I wouldn't be surprised if they _did_ have a PTX<br>
&gt; &gt; JIT for<br>
&gt; &gt; their ARM-based C/GPU chips...)<br>
&gt; &gt;<br>
&gt; &gt; I think HSA is potentially interesting for HPC, too.<br>
&gt; &gt; &nbsp; I really expect<br>
&gt; &gt; AMD and/or Intel to ship products this year that have a C/GPU chip<br>
&gt; &gt; mounted on<br>
&gt; &gt; the same interposer as some high-bandwidth ram.<br>
&gt;<br>
&gt; How can an integrated gpu outperform a gpgpu card?<br>
&gt;<br>
&gt; Something like what is it 25 watt versus 250 watt, what will be faster?<br>
&gt;<br>
&gt; I assume you will not build 10 nodes with 10 cpu's with integrated<br>
&gt; gpu in order to rival a<br>
&gt; single card.<br>
&gt;<br>
&gt; &gt; &nbsp; a fixed amount of very high<br>
&gt; &gt; performance memory sounds very tasty to me. &nbsp;a surprising amount of<br>
&gt; &gt; power<br>
&gt; &gt; in current systems is spend getting high-speed signals off-socket.<br>
&gt; &gt;<br>
&gt; &gt; imagine a package dissipating say 40W containing a, say, 4 CPU cores,<br>
&gt; &gt; 256 GPU ALUs and 2GB of gddr5. &nbsp;the point would be to tile 32 of them<br>
&gt; &gt; in a 1U box. &nbsp;(dropping socketed, off-package dram would probably make<br>
&gt; &gt; it uninteresting for memcached and some space-intensive HPC.<br>
&gt; &gt;<br>
&gt; &gt; then again, if you think carefully about the numbers, any code today<br>
&gt; &gt; that has a big working set is almost as anachronistic as codes that<br>
&gt; &gt; use<br>
&gt; &gt; disk-based algorithms. &nbsp;(same conceptual thing happening: capacity is<br>
&gt; &gt; growing much faster than the pipe.)<br>
&gt; &gt;<br>
&gt; &gt; regards, mark hahn.<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a> sponsored by Penguin<br>
&gt; &gt; Computing<br>
&gt; &gt; To change your subscription (digest mode or unsubscribe) visit<br>
&gt; &gt; <a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
&gt; To change your subscription (digest mode or unsubscribe) visit<br>
<a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
<br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank">
http://www.beowulf.org/mailman/listinfo/beowulf</a><o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>