<?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 Also, I don't see how the in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937378#M17345</link>
    <description>&lt;P&gt;Also, I don't see how the mentioned issue is related to the issue I am having...&lt;/P&gt;</description>
    <pubDate>Mon, 22 Apr 2013 15:19:09 GMT</pubDate>
    <dc:creator>Gregory_C_</dc:creator>
    <dc:date>2013-04-22T15:19:09Z</dc:date>
    <item>
      <title>IPP initialization issue with .NET</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937374#M17341</link>
      <description>When I run this code, 7 is written to the console (SSE 2 is enabled).  If I run some FFT methods and re-run initialization, I get 3295 (SSE 4.2).  What can I do to get consistent results from this API?

I am using .NET 4.0 with P/Invoke signatures for all methods used below:

   class Program
   {
      static void Main(string[] args)
      {
         IppCpuType cpuType = core.ippGetCpuType();
         core.ippInitCpu(cpuType);
         if (cpuType == IppCpuType.ippCpuAVX)
            core.ippEnableCpu(cpuType);

         core.ippInit();

         ulong features = core.ippGetEnabledCpuFeatures();

         Console.WriteLine(features);
      }
   }

Thank you,
Greg Chernis</description>
      <pubDate>Fri, 19 Apr 2013 15:41:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937374#M17341</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-19T15:41:45Z</dc:date>
    </item>
    <item>
      <title>As far as I know there is an</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937375#M17342</link>
      <description>As far as I know there is an issue with &lt;STRONG&gt;ippInit&lt;/STRONG&gt; function ( a bug was detected several days ago ). What instruction set do you want to use, SSE2 or SSE4?</description>
      <pubDate>Sat, 20 Apr 2013 01:16:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937375#M17342</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-20T01:16:01Z</dc:date>
    </item>
    <item>
      <title>This is a follow up and</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937376#M17343</link>
      <description>This is a follow up and please take a look at:

Forum Topic: &lt;STRONG&gt;Load and Unload issues with Waterfall DLLs ( Instruction Set specific )&lt;/STRONG&gt;
Web-link: software.intel.com/en-us/forums/topic/385488</description>
      <pubDate>Sat, 20 Apr 2013 01:36:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937376#M17343</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-20T01:36:52Z</dc:date>
    </item>
    <item>
      <title>Hello Sergey,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937377#M17344</link>
      <description>&lt;P&gt;Hello Sergey,&lt;/P&gt;
&lt;P&gt;I have access to Westmere and Sandy Bridge Xeon-based machines. I'd like to use SSE 4.2 or AVX, whichever is available.&lt;/P&gt;
&lt;P&gt;Thank you,&lt;/P&gt;
&lt;P&gt;-Greg Chernis&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2013 13:56:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937377#M17344</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-22T13:56:04Z</dc:date>
    </item>
    <item>
      <title>Also, I don't see how the</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937378#M17345</link>
      <description>&lt;P&gt;Also, I don't see how the mentioned issue is related to the issue I am having...&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2013 15:19:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937378#M17345</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-22T15:19:09Z</dc:date>
    </item>
    <item>
      <title>Hi Gregory,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937379#M17346</link>
      <description>Hi Gregory,

&amp;gt;&amp;gt;...If I run some FFT methods and re-run initialization, I get &lt;STRONG&gt;3295&lt;/STRONG&gt; (SSE 4.2).

I checked &lt;STRONG&gt;ippdefs.h&lt;/STRONG&gt; header:
...
typedef enum {
...
    ippCpuSSE42 = 0x45, /* Processor supports Streaming SIMD Extensions 4.2 instruction set    */
    ippCpuAVX = 0x46, /* Processor supports Advanced Vector Extensions instruction set       */
...
} &lt;STRONG&gt;IppCpuType&lt;/STRONG&gt;;
...
and I don't see any code / number that matches to &lt;STRONG&gt;3295&lt;/STRONG&gt;. So, could you explain how did you get it?

&amp;gt;&amp;gt;...What can I do to get consistent results from this API?

