<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 28, 2013 at 10:30 AM, "C. Bergström" <span dir="ltr"><<a href="mailto:cbergstrom@pathscale.com" target="_blank">cbergstrom@pathscale.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="im">On 02/28/13 09:58 AM, Christopher Samuel wrote:<br>
> -----BEGIN PGP SIGNED MESSAGE-----<br>
> Hash: SHA1<br>
><br>
> On 28/02/13 13:47,  C. Bergstr￶m  wrote:<br>
><br>
>> Ported how exactly? I thought Intel just pushes for a recompile and<br>
>> didn't introduce a new programming model<br>
> Recompiling is only useful if you're running your code on the Phi<br>
> itself (as Stu does) and thus can cope with the tiny amount of RAM it<br>
> has.<br>
><br>
> However, the other model being pushed is as an offload device (like<br>
> GPGPU) as you can see here:<br>
><br>
> <a href="http://www.tacc.utexas.edu/user-services/user-guides/stampede-user-guide#mic" target="_blank">http://www.tacc.utexas.edu/user-services/user-guides/stampede-user-guide#mic</a><br>
><br>
> It's the offloading use (in free or proprietary applications) that I'm<br>
> curious about.<br>
</div>(lazy question)<br>
Is there a full guide to the pragma/directives that are supported?  Does<br>
it have a "marketing" name yet or a pdf reference..<br>
<br>
Unless I missed something I only see this being wrapped around some OpenMP<br>
#pragma offload target(mic:0)<br></blockquote></div><br></div><div class="gmail_extra">Since the pragmas are an Intel extenstion the authoritative documentation can be found in the Intel Compiler document bundle:<br><a href="http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-lin/index.htm">http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/cpp-lin/index.htm</a><br>

<br></div><div class="gmail_extra">Basically there are four pragmas:<br></div><div class="gmail_extra">offload, offload_wait, offload_transfer and offload_attribute<br><br></div><div class="gmail_extra">Each has a specific set of clauses that may follow a pragma.<br>

<br></div><div class="gmail_extra">Practical examples of usage can get cluttered since each pragma might have a dozen clauses accompanying it all in one line of course and each clause is verbose too.<br><br></div><div class="gmail_extra">

Here is an example from an Intel presentation that can give a taste of it:<br><br>#pragma offload_transfer target(mic:0) nocopy(data:length(num_elements) alloc_if(1)<br>free_if(0)) ...<br><br></div><div class="gmail_extra">

Best,<br></div><div class="gmail_extra">  Dmitri<br></div></div>