<?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 Re:why two different IPP versions given different numerical results? in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637233#M28864</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;IPP 9.0 was very old version, IPP has been optimized with newer instruction align to Intel new hardware. You can use setCpuFeatures to set the processor-specific library code for the specified processor features. &lt;A href="https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-12/setcpufeatures.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-12/setcpufeatures.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;May I ask which CPU platform that you are running?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;And be keep in mind that both IPP 9.0 and IPP 2019 were out of support. Please update to IPP latest version from here: &lt;A href="https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ruqiu&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Tue, 15 Oct 2024 01:17:11 GMT</pubDate>
    <dc:creator>Ruqiu_C_Intel</dc:creator>
    <dc:date>2024-10-15T01:17:11Z</dc:date>
    <item>
      <title>why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1636594#M28861</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I am replacing the legacy library with a relatively newer IPP (2019). While performing tests I noticed resizing an image using Linear interpolation is giving different numerical results.&lt;/P&gt;&lt;P&gt;In the code below, I shrink a given matrix by half in each dimension using the legacy IPP library and IPP2019. I am expecting the two results to match, but they do not.&lt;/P&gt;&lt;P&gt;How do I fix this such that both the method give the exact same result?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code below shows the problem. This is on Windows 10 and VS2017.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;//################## START&amp;nbsp; #######################&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;cstring&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;iostream&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;ipp.h&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;ippi.h&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;ippcore.h&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;ippi90legacy.h&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;#include &amp;lt;ippi90legacy_redef.h&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;/*!&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Quick and dirty resize test comparing legacy and new IPP version.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Resized a matrix by scalefactor of 0.5 to bLeg using LegacyIPP and&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;to bNew using new IPP version lib.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;*/&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;void TestResizeLinear() {&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppStatus sts = ippStsNoErr;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;double const sf = 0.5;//scale factor to shrink the 2d matrix by&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;size_t const W = 8;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;size_t const H = 8;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiSize srcSize = { W, H };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiRect srcRect = { 0, 0, W, H };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;unsigned short A[W * H] =&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;{&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;163, 5, 60, 236, 148, 163, 58, 254,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;109, 242, 176, 19, 92, 121, 254, 31,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;25, 244, 32, 116, 85, 79, 133, 66,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;160, 68, 222, 240, 207, 229, 164, 127,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;217, 22, 187, 0, 209, 113, 203, 177,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;251, 33, 240, 6, 7, 98, 160, 17,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;47, 179, 47, 66, 61, 202, 142, 135,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;212, 152, 9, 41, 240, 29, 155, 74&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;};&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;size_t const destW = size_t(W * sf + 0.5);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;size_t const destH = size_t(H * sf + 0.5);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiRect destRect = { 0, 0, destW, destH };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;unsigned short* pBLeg = new unsigned short[destW * destH];&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;memset(pBLeg, 0, destW * destH * sizeof(*pBLeg));&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int interpolation = IPPI_INTER_LINEAR;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int buffSize = 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeGetBufSize(srcRect, destRect, 1, interpolation, &amp;amp;buffSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Ipp8u* pBuff = ippsMalloc_8u(buffSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;double shift = 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeSqrPixel_16u_C1R(A, srcSize, W * sizeof(*A), srcRect,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;pBLeg, destW * sizeof(*pBLeg), destRect,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sf, sf, shift, shift, interpolation, pBuff);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;ippsFree(pBuff);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;//Done with resizing using IPPlegacy. Next, resize using IPP2019.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;unsigned short* pBNew = new unsigned short[destW * destH];&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;memset(pBNew, 0, destW * destH * sizeof(*pBNew));&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiSize destSize = { destW, destH };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiPoint destOffset = { 0, 0 };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;enum AAOPTION { WITHAA = 0, NOAA };&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int SpecSize = 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int initBufSize = 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeGetSize_16u(srcSize, destSize, IppiInterpolationType::ippLinear, AAOPTION::WITHAA, &amp;amp;SpecSize, &amp;amp;initBufSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiResizeSpec_32f* pSpec = (IppiResizeSpec_32f*)ippsMalloc_8u(SpecSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Ipp8u* pInitBuf = (Ipp8u*)ippsMalloc_8u(initBufSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeLinearInit_16u(srcSize, destSize, pSpec);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int bufSize = 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeGetBufferSize_8u(pSpec, destSize, 1, &amp;amp;bufSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Ipp8u* pWorkBuffer = (Ipp8u*)ippsMalloc_8u(bufSize);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;sts = ippiResizeLinear_16u_C1R(A, W * sizeof(*A),&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;pBNew, destW * sizeof(*pBNew),&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;destOffset, destSize,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;IppiBorderType::ippBorderRepl, 0,&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;pSpec, pWorkBuffer);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;ippsFree(pSpec);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;ippsFree(pInitBuf);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;ippsFree(pWorkBuffer);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;//print out the differences. &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;//Differences between IPPLegacy and IPP2019 results expected to be zero. But got :&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;/*&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;-1 -1 0 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;0 0 0 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;-1 0 -1 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;-1 -1 0 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;*/&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;std::clog &amp;lt;&amp;lt; "Differences in the two output matices:" &amp;lt;&amp;lt; std::endl;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;for (size_t r = 0; r &amp;lt; destH; r++) {&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;for (size_t c = 0; c &amp;lt; destW; c++) {&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;std::clog &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; pBLeg[r * destW + c] - pBNew[r * destW + c] &amp;lt;&amp;lt; " ";&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;std::clog &amp;lt;&amp;lt; std::endl;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;delete[] pBNew;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;delete[] pBLeg;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;return;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;int main(int argc, char** argv) {&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;TestResizeLinear();&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;return 0;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;}&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0071C5"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;//################### END #####################&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 11 Oct 2024 02:14:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1636594#M28861</guid>
      <dc:creator>blade</dc:creator>
      <dc:date>2024-10-11T02:14:52Z</dc:date>
    </item>
    <item>
      <title>Re:why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637233#M28864</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;IPP 9.0 was very old version, IPP has been optimized with newer instruction align to Intel new hardware. You can use setCpuFeatures to set the processor-specific library code for the specified processor features. &lt;A href="https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-12/setcpufeatures.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2021-12/setcpufeatures.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;May I ask which CPU platform that you are running?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;And be keep in mind that both IPP 9.0 and IPP 2019 were out of support. Please update to IPP latest version from here: &lt;A href="https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ruqiu&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 15 Oct 2024 01:17:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637233#M28864</guid>
      <dc:creator>Ruqiu_C_Intel</dc:creator>
      <dc:date>2024-10-15T01:17:11Z</dc:date>
    </item>
    <item>
      <title>Re: Re:why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637628#M28867</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for the info.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried the same program with VS 2022 and fresh download and install of OneaAPI IPP and got the same difference running the same code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am running this on an Intel CPU (obviously) and can get the details by printing out the CPU info via IPP functions sometime later today or tomorrow. While I work to do that, can you elaborate on what should I be looking for? My goal is to remove the numerical difference in results, and if that is not possible then to root cause the difference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 16 Oct 2024 14:42:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637628#M28867</guid>
      <dc:creator>blade</dc:creator>
      <dc:date>2024-10-16T14:42:31Z</dc:date>
    </item>
    <item>
      <title>Re: Re:why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637816#M28868</link>
      <description>&lt;P&gt;Here is the info related to the IPP version and the CPU features on the machine that is giving the different numerical outputs between IPP Legacy and newest version of IPP:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Processor 12th Gen Intel(R) Core(TM) i9-12900H, 2500 Mhz, 14 Core(s), 20 Logical Processor(s)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;ippIP AVX2 (l9) 2021.12.0 (r0x9b172c15) 2021. 12. 0. -1692980203&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;CPU Features: FEFFF&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Cpu features enabled: FEFFF&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Differences in the two output matrices:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;-1&amp;nbsp; -1&amp;nbsp; 0&amp;nbsp; 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;-1&amp;nbsp; 0&amp;nbsp; -1&amp;nbsp; 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;-1&amp;nbsp; -1&amp;nbsp; 0&amp;nbsp; 0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps to determine how to fix the differences.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Oct 2024 13:20:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1637816#M28868</guid>
      <dc:creator>blade</dc:creator>
      <dc:date>2024-10-17T13:20:30Z</dc:date>
    </item>
    <item>
      <title>Re:why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1638307#M28870</link>
      <description>&lt;P&gt;Thanks for the information. We will investigate it internally, and back to here if there is update.&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 21 Oct 2024 01:24:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1638307#M28870</guid>
      <dc:creator>Ruqiu_C_Intel</dc:creator>
      <dc:date>2024-10-21T01:24:42Z</dc:date>
    </item>
    <item>
      <title>Re:why two different IPP versions given different numerical results?</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1644917#M28907</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 14px;"&gt;Based on code backtracking, legacy function ippiResizeSqrPixel_16u_C1R was implemented with SSSE3, while new ippiResizeLinear_16u_C1R has been improved with newer instruction for newer CPUs.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 14px;"&gt;Kindly noted that the older version does not include optimizations for newer CPU instructions, which means it may not be delivering the best possible performance for your system. Additionally, using such an outdated version poses certain security risks, as newer updates typically address vulnerabilities that have been identified over time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 14px;"&gt;For both improved performance and enhanced security, we strongly recommend upgrading to the latest version of the product. The new version has been optimized for modern hardware and includes important security patches.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 22 Nov 2024 01:04:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/why-two-different-IPP-versions-given-different-numerical-results/m-p/1644917#M28907</guid>
      <dc:creator>Ruqiu_C_Intel</dc:creator>
      <dc:date>2024-11-22T01:04:44Z</dc:date>
    </item>
  </channel>
</rss>

