<?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 multiple asynchronous computational kernel offload launches in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998737#M29298</link>
    <description>&lt;P&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;In Nvidia CUDA, the Kepler GPU can support concurrent execution of 16 kernels.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One can use multiple streams to feed multiple kernels to the GPU and let the hardware schedule the work.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One can also use the grid dimension and block dimension in the kernel launch to roughly influence the amount of computing resources.&amp;nbsp; For example, one can use [1x1x1] grid [512x1x1] threads so that the kernel executes on a single SMX unit.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;I am wondering whether or how one might achieve something similar for the MIC.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Can multiple threads on the host issue separate non-blocking asynchronous offload computation commands with signals to run code or call MKL BLAS?&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Is there a way to influence the amount of computing resources in the offload MKL BLAS operation?&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One may assume for simplicity the data is already on the MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;If each offload command uses all 240 virtual cores already, then there may not be much performance gains with multiple asynchronous offload computation commands.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;The idea is there may be many matrix operations but each matrix block is not that large that can saturate the MIC. If we can make multiple concurrent non-blocking offload operations, then this may be a way to make effective use of the MIC.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;This approach might &amp;nbsp;also be relevant to mapping computation and dependencies described as a Directed Acyclic Graph (DAG) to the MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&lt;FONT color="#000000" face="Calibri" size="2"&gt;&lt;SPAN style="line-height: normal;"&gt;&amp;nbsp;For example, launch&amp;nbsp; 12 concurrent threads on host, each thread perform asynchronous launches with different signals of &amp;nbsp;offload MKL BLAS using 20 (separate)&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri"&gt;&lt;SPAN style="line-height: normal;"&gt;hyper-thread&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri" size="2"&gt;&lt;SPAN style="line-height: normal;"&gt;&amp;nbsp;cores on MIC. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13px; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="font-size: 13px; color: rgb(0, 0, 0); font-family: Calibri; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Certainly we do NOT want all 12 concurrent threads to use the SAME 20 hyper-thread cores. &lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="font-size: 13px; color: rgb(0, 0, 0); font-family: Calibri; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Perhaps the runtime system on MIC will "do the right thing" in scheduling the work on idle or available cores with separate asynchronous offload computation launches with signals?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;In the Forum &amp;nbsp;there is an example to use multiple "-env MIC_KMP_AFFINITY" options for &amp;nbsp;mpiexec command &amp;nbsp;to associate or "pin" different MPI tasks with cores on the MIC but it is not clear to me how to achieve something similar with threads.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/360754" style="font-family: Calibri, sans-serif; font-size: 18px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;https://software.intel.com/en-us/forums/topic/360754&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 12 Jul 2014 16:26:30 GMT</pubDate>
    <dc:creator>Eduardo_D_1</dc:creator>
    <dc:date>2014-07-12T16:26:30Z</dc:date>
    <item>
      <title>multiple asynchronous computational kernel offload launches</title>
      <link>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998737#M29298</link>
      <description>&lt;P&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;In Nvidia CUDA, the Kepler GPU can support concurrent execution of 16 kernels.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One can use multiple streams to feed multiple kernels to the GPU and let the hardware schedule the work.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One can also use the grid dimension and block dimension in the kernel launch to roughly influence the amount of computing resources.&amp;nbsp; For example, one can use [1x1x1] grid [512x1x1] threads so that the kernel executes on a single SMX unit.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;I am wondering whether or how one might achieve something similar for the MIC.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Can multiple threads on the host issue separate non-blocking asynchronous offload computation commands with signals to run code or call MKL BLAS?&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Is there a way to influence the amount of computing resources in the offload MKL BLAS operation?&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;One may assume for simplicity the data is already on the MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;If each offload command uses all 240 virtual cores already, then there may not be much performance gains with multiple asynchronous offload computation commands.&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;" /&gt;
	&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;The idea is there may be many matrix operations but each matrix block is not that large that can saturate the MIC. If we can make multiple concurrent non-blocking offload operations, then this may be a way to make effective use of the MIC.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 13px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;This approach might &amp;nbsp;also be relevant to mapping computation and dependencies described as a Directed Acyclic Graph (DAG) to the MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&lt;FONT color="#000000" face="Calibri" size="2"&gt;&lt;SPAN style="line-height: normal;"&gt;&amp;nbsp;For example, launch&amp;nbsp; 12 concurrent threads on host, each thread perform asynchronous launches with different signals of &amp;nbsp;offload MKL BLAS using 20 (separate)&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri"&gt;&lt;SPAN style="line-height: normal;"&gt;hyper-thread&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri" size="2"&gt;&lt;SPAN style="line-height: normal;"&gt;&amp;nbsp;cores on MIC. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13px; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="font-size: 13px; color: rgb(0, 0, 0); font-family: Calibri; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Certainly we do NOT want all 12 concurrent threads to use the SAME 20 hyper-thread cores. &lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="orphans: auto; widows: auto;"&gt;&lt;SPAN style="font-size: 13px; color: rgb(0, 0, 0); font-family: Calibri; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;Perhaps the runtime system on MIC will "do the right thing" in scheduling the work on idle or available cores with separate asynchronous offload computation launches with signals?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;In the Forum &amp;nbsp;there is an example to use multiple "-env MIC_KMP_AFFINITY" options for &amp;nbsp;mpiexec command &amp;nbsp;to associate or "pin" different MPI tasks with cores on the MIC but it is not clear to me how to achieve something similar with threads.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/360754" style="font-family: Calibri, sans-serif; font-size: 18px; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"&gt;https://software.intel.com/en-us/forums/topic/360754&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Jul 2014 16:26:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998737#M29298</guid>
      <dc:creator>Eduardo_D_1</dc:creator>
      <dc:date>2014-07-12T16:26:30Z</dc:date>
    </item>
    <item>
      <title>I'm not clear on which</title>
      <link>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998738#M29299</link>
      <description>&lt;P&gt;I'm not clear on which comments of yours distinguish your question from previous discussions on this forum.&amp;nbsp; I don't know why you would use offload mode if "data is/are already on MIC," but maybe I don't understand your meaning.&lt;/P&gt;

