<?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 Hi, in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133990#M25863</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for your reply; I have inserted the following in the test program:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const IppLibraryVersion * version = ippsGetLibVersion();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "version-&amp;gt;major = " &amp;lt;&amp;lt; version-&amp;gt;major &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;minor = " &amp;lt;&amp;lt; version-&amp;gt;minor &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;majorBuild = " &amp;lt;&amp;lt; version-&amp;gt;majorBuild &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;build = " &amp;lt;&amp;lt; version-&amp;gt;build &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;targetCpu = " &amp;lt;&amp;lt; version-&amp;gt;targetCpu &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;Name = " &amp;lt;&amp;lt; version-&amp;gt;Name &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;Version = " &amp;lt;&amp;lt; version-&amp;gt;Version &amp;lt;&amp;lt; endl&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;BuildDate = " &amp;lt;&amp;lt; version-&amp;gt;BuildDate &amp;lt;&amp;lt; endl;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and the result is as follows:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;version-&amp;gt;major = 2019&lt;BR /&gt;version-&amp;gt;minor = 0&lt;BR /&gt;version-&amp;gt;majorBuild = 5&lt;BR /&gt;version-&amp;gt;build = -916463777&lt;BR /&gt;version-&amp;gt;targetCpu = l9&lt;BR /&gt;version-&amp;gt;Name = ippSP AVX2 (l9)&lt;BR /&gt;version-&amp;gt;Version = 2019.0.5 (r0xc95fdf5f)&lt;BR /&gt;version-&amp;gt;BuildDate = Aug 12 2019&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It looks from this that there is an error with the value for version-&amp;gt;build, since in the declaration of this struct in ippbase.h, it says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int &amp;nbsp; &amp;nbsp;build; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* e.g. 10, always &amp;gt;= majorBuild &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so this condition is not satisfied in my case. Perhaps there has been an error with the build?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Steve.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 04 Nov 2019 11:21:13 GMT</pubDate>
    <dc:creator>miller__steve1</dc:creator>
    <dc:date>2019-11-04T11:21:13Z</dc:date>
    <item>
      <title>Timing/performance problem</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133988#M25861</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have been doing some basic tests on ipps functions, and have found some surprising results:&amp;nbsp;&lt;/P&gt;&lt;P&gt;Summary: call to ippsAnd_8u_I() appears to take same execution time as naive looping code; better performance obtained with calls to the avx intrinsic api.&lt;/P&gt;&lt;P&gt;I have appended some sample code. My timing results from this are:&amp;nbsp;&lt;/P&gt;&lt;P&gt;And explicit, time: 12866755 us&lt;BR /&gt;And ipps, time: 12488325 us&lt;BR /&gt;And sse(128), time: 10131219 us&lt;BR /&gt;And avx(256), time: 5723750 us&lt;/P&gt;&lt;P&gt;so I was rather surprised to find that the ipp function was no better than the basic looping code, and also that my own rather crude usage of avx intrinsic calls was considerably better.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using the standalone version of ipp installed with visual studio 2015 (windows 10), from w_ipp_2019.5.281, using a release 64 bit build on a i7-7700K.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any comments, or can anyone explain what's going on?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Steve.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;void test()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;size_t nData = 100000000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;size_t nRep = 1000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;size_t align = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t *pData = static_cast&amp;lt;uint8_t*&amp;gt;(_aligned_malloc(nData, align)) ;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // new (std::nothrow) uint8_t[nData];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t *pDst = static_cast&amp;lt;uint8_t*&amp;gt;(_aligned_malloc(nData, align));&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//new (std::nothrow) uint8_t[nData];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (pData == nullptr || pDst == nullptr)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cerr &amp;lt;&amp;lt; "could not allocate memory" &amp;lt;&amp;lt; endl;&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;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// explicit &amp;amp;=&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_point&amp;lt;steady_clock&amp;gt; start_time = steady_clock::now();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t n = 0; n &amp;lt; nRep; ++n)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t i = 0; i &amp;lt; nData; ++i)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pDst&lt;I&gt; &amp;amp;= pData&lt;I&gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "And explicit, time: " &amp;lt;&amp;lt; duration_cast&amp;lt;microseconds&amp;gt;(steady_clock::now() - start_time).count()&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; " us " &amp;lt;&amp;lt; endl;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// ippsAnd_8u_I&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_point&amp;lt;steady_clock&amp;gt; start_time = steady_clock::now();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t n = 0; n &amp;lt; nRep; ++n)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ippsAnd_8u_I(pData, pDst, nData);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "And ipps, time: " &amp;lt;&amp;lt; duration_cast&amp;lt;microseconds&amp;gt;(steady_clock::now() - start_time).count()&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; " us " &amp;lt;&amp;lt; endl;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// sse (128) and version&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_point&amp;lt;steady_clock&amp;gt; start_time = steady_clock::now();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t n = 0; n &amp;lt; nRep; ++n)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;__m128i a, b, c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;size_t m = nData / 16, offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t *pT1 = nullptr, *pT2 = nullptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t i = 0; i &amp;lt; m; ++i)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;offset = m * 16;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pT1 = pData + offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pT2 = pDst + offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;a = _mm_load_si128(reinterpret_cast&amp;lt;__m128i*&amp;gt;(pT1));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;b = _mm_load_si128(reinterpret_cast&amp;lt;__m128i*&amp;gt;(pT2));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;c = _mm_and_si128(a, b);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;_mm_store_si128(reinterpret_cast&amp;lt;__m128i*&amp;gt;(pT2), c);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "And sse(128), time: " &amp;lt;&amp;lt; duration_cast&amp;lt;microseconds&amp;gt;(steady_clock::now() - start_time).count()&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; " us " &amp;lt;&amp;lt; endl;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// avx (256) version&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;time_point&amp;lt;steady_clock&amp;gt; start_time = steady_clock::now();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t n = 0; n &amp;lt; nRep; ++n)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;__m256i a, b, c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;size_t m = nData / 32, offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t *pT1 = nullptr, *pT2 = nullptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (size_t i = 0; i &amp;lt; m; ++i)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;offset = m * 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pT1 = pData + offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pT2 = pDst + offset;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;a = _mm256_load_si256(reinterpret_cast&amp;lt;__m256i*&amp;gt;(pT1));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;b = _mm256_load_si256(reinterpret_cast&amp;lt;__m256i*&amp;gt;(pT2));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;c = _mm256_and_si256(a, b);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;_mm256_store_si256(reinterpret_cast&amp;lt;__m256i*&amp;gt;(pT2), c);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "And avx(256), time: " &amp;lt;&amp;lt; duration_cast&amp;lt;microseconds&amp;gt;(steady_clock::now() - start_time).count()&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; " us " &amp;lt;&amp;lt; endl;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;_aligned_free(pData);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;_aligned_free(pDst);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;</description>
      <pubDate>Fri, 01 Nov 2019 15:17:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133988#M25861</guid>
      <dc:creator>miller__steve1</dc:creator>
      <dc:date>2019-11-01T15:17:30Z</dc:date>
    </item>
    <item>
      <title>it might be the optimization</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133989#M25862</link>
      <description>&lt;P&gt;it might be the optimization problem with this function. could you add&amp;nbsp;ippsGetLibVersion and give us the output?&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 04:13:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133989#M25862</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-11-04T04:13:02Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133990#M25863</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for your reply; I have inserted the following in the test program:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;const IppLibraryVersion * version = ippsGetLibVersion();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; "version-&amp;gt;major = " &amp;lt;&amp;lt; version-&amp;gt;major &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;minor = " &amp;lt;&amp;lt; version-&amp;gt;minor &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;majorBuild = " &amp;lt;&amp;lt; version-&amp;gt;majorBuild &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;build = " &amp;lt;&amp;lt; version-&amp;gt;build &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;targetCpu = " &amp;lt;&amp;lt; version-&amp;gt;targetCpu &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;Name = " &amp;lt;&amp;lt; version-&amp;gt;Name &amp;lt;&amp;lt; endl&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;Version = " &amp;lt;&amp;lt; version-&amp;gt;Version &amp;lt;&amp;lt; endl&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt; "version-&amp;gt;BuildDate = " &amp;lt;&amp;lt; version-&amp;gt;BuildDate &amp;lt;&amp;lt; endl;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and the result is as follows:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;version-&amp;gt;major = 2019&lt;BR /&gt;version-&amp;gt;minor = 0&lt;BR /&gt;version-&amp;gt;majorBuild = 5&lt;BR /&gt;version-&amp;gt;build = -916463777&lt;BR /&gt;version-&amp;gt;targetCpu = l9&lt;BR /&gt;version-&amp;gt;Name = ippSP AVX2 (l9)&lt;BR /&gt;version-&amp;gt;Version = 2019.0.5 (r0xc95fdf5f)&lt;BR /&gt;version-&amp;gt;BuildDate = Aug 12 2019&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It looks from this that there is an error with the value for version-&amp;gt;build, since in the declaration of this struct in ippbase.h, it says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int &amp;nbsp; &amp;nbsp;build; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* e.g. 10, always &amp;gt;= majorBuild &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so this condition is not satisfied in my case. Perhaps there has been an error with the build?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Steve.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Nov 2019 11:21:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133990#M25863</guid>
      <dc:creator>miller__steve1</dc:creator>
      <dc:date>2019-11-04T11:21:13Z</dc:date>
    </item>
    <item>
      <title>the problem is reproduced on</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133991#M25864</link>
      <description>&lt;P&gt;the problem is reproduced on our side and would be escalated. I would also recommend you to submit this issue into &lt;A href="https://supporttickets.intel.com/?lang=en-US"&gt;Intel Online Service Center&lt;/A&gt; to get the official support.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2019 04:13:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Timing-performance-problem/m-p/1133991#M25864</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-11-05T04:13:37Z</dc:date>
    </item>
  </channel>
</rss>