Ideally, I would use initialization ( with &lt;STRONG&gt;ippInit&lt;/STRONG&gt; ) at the &lt;STRONG&gt;beginning&lt;/STRONG&gt; and would not do re-initialization until all processing is completed. I'd like to understand why do you need to re-initialize IPP libraries after some processing is done?</description>
      <pubDate>Tue, 23 Apr 2013 00:14:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937379#M17346</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-23T00:14:01Z</dc:date>
    </item>
    <item>
      <title>IPP Architecture Reference</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937380#M17347</link>
      <description>&lt;P&gt;IPP Architecture Reference Manual, Volume 1 talks about GetEnabledCpuFeatures() as a method that returns a set of flags, also described in ippcore.h.&amp;nbsp; They are the same flags as in GetCpuFeatures().&amp;nbsp; 3295 or CDF (Hexadecimal) has the bit for SSE 4.2 set.&amp;nbsp; That's how I know that all is well.&amp;nbsp; It appears that I can get 7 (represents SSE 2 only) right after initialization, but things get better (SSE 4.2) when I run initialization code again.&lt;BR /&gt;&lt;BR /&gt;Thanks for looking at this with me,&lt;BR /&gt;&lt;BR /&gt;-Greg&lt;/P&gt;</description>
      <pubDate>Fri, 26 Apr 2013 14:04:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937380#M17347</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-26T14:04:31Z</dc:date>
    </item>
    <item>
      <title>I should also mention that</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937381#M17348</link>
      <description>&lt;P&gt;I should also mention that the problem is intermittent, though reproducible.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Apr 2013 14:07:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937381#M17348</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-26T14:07:20Z</dc:date>
    </item>
    <item>
      <title>Hi Greg,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937382#M17349</link>
      <description>&lt;P&gt;Hi Greg,&lt;/P&gt;
&lt;P&gt;you should use ippInit() function only, don't use EnableCPU at all - this one has been already deprecated and does nothing. Also it is not clear for me from your code the purpose of calling InitCPU - you are mixing 2 different methods - CpuType (deprecated approach - don't use it) and CpuFeatures. All what you need&amp;nbsp;- (1) call ippInit (2) then call GetCpuFeatures - all other calls in your initialization code are unnecessary&lt;/P&gt;
&lt;P&gt;regards, Igor&lt;/P&gt;</description>
      <pubDate>Sun, 28 Apr 2013 13:52:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937382#M17349</guid>
      <dc:creator>Igor_A_Intel</dc:creator>
      <dc:date>2013-04-28T13:52:14Z</dc:date>
    </item>
    <item>
      <title>Igor,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937383#M17350</link>
      <description>&lt;P&gt;Igor,&lt;/P&gt;
&lt;P&gt;You're probably looking at a manual different from the one I am inspecting ( Document number A24968-036US).&amp;nbsp; This particular manual does not specify deprecation in the same way as you do.&lt;/P&gt;
&lt;P&gt;I am using redistributable DLLs.&lt;/P&gt;
&lt;P&gt;If I simply run GetEnabledCpuFeatures() before and after a call to FFTGetSize_C_32fc(), I get 7 (SSE2 enabled) before and hex CDF (SSE 4.2 enabled) after the call.&amp;nbsp; On a Sandy Bridge machine, I get hex FDF (AVX enabled).&lt;/P&gt;
&lt;P&gt;Does this look like the correct way to do things?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Apr 2013 14:18:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937383#M17350</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-29T14:18:59Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...If I simply run</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937384#M17351</link>
      <description>&amp;gt;&amp;gt;...If I simply run GetEnabledCpuFeatures() before and after a call to FFTGetSize_C_32fc(), I get 7 (SSE2 enabled) before and
&amp;gt;&amp;gt;hex CDF (SSE 4.2 enabled) after the call. On a Sandy Bridge machine, I get hex FDF (AVX enabled)...

I wonder if you could execute pure C/C++ tests ( without .NET ) on your computers?</description>
      <pubDate>Tue, 30 Apr 2013 04:27:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937384#M17351</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-30T04:27:29Z</dc:date>
    </item>
    <item>
      <title>I surely can run native code,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937385#M17352</link>
      <description>&lt;P&gt;I surely can run native code, but I prefer .NET code as I will have to inter-operate with native code from a large existing&amp;nbsp;.NET application.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Apr 2013 14:52:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937385#M17352</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-04-30T14:52:37Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...I surely can run native</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937386#M17353</link>
      <description>&amp;gt;&amp;gt;...I surely can run native code, but I prefer .NET code...

Gregory, I've asked to do a simple test ( implemented in C/C++ ) if it is possible. I understand that re-implementation of some .NET codes is Not an option.

