<?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 I reproduced this error and in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938648#M16447</link>
    <description>&lt;P&gt;I reproduced this error and reported it to Development (internal tracking noted below) for further investigation and will update this thread as I learn more.&lt;/P&gt;
&lt;P&gt;(Internal tracking id: DPD200245751)&lt;/P&gt;</description>
    <pubDate>Sun, 30 Jun 2013 08:16:43 GMT</pubDate>
    <dc:creator>Kevin_D_Intel</dc:creator>
    <dc:date>2013-06-30T08:16:43Z</dc:date>
    <item>
      <title>Error with offloads from multiple threads causing crash</title>
      <link>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938647#M16446</link>
      <description>&lt;P&gt;I have found an error when trying to perform offloads from multiple threads running the host, leading to a crash. I have created some test code to replicate this error. In this code many threads are created on the host, and each of these makes offload calls repeatidly, waiting for a hundred milli-seconds before making another. This does not cause a problem until the number of threads reaches around 140-150, at which point the program crashes with the following error (sometimes printed 2-3 times):&lt;/P&gt;
&lt;P&gt;[plain]offload error: cannot create pipeline on the device 0 (error code 16)[/plain]&lt;/P&gt;
&lt;P&gt;If I split the offload transfers into two calls, first a: length(1) alloc_if(1) free_if(0) then, after a wait, use a: length(0) alloc_if(0) free_if(0) call it still fails, though if instead there is NO memory allocation in the offload, then no error and resultant crash occur.&lt;/P&gt;
&lt;P&gt;[cpp]static void *offload_thread ( void *data )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; float *test_data = (float *) malloc ( 1*sizeof(float) );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; while ( 1 )&lt;BR /&gt;&amp;nbsp; &amp;nbsp; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #pragma offload_transfer target(mic:0) in ( test_data : length(1) alloc_if(1) free_if(1) )&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; usleep ( 100000 );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; return NULL;&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;void thread_offload_test ( void )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; int NTHREADS = 200;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; int i;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; pthread_t off_thread[NTHREADS];&lt;BR /&gt;&amp;nbsp; &amp;nbsp; for ( i = 0; i &amp;lt; NTHREADS; i++ )&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pthread_create ( &amp;amp;off_thread&lt;I&gt;, NULL, offload_thread, NULL );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; while ( 1 );&lt;BR /&gt;}[/cpp]&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;Corey&lt;/P&gt;</description>
      <pubDate>Sat, 29 Jun 2013 14:53:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938647#M16446</guid>
      <dc:creator>Corey_P_</dc:creator>
      <dc:date>2013-06-29T14:53:51Z</dc:date>
    </item>
    <item>
      <title>I reproduced this error and</title>
      <link>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938648#M16447</link>
      <description>&lt;P&gt;I reproduced this error and reported it to Development (internal tracking noted below) for further investigation and will update this thread as I learn more.&lt;/P&gt;
&lt;P&gt;(Internal tracking id: DPD200245751)&lt;/P&gt;</description>
      <pubDate>Sun, 30 Jun 2013 08:16:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938648#M16447</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2013-06-30T08:16:43Z</dc:date>
    </item>
    <item>
      <title>The underlying issue related</title>
      <link>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938649#M16448</link>
      <description>&lt;P&gt;The underlying issue related to the maximum number of pipes allowed as per the COI_PIPELINE_MAX_PIPELINES setting of 128 in /usr/include/intel-coi/source/COIPipeline_source.h. With NTHREADS=200, this exceeded this limit and resulted in the offload run-time error.&lt;/P&gt;
&lt;P&gt;This setting was recently increased to 512 in the MPSS 3.1 release.&lt;/P&gt;</description>
      <pubDate>Wed, 06 Nov 2013 11:35:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Error-with-offloads-from-multiple-threads-causing-crash/m-p/938649#M16448</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2013-11-06T11:35:15Z</dc:date>
    </item>
  </channel>
</rss>