&lt;P&gt;If running multiple simultaneous offload jobs, I would think you would use the MIC_KMP_PLACE_THREADS to reserve separate groups of cores for each, and also distribute evenly across cores in case less than 4 threads per core is optimum.&amp;nbsp; If the individual jobs aren't big enough to benefit from using all the cores, it would seem you might expect excessive overhead in launching them (with data on host), but maybe that's another matter.&amp;nbsp; In the case of MPI, MIC clearly supports efficiently at least 6 individual threaded processes pinned to distinct groups of cores.&lt;/P&gt;

&lt;P&gt;If you set each offload to a reasonable number of threads but don't set affinities for them, the scheduler will distribute them somewhat randomly, not taking advantage of cache locality, nor even spread work evenly across cores when not using 4 threads per core, if that's important.&lt;/P&gt;

&lt;P&gt;In the case of parallel instances of MKL BLAS, 4 threads per core are likely to be OK, but performance measured e.g. by Gflops isn't likely to approach what you could get with a single large problem using all of MIC RAM.&amp;nbsp; There is an MPI example like that in the Jeffers,Reinders book, but it was written up prior to the release of KMP_PLACE_THREADS, which makes it a bit easier.&lt;/P&gt;</description>
      <pubDate>Sat, 12 Jul 2014 17:32:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998738#M29299</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2014-07-12T17:32:32Z</dc:date>
    </item>
    <item>
      <title> </title>
      <link>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998739#M29300</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Dear Tim,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;My goal is concurrent asynchronous COMPUTATION offloads for overlapping multiple computations, not overlapping data transfer with offload computation. Thus my comment that assume all data is already on MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;In CUDA, it is also possible to launch 16 concurrent kernels for computation on the GPU device. &lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;OpenACC supports asynchronous kernel launches with signal tag.&lt;/SPAN&gt;&lt;/P&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;In CUBLAS, there is &amp;nbsp; cublasDgetrfBatched for computing LU factorization of many matrices and cublasDgetriBatched for triangular solves, say matrix size is 1024 and there are 200 real*8 matrices.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Each matrix size of 1024 is not sufficient large to make efficient use of all 236 virtual HT cores on the same &amp;nbsp;MIC. &amp;nbsp;Computing LU for multiple small matrices is just an example. &amp;nbsp;There may be other concurrent computations to build the matrices.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;For the Intel MIC, one may consider performing say 16 asynchronous offload computation launches (with&amp;nbsp;&lt;/SPAN&gt;signal tag in OpenMP loop)&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;to call MKL and setting say MIC_MKL_NUM_THREADS=12 to use &amp;nbsp;only 12 virtual HT cores on MIC to use a total of 16*12=192 virtual HT cores.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I would rather not run multiple MPI tasks on the single MIC.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Is such use of the MIC using multiple asynchronous concurrent offload computation possible and what would be a reasonable setting of the environment variables for AFFINITY and PLACEMENT? &amp;nbsp;If this is a known feature or use case, would you kindly point me to the appropriate documentation or example for multiple asynchronous offload computation on the same MIC?&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;

&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, 30 Oct 2014 14:02:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/multiple-asynchronous-computational-kernel-offload-launches/m-p/998739#M29300</guid>
      <dc:creator>Eduardo_D_1</dc:creator>
      <dc:date>2014-10-30T14:02:31Z</dc:date>
    </item>
  </channel>
</rss>

