<?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 Thank you very much i got it in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011915#M23369</link>
    <description>&lt;P&gt;Thank you very much i got it working. Final code listed below. I was using a two step compile and link in QT here is the final commands:&lt;/P&gt;

&lt;P&gt;icpc -c -fopenmp -qoffload-option,mic -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing -w1 -Wall -Wcheck -wd1572,873,2259,2261 -fPIE &amp;nbsp;-I/opt/Qt5.3.2/5.3/gcc_64/mkspecs/linux-icc-64 -I/home/eric-burke/Development/c++/Mic_IPP_Final -I. -o main.o /home/eric-burke/Development/c++/Mic_IPP_Final/main.cpp&lt;/P&gt;

&lt;P&gt;icpc -fopenmp -Wl,-rpath,/opt/Qt5.3.2/5.3/gcc_64 -o Mic_IPP_Final main.o &amp;nbsp; -qoffload-option,mic,link,-L/opt/intel/composer_xe_2015.0.090/ipp/lib/mic/\ -lipps\ -lippcore -L/opt/intel/composer_xe_2015.0.090/ipp/lib/intel64 -lipps -lippcore&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;


#pragma offload_attribute(push, target(mic))

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;omp.h&amp;gt;
#include &amp;lt;ipp.h&amp;gt;
#include &amp;lt;ipps.h&amp;gt;


void ipp_mic();
#pragma offload_attribute(pop)

__declspec(target(mic)) void ipp_mic(){
    int thread_count;
    int nsize = 10000;
    Ipp32f* a = ippsMalloc_32f(nsize);
    Ipp32f* b = ippsMalloc_32f(nsize);
    Ipp32f* c = ippsMalloc_32f(nsize);
    ippsVectorRamp_32f(a,nsize,0,1);
    ippsVectorRamp_32f(b,nsize,0,1);
    double start = omp_get_wtime();
    ippsMul_32f(a,b,c,nsize);
    double stop = omp_get_wtime();
    cout &amp;lt;&amp;lt; "Vector Call: " &amp;lt;&amp;lt; stop - start&amp;lt;&amp;lt; endl;

    thread_count = omp_get_num_threads();
    thread_count = omp_get_num_threads();
    int nleng = nsize/thread_count;
    if(omp_get_thread_num()==thread_count);
        nleng = nsize - (nleng*thread_count);

    start = omp_get_wtime();
        #pragma omp parallel
        {

            ippsMul_32f(a,b,c,nleng);
        }

    stop = omp_get_wtime();
    cout &amp;lt;&amp;lt; "Vector Call: " &amp;lt;&amp;lt; stop - start&amp;lt;&amp;lt; endl;
    #pragma omp parallel
    {
        #pragma omp single
        thread_count = omp_get_num_threads();

    }
    cout &amp;lt;&amp;lt; "Thread count: " &amp;lt;&amp;lt; thread_count &amp;lt;&amp;lt; endl;





    cout&amp;lt;&amp;lt;c[nsize-1]&amp;lt;&amp;lt;endl;
}


int main()
{
    #pragma offload target(mic)
    ipp_mic();
}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 08 Dec 2014 21:05:12 GMT</pubDate>
    <dc:creator>Eric_B_1</dc:creator>
    <dc:date>2014-12-08T21:05:12Z</dc:date>
    <item>
      <title>MIC - Many Integrated Core Offloading</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011903#M23357</link>
      <description>&lt;P&gt;I am haveing trouble compiling a program that offloads ipp function to the mic. I just need something simple like this:&lt;/P&gt;

&lt;P&gt;What linking and compiling options need to be enabled?&lt;/P&gt;

&lt;P&gt;Currently it just says:&lt;/P&gt;

