<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Note that the variable-length in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077289#M60360</link>
    <description>&lt;P&gt;Note that the variable-length array of pointers must itself be statically allocated, but the dynamic number of pointers that it contains, and the starts and extents of data pointed to by each pointer in that array can be function parameters.&lt;/P&gt;</description>
    <pubDate>Fri, 08 Jan 2016 00:32:01 GMT</pubDate>
    <dc:creator>Rajiv_D_Intel</dc:creator>
    <dc:date>2016-01-08T00:32:01Z</dc:date>
    <item>
      <title>runtime API for data copy in/out and kernel launching</title>
      <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077285#M60356</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;I know I can separate data copyin, offloading execution and copyout using pragma, e.g.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(213, 59, 211); font-family: Menlo; font-size: 11px;"&gt;&amp;nbsp;#pragma offload target(mic) nocopy (x: length(SIZE) alloc_if(&lt;/SPAN&gt;&lt;SPAN style="font-family: Menlo; font-size: 11px; color: rgb(195, 55, 32);"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: rgb(213, 59, 211); font-family: Menlo; font-size: 11px;"&gt;) free_if(&lt;/SPAN&gt;&lt;SPAN style="font-family: Menlo; font-size: 11px; color: rgb(195, 55, 32);"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: rgb(213, 59, 211); font-family: Menlo; font-size: 11px;"&gt;)) \&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(213, 59, 211);"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nocopy (y: length(SIZE) alloc_if(&lt;SPAN style="font-variant-ligatures: no-common-ligatures; color: #c33720"&gt;0&lt;/SPAN&gt;) free_if(&lt;SPAN style="font-variant-ligatures: no-common-ligatures; color: #c33720"&gt;0&lt;/SPAN&gt;))&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;However, can we do it as runtime call? For example, a function that takes a arbitrary number of arrays and the pointers/sizes of those array, it will have a loop iterating each array to copy data in. Similar thing for copy out. So is there&amp;nbsp;&lt;/SPAN&gt;runtime&lt;SPAN style="font-size: 1em;"&gt;&amp;nbsp;library for that?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jan 2016 18:43:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077285#M60356</guid>
      <dc:creator>Jiawen_L_</dc:creator>
      <dc:date>2016-01-07T18:43:58Z</dc:date>
    </item>
    <item>
      <title>The "array of pointers"</title>
      <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077286#M60357</link>
      <description>&lt;P&gt;The "array of pointers" feature should be used in this case.&lt;/P&gt;

&lt;P&gt;Look at &lt;A href="https://software.intel.com/en-us/articles/xeon-phi-coprocessor-data-transfer-array-of-pointers-using-language-extensions-for-offload"&gt;https://software.intel.com/en-us/articles/xeon-phi-coprocessor-data-transfer-array-of-pointers-using-language-extensions-for-offload&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jan 2016 21:03:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077286#M60357</guid>
      <dc:creator>Rajiv_D_Intel</dc:creator>
      <dc:date>2016-01-07T21:03:28Z</dc:date>
    </item>
    <item>
      <title>Hi Rajiv, </title>
      <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077287#M60358</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Hi Rajiv,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Thank you so much for you reply soon.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;But It's not what I want. What I want is the runtime API that can be assigned for the function with the a number of arrays and the&amp;nbsp;&lt;/SPAN&gt;pointers/sizes of them, which means as this API can generate &lt;SPAN style="font-size: 12px;"&gt;&amp;nbsp;a arbitrary number of arrays&lt;/SPAN&gt;&amp;nbsp;as below according to the variables/parameters in the runtime dynamically instead of fixedly. How could I do that? Thanks!&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;&amp;nbsp;#pragma offload target(mic) nocopy (x: length(SIZE) alloc_if(0) free_if(0)) \&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nocopy (y: length(SIZE) alloc_if(0) free_if(0))&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jan 2016 21:21:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077287#M60358</guid>
      <dc:creator>Jiawen_L_</dc:creator>
      <dc:date>2016-01-07T21:21:57Z</dc:date>
    </item>
    <item>
      <title>See attached sample.c</title>
      <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077288#M60359</link>
      <description>&lt;P&gt;See attached sample.c&lt;/P&gt;</description>
      <pubDate>Fri, 08 Jan 2016 00:29:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077288#M60359</guid>
      <dc:creator>Rajiv_D_Intel</dc:creator>
      <dc:date>2016-01-08T00:29:56Z</dc:date>
    </item>
    <item>
      <title>Note that the variable-length</title>
      <link>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077289#M60360</link>
      <description>&lt;P&gt;Note that the variable-length array of pointers must itself be statically allocated, but the dynamic number of pointers that it contains, and the starts and extents of data pointed to by each pointer in that array can be function parameters.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Jan 2016 00:32:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/runtime-API-for-data-copy-in-out-and-kernel-launching/m-p/1077289#M60360</guid>
      <dc:creator>Rajiv_D_Intel</dc:creator>
      <dc:date>2016-01-08T00:32:01Z</dc:date>
    </item>
  </channel>
</rss>

