<?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 &amp;gt;&amp;gt;...is there a selection in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921613#M15764</link>
    <description>&amp;gt;&amp;gt;...is there a selection between threaded and non-threaded at all?

I think yes:
...
/* ////////////////////////////////////////////////////////////////////////////
//  Name:       ippSetNumThreads
//
//  Purpose:
//
//  Return:
//    ippStsNoErr              Ok
//    ippStsNoOperation   &lt;STRONG&gt;For static library internal threading is not supported&lt;/STRONG&gt;
//    ippStsSizeErr            Desired number of threads less or equal zero
//
//  Arguments:
//    numThr                   Desired number of threads
*/
IPPAPI( IppStatus, &lt;STRONG&gt;ippSetNumThreads&lt;/STRONG&gt;, ( int numThr ) )
...

If you call &lt;STRONG&gt;ippSetNumThreads( 1 )&lt;/STRONG&gt; then processing has to be single-threaded.</description>
    <pubDate>Mon, 01 Jul 2013 15:09:02 GMT</pubDate>
    <dc:creator>SergeyKostrov</dc:creator>
    <dc:date>2013-07-01T15:09:02Z</dc:date>
    <item>
      <title>Multiple Custom DLL static-threaded: how to link to ippcore?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921607#M15758</link>
      <description>&lt;P&gt;I have a project with a front DLL with common code and a CPU dispatcher, and then a set of custom DLL's, one for each CPU flavor.&lt;/P&gt;
&lt;P&gt;The front DLL is called single-threadedly from an application.&lt;/P&gt;
&lt;P&gt;One function in the front DLL is the IPP Jpeg Codec, which is threaded.&lt;BR /&gt;The Jpeg Codec in the front DLL calls IPP functions in the custom DLL of the currently loaded CPU flavor.&lt;/P&gt;
&lt;P&gt;The openmp support DLL "libiomp5md.dll" is linked to dynamically, so my front DLL and my CPU DLL both use it.&lt;/P&gt;
&lt;P&gt;But what about ippcore? Since I link to static-threaded, I specify ippcore_t.lib, both in the front DLL and in each CPU DLL.&lt;BR /&gt;But then the front DLL will implement its own ippcore and the CPU DLL also its own. Shouldn't those use the same ippcore, and then I must specify not ippcore_t.lib (static) but ippcore.lib (dynamic) ?&lt;/P&gt;
&lt;P&gt;Who kowns about this difference of ippcore usage?&lt;/P&gt;</description>
      <pubDate>Fri, 14 Jun 2013 15:44:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921607#M15758</guid>
      <dc:creator>Thomas_Jensen1</dc:creator>
      <dc:date>2013-06-14T15:44:15Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;But then the front DLL will</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921608#M15759</link>
      <description>&amp;gt;&amp;gt;But then the front DLL will implement its own ippcore and the CPU DLL also its own. Shouldn't those use the same ippcore, and
&amp;gt;&amp;gt;then I must specify not ippcore_t.lib (static) but ippcore.lib (dynamic)?..

Of course, some differences are possible between codes in the Dynamic Link Library ( ippcore.dll ) and the Static Link Library ( ippcore_t.lib ). However, only intensive testing could answer your question about differences and I would expect for 99.99% everything will work properly. If you find some issue(s) simply report for investigation.</description>
      <pubDate>Fri, 21 Jun 2013 00:59:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921608#M15759</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-06-21T00:59:00Z</dc:date>
    </item>
    <item>
      <title>Hi Thomas,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921609#M15760</link>
      <description>&lt;P&gt;Hi Thomas,&lt;/P&gt;
&lt;P&gt;the most correct way is to use 1 instance of ippCore - so you should link it dynamically. ippCore has internally several global vars such as current index for dispatcher, cpu_features, enabled_cpu_features, may be something else. Imagine that when ippCore is linked statically to each your dll, imagine that in one dll you call ippInit and not in other - you'll have different cpu dispatched in each dll. each instance of ippCore will have it's own state because it has its own independent data segment.&lt;/P&gt;
&lt;P&gt;Regards, Igor&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jun 2013 07:10:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921609#M15760</guid>
      <dc:creator>Igor_A_Intel</dc:creator>
      <dc:date>2013-06-21T07:10:14Z</dc:date>
    </item>
    <item>
      <title>I understand that linking to</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921610#M15761</link>
      <description>&lt;P&gt;I understand that linking to a single instance of ippcore is the proper way.&lt;/P&gt;
&lt;P&gt;One question, since there are both ippcore_t.lib (threaded) and ippcore_l.lib (unthreaded), implying a difference in threading, then how do I "tell" ippcore.lib (dynamic) that I want threaded code? (well, apart from calling setnumsthreads of course!)&lt;/P&gt;
&lt;P&gt;Just so you understand: I use my own dispatcher, not the one in ippcore (to get a much smaller subset).&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jun 2013 08:14:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921610#M15761</guid>
      <dc:creator>Thomas_Jensen1</dc:creator>
      <dc:date>2013-06-21T08:14:55Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...then how do I "tell"</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921611#M15762</link>
      <description>&amp;gt;&amp;gt;...then how do I "tell" ippcore.lib (dynamic) that I want threaded code?..

I think it depends on used linking model and it is related to /Qipp compiler option ( of course, Not related to /MD or /MT options ).</description>
      <pubDate>Sat, 29 Jun 2013 04:40:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921611#M15762</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-06-29T04:40:45Z</dc:date>
    </item>
    <item>
      <title>For argument's sake, when</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921612#M15763</link>
      <description>&lt;P&gt;For argument's sake, when using dynamic linking (ippcore.lib), and then ippcore71.dll and all the other waterfall dlls, is there a selection between threaded and non-threaded at all?&lt;/P&gt;
&lt;P&gt;I see there is for static linking.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 14:42:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921612#M15763</guid>
      <dc:creator>Thomas_Jensen1</dc:creator>
      <dc:date>2013-07-01T14:42:58Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...is there a selection</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921613#M15764</link>
      <description>&amp;gt;&amp;gt;...is there a selection between threaded and non-threaded at all?

I think yes:
...
/* ////////////////////////////////////////////////////////////////////////////
//  Name:       ippSetNumThreads
//
//  Purpose:
//
//  Return:
//    ippStsNoErr              Ok
//    ippStsNoOperation   &lt;STRONG&gt;For static library internal threading is not supported&lt;/STRONG&gt;
//    ippStsSizeErr            Desired number of threads less or equal zero
//
//  Arguments:
//    numThr                   Desired number of threads
*/
IPPAPI( IppStatus, &lt;STRONG&gt;ippSetNumThreads&lt;/STRONG&gt;, ( int numThr ) )
...

If you call &lt;STRONG&gt;ippSetNumThreads( 1 )&lt;/STRONG&gt; then processing has to be single-threaded.</description>
      <pubDate>Mon, 01 Jul 2013 15:09:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Multiple-Custom-DLL-static-threaded-how-to-link-to-ippcore/m-p/921613#M15764</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-01T15:09:02Z</dc:date>
    </item>
  </channel>
</rss>

