<?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 Phtrhead + offload in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Phtrhead-offload/m-p/1061259#M54201</link>
    <description>&lt;P&gt;Hi I create a new thread and lanch offload code in this thread but I get this error code&lt;/P&gt;

&lt;P&gt;offload error: cannot get function handles on the device 8117264 (error code 14)&lt;BR /&gt;
	The code likes as followings:&lt;/P&gt;

&lt;P&gt;host code&lt;/P&gt;

&lt;P&gt;&amp;nbsp; if (pthread_create(&amp;amp;d_thread, NULL, RunDevice, d_data))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nCannot create device thread!\n");&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;thread code&lt;/P&gt;

&lt;P&gt;void *RunDevice(void *ptr)&lt;BR /&gt;
	{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; //Allocate memory in Phi&lt;BR /&gt;
	&amp;nbsp;#pragma offload_transfer target(mic:0) in(udata:length(2*height*width) ALLOC)&lt;BR /&gt;
	&amp;nbsp;#pragma offload_transfer target(mic:0) in(fdata:length(DATASEGMENT*height*width) ALLOC)&lt;BR /&gt;
	&amp;nbsp; printf("here4\n");&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; double t0 = WhenCPU();&lt;BR /&gt;
	&amp;nbsp; #pragma offload target(mic:0) nocopy(udata:length(2*width*height) REUSE) nocopy(fdata:length(DATASEGMENT*width*height) REUSE)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tvdenoise_d(udata,fdata,width, height, mu, lambda, outerIter);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;
	&amp;nbsp; double t00 = WhenCPU();&lt;BR /&gt;
	&amp;nbsp; printf("First running time = %f\n", t00 - t0);&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;what happens?&lt;/P&gt;</description>
    <pubDate>Sat, 31 Jan 2015 01:49:08 GMT</pubDate>
    <dc:creator>Chen__Xin</dc:creator>
    <dc:date>2015-01-31T01:49:08Z</dc:date>
    <item>
      <title>Phtrhead + offload</title>
      <link>https://community.intel.com/t5/Software-Archive/Phtrhead-offload/m-p/1061259#M54201</link>
      <description>&lt;P&gt;Hi I create a new thread and lanch offload code in this thread but I get this error code&lt;/P&gt;

&lt;P&gt;offload error: cannot get function handles on the device 8117264 (error code 14)&lt;BR /&gt;
	The code likes as followings:&lt;/P&gt;

&lt;P&gt;host code&lt;/P&gt;

&lt;P&gt;&amp;nbsp; if (pthread_create(&amp;amp;d_thread, NULL, RunDevice, d_data))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nCannot create device thread!\n");&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;P&gt;thread code&lt;/P&gt;

&lt;P&gt;void *RunDevice(void *ptr)&lt;BR /&gt;
	{&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; //Allocate memory in Phi&lt;BR /&gt;
	&amp;nbsp;#pragma offload_transfer target(mic:0) in(udata:length(2*height*width) ALLOC)&lt;BR /&gt;
	&amp;nbsp;#pragma offload_transfer target(mic:0) in(fdata:length(DATASEGMENT*height*width) ALLOC)&lt;BR /&gt;
	&amp;nbsp; printf("here4\n");&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; double t0 = WhenCPU();&lt;BR /&gt;
	&amp;nbsp; #pragma offload target(mic:0) nocopy(udata:length(2*width*height) REUSE) nocopy(fdata:length(DATASEGMENT*width*height) REUSE)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tvdenoise_d(udata,fdata,width, height, mu, lambda, outerIter);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;
	&amp;nbsp; double t00 = WhenCPU();&lt;BR /&gt;
	&amp;nbsp; printf("First running time = %f\n", t00 - t0);&lt;/P&gt;

&lt;P&gt;}&lt;/P&gt;

&lt;P&gt;what happens?&lt;/P&gt;</description>
      <pubDate>Sat, 31 Jan 2015 01:49:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Phtrhead-offload/m-p/1061259#M54201</guid>
      <dc:creator>Chen__Xin</dc:creator>
      <dc:date>2015-01-31T01:49:08Z</dc:date>
    </item>
    <item>
      <title>This looks like a pthread</title>
      <link>https://community.intel.com/t5/Software-Archive/Phtrhead-offload/m-p/1061260#M54202</link>
      <description>&lt;P&gt;This looks like a pthread issue on the host.&lt;/P&gt;

&lt;P&gt;Insert #if 0...#endif in the body of your RunDevice (and anywhere else you have offloads).&lt;/P&gt;

&lt;P&gt;Essentially conditionalize out all the MIC code.&lt;/P&gt;

&lt;P&gt;Then compile the program, and see if you get the same error. If you do then you are likely linking in the wrong library.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Sat, 31 Jan 2015 13:56:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Phtrhead-offload/m-p/1061260#M54202</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2015-01-31T13:56:43Z</dc:date>
    </item>
  </channel>
</rss>