I will also follow up with some advises later.</description>
      <pubDate>Wed, 01 May 2013 14:43:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937386#M17353</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-05-01T14:43:26Z</dc:date>
    </item>
    <item>
      <title>It looks like checking for</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937387#M17354</link>
      <description>&lt;P&gt;It looks like checking for enabled features after a call to GetSize() routines works well.&amp;nbsp; Case closed.&amp;nbsp; Sergey and Igor, thank you for all the help!&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2013 15:31:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937387#M17354</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-05-01T15:31:15Z</dc:date>
    </item>
    <item>
      <title>Hi Gregory,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937388#M17355</link>
      <description>Hi Gregory,

&amp;gt;&amp;gt;...It looks like checking for enabled features after a call to GetSize() routines works well...

Thanks for the update. Let me do one more post.

You should always watch out for CPU Dispatching DLLs ( also known as Waterfall DLLs  ) and it is applicable for IPP and MKL libraries. So, if incorrect set of CPU Dispatching DLLs is used it usually affect performance of applications. Here is an example with MKL:

&lt;STRONG&gt;[ Test 1 - 64-bit Windows 7 - Default SSE2 DLLs are used ]&lt;/STRONG&gt;

&amp;gt; Test1153 Start &amp;lt;
Sub-Test 1.1 - Runtime binding of MKL functions
Dynamic library mkl_rt.dll loaded
Initialization Done
Sub-Test 1.3
        Intel(R) Math Kernel Library Version 11.0.2 Product Build 20130124 for Intel(R) 64 architecture applications
        Major version         : 11
        Minor version         : 0
        Update version        : 2
        Product status        : Product
        Build                 : 20130124
        Processor optimization: &lt;STRONG&gt;Default processor&lt;/STRONG&gt;
Sub-Test 3.2 - SGEMM
Matrix multiplication C[ 8192x8192 ] = A[ 8192x8192 ] * B[ 8192x8192 ]
Allocating memory for matrices ( 32-byte alignment )
Intializing matrix data
Measuring performance of SGEMM function
        Iteration 01 - Completed in 17.847 secs
        Iteration 02 - Completed in 16.895 secs
        Iteration 03 - Completed in 16.614 secs
        Iteration 04 - Completed in 16.661 secs
        Iteration 05 - Completed in 17.515 secs
Deallocating memory
Dynamic library mkl_rt.dll unloaded
&amp;gt; Test1153 End &amp;lt;

&lt;STRONG&gt;[ Test 2 - 64-bit Windows 7 - AVX DLLs are used ]&lt;/STRONG&gt;

&amp;gt; Test1153 Start &amp;lt;
Sub-Test 1.1 - Runtime binding of MKL functions
Dynamic library mkl_rt.dll loaded
Initialization Done
Sub-Test 1.3
        Intel(R) Math Kernel Library Version 11.0.2 Product Build 20130124 for Intel(R) 64 architecture applications
        Major version         : 11
        Minor version         : 0
        Update version        : 2
        Product status        : Product
        Build                 : 20130124
        Processor optimization: &lt;STRONG&gt;Intel(R) Advanced Vector Extensions (Intel(R) AVX) Enabled Processor&lt;/STRONG&gt;
Sub-Test 3.2 - SGEMM
Matrix multiplication C[ 8192x8192 ] = A[ 8192x8192 ] * B[ 8192x8192 ]
Allocating memory for matrices ( 32-byte alignment )
Intializing matrix data
Measuring performance of SGEMM function
        Iteration 01 - Completed in 8.237 secs
        Iteration 02 - Completed in 7.457 secs
        Iteration 03 - Completed in 7.566 secs
        Iteration 04 - Completed in 7.488 secs
        Iteration 05 - Completed in 7.550 secs
Deallocating memory
Dynamic library mkl_rt.dll unloaded

As you can see &lt;STRONG&gt;Test 2&lt;/STRONG&gt; runs almost twice faster (!). Sorry for a test with MKL but it clearly demonstrates how performance is negatively affected.</description>
      <pubDate>Thu, 02 May 2013 00:59:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937388#M17355</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-05-02T00:59:52Z</dc:date>
    </item>
    <item>
      <title>When properly initialized, I</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937389#M17356</link>
      <description>&lt;P&gt;When properly initialized, I see near-doubling performance on otherwise similar machines with AVX with IPP!&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2013 02:01:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-initialization-issue-with-NET/m-p/937389#M17356</guid>
      <dc:creator>Gregory_C_</dc:creator>
      <dc:date>2013-05-02T02:01:02Z</dc:date>
    </item>
  </channel>
</rss>

