<?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 IPP Java performance in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974253#M20806</link>
    <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;I modified original java sample to get some performance numbers by setting 1000x to value of 0 1D signal of length 1024 of float type (source codefollows below).&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Surprisingly, a classic approach (REG. time) roughly 4x outperforms in CPU cycles an IPP based approach (IPP time). Very likely, I'm doing something wrong. Please comment!&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Regards,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;AndrewK&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;import java.awt.*;&lt;BR /&gt;import java.awt.image.*;&lt;BR /&gt;import java.awt.event.*;&lt;BR /&gt;import java.util.*;&lt;BR /&gt;import jipp.*;&lt;/DIV&gt;
&lt;DIV&gt;class zero&lt;BR /&gt;{&lt;BR /&gt; static int j, k;&lt;BR /&gt; static long m_start, m_stop;&lt;BR /&gt; static float[] insig = new float[1024];&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt; public static void main( String arg[] ) {&lt;BR /&gt; System.out.println( "cpu type = "+jipp.core.ippGetCpuType() );&lt;BR /&gt; System.out.println( "lib = "+jipp.core.ippGetLibVersion().Name );&lt;/DIV&gt;
&lt;DIV&gt; m_start = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; for(k=1; k&amp;lt;=1000; k++)&lt;BR /&gt; jipp.sp.ippsSet_32f(0, insig, 1024);&lt;/DIV&gt;
&lt;DIV&gt; m_stop = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; System.out.println( "IPP time = " + (double)(m_stop-m_start) + " CPU cycles");&lt;/DIV&gt;
&lt;DIV&gt; m_start = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; for(k=1; k&amp;lt;=1000; k++)&lt;BR /&gt; for(j=0; j&amp;lt;1024; j++)&lt;BR /&gt; insig&lt;J&gt; = (float) 0;&lt;/J&gt;&lt;/DIV&gt;
&lt;DIV&gt; m_stop = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; System.out.println( "REG. time = " + (double)(m_stop-m_start) + " CPU cycles");&lt;/DIV&gt;
&lt;DIV&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 21 Sep 2005 01:18:53 GMT</pubDate>
    <dc:creator>andrewk88</dc:creator>
    <dc:date>2005-09-21T01:18:53Z</dc:date>
    <item>
      <title>IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974253#M20806</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;I modified original java sample to get some performance numbers by setting 1000x to value of 0 1D signal of length 1024 of float type (source codefollows below).&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Surprisingly, a classic approach (REG. time) roughly 4x outperforms in CPU cycles an IPP based approach (IPP time). Very likely, I'm doing something wrong. Please comment!&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Regards,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;AndrewK&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;import java.awt.*;&lt;BR /&gt;import java.awt.image.*;&lt;BR /&gt;import java.awt.event.*;&lt;BR /&gt;import java.util.*;&lt;BR /&gt;import jipp.*;&lt;/DIV&gt;
&lt;DIV&gt;class zero&lt;BR /&gt;{&lt;BR /&gt; static int j, k;&lt;BR /&gt; static long m_start, m_stop;&lt;BR /&gt; static float[] insig = new float[1024];&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt; public static void main( String arg[] ) {&lt;BR /&gt; System.out.println( "cpu type = "+jipp.core.ippGetCpuType() );&lt;BR /&gt; System.out.println( "lib = "+jipp.core.ippGetLibVersion().Name );&lt;/DIV&gt;
&lt;DIV&gt; m_start = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; for(k=1; k&amp;lt;=1000; k++)&lt;BR /&gt; jipp.sp.ippsSet_32f(0, insig, 1024);&lt;/DIV&gt;
&lt;DIV&gt; m_stop = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; System.out.println( "IPP time = " + (double)(m_stop-m_start) + " CPU cycles");&lt;/DIV&gt;
&lt;DIV&gt; m_start = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; for(k=1; k&amp;lt;=1000; k++)&lt;BR /&gt; for(j=0; j&amp;lt;1024; j++)&lt;BR /&gt; insig&lt;J&gt; = (float) 0;&lt;/J&gt;&lt;/DIV&gt;
&lt;DIV&gt; m_stop = jipp.core.ippGetCpuClocks();&lt;/DIV&gt;
&lt;DIV&gt; System.out.println( "REG. time = " + (double)(m_stop-m_start) + " CPU cycles");&lt;/DIV&gt;
&lt;DIV&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 21 Sep 2005 01:18:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974253#M20806</guid>
      <dc:creator>andrewk88</dc:creator>
      <dc:date>2005-09-21T01:18:53Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974254#M20807</link>
      <description>&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;... perhaps that is related to not properly aligned 1D signal buffer in memory?&lt;/P&gt;
&lt;P&gt;Thanks again,&lt;/P&gt;
&lt;P&gt;AndrewK&lt;/P&gt;
&lt;P&gt;BTW, could you provide an example(s) source code in java how to allocatecorrectly aligned in memory1D and 2D buffers ?&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 22 Sep 2005 02:30:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974254#M20807</guid>
      <dc:creator>andrewk88</dc:creator>
      <dc:date>2005-09-22T02:30:02Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974255#M20808</link>
      <description>&lt;P&gt;Hi Andrew,&lt;/P&gt;
&lt;P&gt;we tests this issue with following code&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.util.*;
import jipp.*;

class zero
{
   static int j, k;
   static long m_start, m_stop;
   static float[] insig  = new float[1024];

   public static void main( String arg[] ) {
     System.out.println( "cpu  type = "+jipp.core.ippGetCpuType() );
     System.out.println( "lib       = "+jipp.sp.ippsGetLibVersion().Name );

     m_start = jipp.core.ippGetCpuClocks();
     for(k=1; k&amp;lt;=1000000; k++)
       jipp.sp.ippsSet_32f(0, insig, 1024);
     m_stop = jipp.core.ippGetCpuClocks();

     System.out.println( "IPP  time = " + (double)(m_stop-m_start)/(1000000.*1024) + " CPU cycles");

     m_start = jipp.core.ippGetCpuClocks();
     for(k=1; k&amp;lt;=1000000; k++)
      for(j=0; j&amp;lt;1024; j++)
       insig&lt;J&gt; = (float) 0;
     m_stop = jipp.core.ippGetCpuClocks();

     System.out.println( "REG. time = " + (double)(m_stop-m_start)/(1000000.*1024) + " CPU cycles");
  }
}
&lt;/J&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;And our results looks like&lt;BR /&gt;cpu type = 7&lt;BR /&gt;lib = ippsw7.dll&lt;BR /&gt;IPP time = 10.0496495234375 CPU cycles&lt;BR /&gt;REG. time = 11.0541241953125 CPU cycles&lt;/P&gt;
&lt;P&gt;Please check ifPX(means generic C code) libraries were used in your test?&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 07 Oct 2005 23:13:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974255#M20808</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2005-10-07T23:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974256#M20809</link>
      <description>&lt;P&gt;Hi Vladimir,&lt;/P&gt;
&lt;P&gt;Thanks for providing your testing results.&lt;/P&gt;
&lt;P&gt;Here are my results using your code&lt;/P&gt;
&lt;P&gt;cpu type = 6&lt;BR /&gt;lib = ippsw7.dll&lt;BR /&gt;IPP time = 9.40602633203125 CPU cycles&lt;BR /&gt;REG. time = 11.1729733828125 CPU cycles&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;any my old code&lt;/P&gt;
&lt;P&gt;cpu type = 6&lt;BR /&gt;lib = ippcore.dll&lt;BR /&gt;IPP time = 8.830512E7 CPU cycles&lt;BR /&gt;REG. time = 2.7357444E7 CPU cycles&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Does it make any sense to you?&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;AndrewK&lt;/P&gt;
&lt;P&gt;PS. Perhaps, using jipp.sp.ippsSet_32f() routine is notthe most reasonable way of performance evaluation:-)&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 07 Oct 2005 23:32:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974256#M20809</guid>
      <dc:creator>andrewk88</dc:creator>
      <dc:date>2005-10-07T23:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974257#M20810</link>
      <description>&lt;P&gt;Yes, I the difference is only in number of repetitions in measuring loop. And also name of library in your case is shown as ippcore.dll, it does not say which version of ipps library were used PX or W7.&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 08 Oct 2005 00:02:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974257#M20810</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2005-10-08T00:02:18Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974258#M20811</link>
      <description>&lt;DIV&gt;... after changing name only of library to be printed out&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;cpu type = 6&lt;BR /&gt;lib = ippsw7.dll&lt;BR /&gt;IPP time = 1.0023372E7 CPU cycles&lt;BR /&gt;REG. time = 2.1228532E7 CPU cycles&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Now, IPP is 2x faster ... instead of 4x slower ...&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Andrew&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 08 Oct 2005 00:08:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974258#M20811</guid>
      <dc:creator>andrewk88</dc:creator>
      <dc:date>2005-10-08T00:08:22Z</dc:date>
    </item>
    <item>
      <title>Re: IPP Java performance</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974259#M20812</link>
      <description>&lt;P&gt;Wow, that's interesting! I'm even don't know what can be reason for such a strange side effect. Anyway, now we know IPP should give benefits in performance:)&lt;/P&gt;
&lt;P&gt;Regards,&lt;BR /&gt; Vladimir&lt;/P&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 08 Oct 2005 00:12:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/IPP-Java-performance/m-p/974259#M20812</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2005-10-08T00:12:06Z</dc:date>
    </item>
  </channel>
</rss>