&lt;P&gt;error: undefined reference to `ippsMul_32f'&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 10.3999996185303px; line-height: 12.3473653793335px;"&gt;&amp;lt;pre class="brush:&lt;/SPAN&gt;&lt;EM class="placeholder" style="font-size: 10.3999996185303px; line-height: 12.3473653793335px;"&gt;cpp"&lt;/EM&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 10.3999996185303px; line-height: 12.3473653793335px;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(255, 255, 85);"&gt;double&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;mult_mic_ipp&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;(&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(255, 255, 85);"&gt;float&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;*&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;a&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;,&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(255, 255, 85);"&gt;float&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;*&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;b&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;,&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(255, 255, 85);"&gt;float&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;*&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;c&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;,&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(255, 255, 85);"&gt;int&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5;"&gt;nsize&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;{&lt;/P&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;&lt;SPAN style=" color:#ffff55;"&gt;double&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;start&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;=&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#ff55ff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;&lt;SPAN style=" color:#ffff55;"&gt;double&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;stop&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;=&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#ff55ff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;&lt;SPAN style=" color:#ffff55;"&gt;int&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;numt&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;=&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#ff55ff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;
&amp;nbsp;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#5555ff;"&gt;#pragma&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;offload&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;target&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;(mic)&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;in(a,b:length(nsize))&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;out(c:length(nsize))&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;inout(start,stop,numt)&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;{&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;start&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;=&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;omp_get_wtime&lt;SPAN style=" color:#aaaaaa;"&gt;();&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;ippsMul_32f&lt;SPAN style=" color:#aaaaaa;"&gt;(&lt;/SPAN&gt;a&lt;SPAN style=" color:#aaaaaa;"&gt;,&lt;/SPAN&gt;b&lt;SPAN style=" color:#aaaaaa;"&gt;,&lt;/SPAN&gt;c&lt;SPAN style=" color:#aaaaaa;"&gt;,&lt;/SPAN&gt;nsize&lt;SPAN style=" color:#aaaaaa;"&gt;);&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt;    &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;stop&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;=&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5; color: rgb(192, 192, 192);"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;omp_get_wtime&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5; color: rgb(170, 170, 170);"&gt;();&lt;/SPAN&gt;
&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#c0c0c0;"&gt;    &lt;/SPAN&gt;&lt;SPAN style=" color:#ffff55;"&gt;return&lt;/SPAN&gt;&lt;SPAN style=" color:#c0c0c0;"&gt; &lt;/SPAN&gt;stop&lt;SPAN style=" color:#aaaaaa;"&gt;-&lt;/SPAN&gt;start&lt;SPAN style=" color:#aaaaaa;"&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;

&lt;PRE style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;}&lt;/SPAN&gt;&lt;!--EndFragment--&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;SPAN style=" color:#aaaaaa;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Consolas, 'Lucida Console', Menlo, Monaco, 'DejaVu Sans Mono', monospace, sans-serif; font-size: 10.3999996185303px; line-height: 12.3473653793335px;"&gt;/pre&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Dec 2014 16:52:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011903#M23357</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-04T16:52:41Z</dc:date>
    </item>
    <item>
      <title>So i found this: https:/</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011904#M23358</link>
      <description>&lt;P&gt;So i found this: &lt;A href="https://software.intel.com/en-us/node/503902" style="font-size: 1em; line-height: 1.5;"&gt;https://software.intel.com/en-us/node/503902&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;But it does not work i keep getting&amp;nbsp;bash: IPPROOT: command not found...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Dec 2014 21:23:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011904#M23358</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-04T21:23:29Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011905#M23359</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Please take a look on &lt;STRONG&gt;ipp_thread_mic&amp;nbsp;&lt;/STRONG&gt;example (there are both linux and windows versions). It has makefile inside where you can find real command lines for linker and compiler.&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;Short answer - you should use &lt;/SPAN&gt;&lt;STRONG style="font-size: 1em; line-height: 1.5;"&gt;-qoffload-option,mic,link,"$(IPP_LIBS)"&lt;/STRONG&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;compiler option. This will add IPP libraries to linker stage and &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;resolve &lt;/SPAN&gt;&lt;SPAN style="line-height: 19.5120010375977px;"&gt;error with &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;undefined reference.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 09:53:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011905#M23359</guid>
      <dc:creator>Anton_S_Intel</dc:creator>
      <dc:date>2014-12-05T09:53:54Z</dc:date>
    </item>
    <item>
      <title>I have looked at that example</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011906#M23360</link>
      <description>&lt;P&gt;I have looked at that example and it does not compile on my machine either again failing at the linking stage. I am on linux composer xe 2015.0.090.&lt;/P&gt;

&lt;P&gt;Here is the out put&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;mkdir -p build
make -C ../common -f Makefile_mic.lin
make[1]: Entering directory `/opt/intel/composer_xe_2015.0.090/ipp/examples/examples/common'
mkdir -p build_mic
ar -rcs build_mic/common.a build_mic/vm_thread.o build_mic/vm_base.o build_mic/base_renderer.o build_mic/base.o build_mic/base_window_win.o build_mic/base_window_glx.o build_mic/base_image.o build_mic/base_image_bmp.o
make[1]: Leaving directory `/opt/intel/composer_xe_2015.0.090/ipp/examples/examples/common'
icpc -Qoption,link,"--no-undefined" build/ipp_thread_mic.o -o build/ipp_thread_mic ../common/build_mic/common.a -qoffload-option,mic,link,"-L/opt/intel/composer_xe_2015.0.090/ipp/lib/mic -lippcore -lippi -lipps -lippvm -lpthread"
/tmp/icpcMICpIBpIp: In function `main':
src/ipp_thread_mic.cpp:(.text+0xa52): undefined reference to `Image::~Image()'
src/ipp_thread_mic.cpp:(.text+0xa5f): undefined reference to `Image::~Image()'
src/ipp_thread_mic.cpp:(.text+0xa69): undefined reference to `DString::~DString()'&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 13:14:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011906#M23360</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-05T13:14:47Z</dc:date>
    </item>
    <item>
      <title>Confirm, this package has</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011907#M23361</link>
      <description>&lt;P&gt;Confirm, this package has known issue in MIC example, sorry! Example was fixed in next version IPP 8.2.1.&lt;/P&gt;

&lt;P&gt;Please, try this workaround - in file &amp;nbsp;&lt;STRONG&gt;ipp_thread_mic/src/ipp_thread_mic.cpp&lt;/STRONG&gt;&amp;nbsp;wrap function main() like this:&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#if !defined(__MIC__)
int main(int argc, char *argv[])
…
}
#endif
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 13:39:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011907#M23361</guid>
      <dc:creator>Anton_S_Intel</dc:creator>
      <dc:date>2014-12-05T13:39:11Z</dc:date>
    </item>
    <item>
      <title>That fixed it thanks. I was</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011908#M23362</link>
      <description>&lt;P&gt;That fixed it thanks. I was going to update to 8.1 but im on centos 7 and the installer reported unsupported os? Is there a work around on the installer?&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 14:07:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011908#M23362</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-05T14:07:20Z</dc:date>
    </item>
    <item>
      <title>Sorry not fixed. Running the</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011909#M23363</link>
      <description>&lt;P&gt;Sorry not fixed. Running the program reports&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;./ipp_thread_mic 
offload error: cannot find offload entry __offload_entry_ipp_thread_mic_cpp_921mainicpc259572409Z5Tmie
offload error: process on the device 0 unexpectedly exited with code 1
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 14:08:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011909#M23363</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-05T14:08:48Z</dc:date>
    </item>
    <item>
      <title>Quote:Eric B. wrote:</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011910#M23364</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Eric B. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I have looked at that example and it does not compile on my machine either again failing at the linking stage. I am on linux composer xe 2015.0.090.&lt;/P&gt;

&lt;P&gt;Here is the out put&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;mkdir -p build
make -C ../common -f Makefile_mic.lin
make[1]: Entering directory `/opt/intel/composer_xe_2015.0.090/ipp/examples/examples/common'
mkdir -p build_mic
ar -rcs build_mic/common.a build_mic/vm_thread.o build_mic/vm_base.o build_mic/base_renderer.o build_mic/base.o build_mic/base_window_win.o build_mic/base_window_glx.o build_mic/base_image.o build_mic/base_image_bmp.o
make[1]: Leaving directory `/opt/intel/composer_xe_2015.0.090/ipp/examples/examples/common'
icpc -Qoption,link,"--no-undefined" build/ipp_thread_mic.o -o build/ipp_thread_mic ../common/build_mic/common.a -qoffload-option,mic,link,"-L/opt/intel/composer_xe_2015.0.090/ipp/lib/mic -lippcore -lippi -lipps -lippvm -lpthread"
/tmp/icpcMICpIBpIp: In function `main':
src/ipp_thread_mic.cpp:(.text+0xa52): undefined reference to `Image::~Image()'
src/ipp_thread_mic.cpp:(.text+0xa5f): undefined reference to `Image::~Image()'
src/ipp_thread_mic.cpp:(.text+0xa69): undefined reference to `DString::~DString()'&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi Eric,&lt;/P&gt;

&lt;P&gt;This was a problem&amp;nbsp;in icl compiler of version 14.x. In 15-th compiler is should be fixed. Could you provide the exact version of icl compiler that you use (just "icl -V" output)? I'll check.&lt;/P&gt;

&lt;P&gt;Regarding your last issue with offload compiler message, it means that the offload run-time library&amp;nbsp;can't find the&amp;nbsp;function "main".&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 15:15:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011910#M23364</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2014-12-05T15:15:45Z</dc:date>
    </item>
    <item>
      <title>Im on linux so i assume that</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011911#M23365</link>
      <description>&lt;P&gt;Im on linux so i assume that you mean icc but here is the output. Yes is is compiling now but not running.&lt;/P&gt;

&lt;P&gt;Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.0.090 Build 20140723&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Dec 2014 16:13:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011911#M23365</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-05T16:13:43Z</dc:date>
    </item>
    <item>
      <title>Hi Eric,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011912#M23366</link>
      <description>&lt;P&gt;Hi Eric,&lt;/P&gt;

&lt;P&gt;In fact, in package 090 there is a problem with compiler&amp;nbsp;in generation of C++ destructors in offload part.&amp;nbsp;I have found a workaround in&amp;nbsp;internal e-mailing. Add "-openmp" option to compilation command:&lt;/P&gt;

&lt;P&gt;CXXFLAGS&amp;nbsp;&amp;nbsp; := -c -O2 -DUSE_MIC -qopt-report-phase:offload -openmp&lt;/P&gt;

&lt;P&gt;in Makefile. I have just checked this workaround, it works. There's a small test to see if problem is still in compiler (below). Build and run it with commands:&lt;BR /&gt;
	$ icpc test.cpp&lt;BR /&gt;
	$ ./a.out&lt;BR /&gt;
	or, if it fails during link&lt;BR /&gt;
	$ icpc -openmp test.cpp&lt;BR /&gt;
	$ ./a.out&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;//------------------ 
#include &amp;lt;stdio.h&amp;gt; 

class TestObject { 
public: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; TestObject() { printf("Local object created!\n"); } 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ~TestObject() { printf("Local object destroyed!\n"); } 
}; 

#pragma offload_attribute(push, target(mic)) 
#include &amp;lt;stdio.h&amp;gt; 
class MicObject { 
public: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; MicObject() { printf("MIC object created!\n"); fflush(0); } 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ~MicObject() { printf("MIC object destroyed!\n"); fflush(0); } 
}; 
#pragma offload_attribute(pop) 

__declspec(target(mic)) MicObject* pMicObject = 0; 

template&amp;lt;class T&amp;gt; 
__declspec(target(mic)) void Create() 
{ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pMicObject = new T; 
} 

__declspec(target(mic)) void Create() 
{ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Create&amp;lt;MicObject&amp;gt;(); 
} 

__declspec(target(mic)) void Destroy() 
{ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pMicObject; 
} 

int main() 
{ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; TestObject cpu_object; 
#pragma offload target(mic) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Create(); 
#pragma offload target(mic) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Destroy(); 
} 
//----------------- 
&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 Dec 2014 08:34:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011912#M23366</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2014-12-08T08:34:44Z</dc:date>
    </item>
    <item>
      <title>Yes this code compiles and</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011913#M23367</link>
      <description>&lt;P&gt;Yes this code compiles and works we are getting closer to what i want which is to offload IPP. But this fails to compile saying undefined reference to all things ipp. Do i need to upgrade to update 1? Will that fix the issue.&lt;/P&gt;

&lt;P&gt;I tried to compile with this but it didn't help:&lt;/P&gt;

&lt;P&gt;-c -O2 -DUSE_MIC -qopt-report-phase:offload -openmp -lippcore -lippi -lipps -lippvm -lpthread&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;


#pragma offload_attribute(push, target(mic))

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;omp.h&amp;gt;
#include &amp;lt;ipp.h&amp;gt;
#include &amp;lt;ipps.h&amp;gt;


void ipp_mic();
#pragma offload_attribute(pop)

__declspec(target(mic)) void ipp_mic(){
    int thread_count;

    #pragma omp parallel
    {
        #pragma omp single
        thread_count = omp_get_num_threads();
    }
    cout &amp;lt;&amp;lt; "Thread count: " &amp;lt;&amp;lt; thread_count &amp;lt;&amp;lt; endl;

    Ipp32f* f = ippsMalloc_32f(100);
    ippsVectorRamp_32f(f,100,0,1);
}


int main()
{
    #pragma offload target(mic)
    ipp_mic();
}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Dec 2014 14:38:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011913#M23367</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-08T14:38:27Z</dc:date>
    </item>
    <item>
      <title>Your example can be compiled</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011914#M23368</link>
      <description>&lt;P&gt;Your example can be compiled and works with the following command line:&lt;/P&gt;

&lt;P&gt;$ echo $IPPROOT&lt;BR /&gt;
	/opt/intel/composer_xe_2015.0.090/ipp&lt;BR /&gt;
	$&amp;nbsp;icc -I$IPPROOT/include&amp;nbsp; -O2&amp;nbsp;-openmp test.cpp -qoffload-option,mic,link,"-L$IPPROOT/lib/mic -lipps -lippcore" -L$IPPROOT/lib/intel64 -lipps -lippcore&lt;BR /&gt;
	$ ./a.out&lt;BR /&gt;
	Thread count: 240&lt;BR /&gt;
	$&lt;/P&gt;

&lt;P&gt;Looks like compiler needs both MIC libs and host CPU libs, probably to use CPU path as a fallback if MIC is not available.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Dec 2014 15:03:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011914#M23368</guid>
      <dc:creator>Sergey_K_Intel</dc:creator>
      <dc:date>2014-12-08T15:03:08Z</dc:date>
    </item>
    <item>
      <title>Thank you very much i got it</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011915#M23369</link>
      <description>&lt;P&gt;Thank you very much i got it working. Final code listed below. I was using a two step compile and link in QT here is the final commands:&lt;/P&gt;

&lt;P&gt;icpc -c -fopenmp -qoffload-option,mic -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing -w1 -Wall -Wcheck -wd1572,873,2259,2261 -fPIE &amp;nbsp;-I/opt/Qt5.3.2/5.3/gcc_64/mkspecs/linux-icc-64 -I/home/eric-burke/Development/c++/Mic_IPP_Final -I. -o main.o /home/eric-burke/Development/c++/Mic_IPP_Final/main.cpp&lt;/P&gt;

&lt;P&gt;icpc -fopenmp -Wl,-rpath,/opt/Qt5.3.2/5.3/gcc_64 -o Mic_IPP_Final main.o &amp;nbsp; -qoffload-option,mic,link,-L/opt/intel/composer_xe_2015.0.090/ipp/lib/mic/\ -lipps\ -lippcore -L/opt/intel/composer_xe_2015.0.090/ipp/lib/intel64 -lipps -lippcore&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;


#pragma offload_attribute(push, target(mic))

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;omp.h&amp;gt;
#include &amp;lt;ipp.h&amp;gt;
#include &amp;lt;ipps.h&amp;gt;


void ipp_mic();
#pragma offload_attribute(pop)

__declspec(target(mic)) void ipp_mic(){
    int thread_count;
    int nsize = 10000;
    Ipp32f* a = ippsMalloc_32f(nsize);
    Ipp32f* b = ippsMalloc_32f(nsize);
    Ipp32f* c = ippsMalloc_32f(nsize);
    ippsVectorRamp_32f(a,nsize,0,1);
    ippsVectorRamp_32f(b,nsize,0,1);
    double start = omp_get_wtime();
    ippsMul_32f(a,b,c,nsize);
    double stop = omp_get_wtime();
    cout &amp;lt;&amp;lt; "Vector Call: " &amp;lt;&amp;lt; stop - start&amp;lt;&amp;lt; endl;

    thread_count = omp_get_num_threads();
    thread_count = omp_get_num_threads();
    int nleng = nsize/thread_count;
    if(omp_get_thread_num()==thread_count);
        nleng = nsize - (nleng*thread_count);

    start = omp_get_wtime();
        #pragma omp parallel
        {

            ippsMul_32f(a,b,c,nleng);
        }

    stop = omp_get_wtime();
    cout &amp;lt;&amp;lt; "Vector Call: " &amp;lt;&amp;lt; stop - start&amp;lt;&amp;lt; endl;
    #pragma omp parallel
    {
        #pragma omp single
        thread_count = omp_get_num_threads();

    }
    cout &amp;lt;&amp;lt; "Thread count: " &amp;lt;&amp;lt; thread_count &amp;lt;&amp;lt; endl;





    cout&amp;lt;&amp;lt;c[nsize-1]&amp;lt;&amp;lt;endl;
}


int main()
{
    #pragma offload target(mic)
    ipp_mic();
}&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Dec 2014 21:05:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/MIC-Many-Integrated-Core-Offloading/m-p/1011915#M23369</guid>
      <dc:creator>Eric_B_1</dc:creator>
      <dc:date>2014-12-08T21:05:12Z</dc:date>
    </item>
  </channel>
</rss>

