<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Thu, 24 May 2012 15:35:20 -0700 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-ipp-kb/type/landing-links/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles Feed</title>
    <link>http://software.intel.com/en-us/articles/intel-ipp-kb/type/landing-links/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Intel® IPP 7.0 Library Bug Fixes</title>
      <description><![CDATA[ <p><b class="sectionHeading">Intel® IPP Library 7.0 Bug Fixes List</b></p>
<p>The tables below <span >summarize</span> specific customer issues or feature requests that have been addressed by the indicated product releases. Some items span multiple architectures and/or operating systems and some relate only to a single architecture or operating system.</p>
<p><em>NOTE: The issues, defects, bug reports, and feature requests summarized below represent specific issues with specific test cases. An item listed here does not imply that it necessarily applies to your application(s). If your situation does not match the specific test case associated with an item in this list you may not have experienced the problem associated with that update. It is not possible to describe the details of every issue and its specific test case within these tables.</em></p>
<blockquote>
<p>Providing a complete description of each item in the tables below is impractical. For that reason we ask that you post a request for more information on the <a href="http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/">IPP user forum</a> and reference this page and the "DPD" number of interest, when you have questions regarding specific items in these tables. Where additional information is available the DPD number will contain a link to the detailed explanation in the IPP forum or knowledgebase.</p>
</blockquote>
<p>These tables are updated regularly to correct any errors and omissions.</p>
<p class="sectionHeading"><br /><br />IPP v7.0 update 7</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="16">
<td width="116" height="16" class="xl65">DPD200274963</td>
<td width="692" class="xl65">Code fixes for picnic sample application</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200274553</td>
<td class="xl65">ippsDemo threshold function value argument fixed</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200273926</td>
<td class="xl65">uic_transcoder_con -s not allowed for grey scale images</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200272221</td>
<td class="xl65">ippiAddRandUniform_Direct_16u_C1IR fixed for odd width</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200272108</td>
<td class="xl65">IPP_GZIP causes a segmentation fault when compressing file sizes&gt; 4 GB for SSE4.1/4.2 implementation</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200271834</td>
<td class="xl65">Copy constructor and operator= added to image_codecs CIppImage</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200271832</td>
<td class="xl65">CIppImage ToGray NChannels logic fixed</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200271144</td>
<td class="xl65">H264 initTables allocation/release data race condition fixed</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200269035</td>
<td class="xl65">umc_color_space_conversion plane inversion fixed</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200268512</td>
<td class="xl65">Rounding error in ippiRGBToHSV_8u_C3R</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200266607</td>
<td class="xl65">Correct arithmetic option passed for JPEG2000</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200260706</td>
<td class="xl65">ippiMinMaxIndx_32f_C1MR result difference between implementation layers fixed</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200259927</td>
<td class="xl65">New OpenGL renderer added to simple_player</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200170633</td>
<td class="xl65">Memory leak in UMC's DV100VideoDecoder fixed</td>
</tr>
</tbody>
</table>
<div></div>
<div></div>
<p class="sectionHeading"><br /><br /><br />IPP v7.0 update 6</p>
<div></div>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="16">
<td width="116" height="16" class="xl65">DPD200167630</td>
<td width="692" class="xl65">ippiDCTFwd_32f_C1R speedup</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200261436</td>
<td class="xl65">UMC h264 baseline profile CAVLC overflow chroma error, level_prefix correction</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200215155</td>
<td class="xl65">UMC H.264 codec hangs when closing</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200223103</td>
<td class="xl65">UMC H264 doesn't check video consistency on IDR frame</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200226794</td>
<td class="xl65">UMC H264 encoder crashed when transform_8x8_mode=1 and quality=3</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200228069</td>
<td class="xl65">UMC Wrong pointer checking after ippMalloc in video resizing</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200230243</td>
<td class="xl65">UMC H.264 Decoder H264SegmentDecoder InitDeblockingOnceEv Crash</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200227775</td>
<td class="xl65">ippiResizeYUV422_8u_C2R bug</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200259352</td>
<td class="xl65">ippsRSASign_XXX_PKCSv15 problem handling very long messages (msgLen&gt;0x7FFFFFFF bytes)</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200259352</td>
<td class="xl65">ippsRSAOAEPEncrypt_XXX adding parameters check on pLabel==0 &amp;&amp; labelLen!=0</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200231146</td>
<td class="xl65">Bug, ippiFilter_64f_C1R read input buffer out of bounds</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200258919</td>
<td class="xl65">ippiFilterColumn32f_8u_C1R produces wrong output on 64 bit system</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200259470</td>
<td class="xl65">Bug in IppiConvValid_32f_C1R for x64 bit code</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200169857</td>
<td class="xl65">Issue in rendering using IpprIntersectAnySO_32f on Sandy Bridge</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200231794</td>
<td class="xl65">ippsFind_8u returns wrong result</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200228052</td>
<td class="xl65">Issue using method ippiDecodeExpGolombOne_H264_1u16s on different CPUs</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200172164</td>
<td class="xl65">ippiWarpAffine results correct (fixed rounding bug introduced 7.0.1)</td>
</tr>
</tbody>
</table>
<div></div>
<p class="sectionHeading"><br /><br />IPP v7.0 update 5</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="16">
<td width="116" height="16" class="xl65">DPD200221827</td>
<td width="692" class="xl65">code error in ImageSamplingGeometry::Period() function in UIC sample code</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200221825</td>
<td class="xl65">ImageSamplingGeometry::Period() function creating division by zero error in UIC sample</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200171222</td>
<td class="xl65">usc7291.c SetFrameSize() function return inconsistence value</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200170630</td>
<td class="xl65">evel_prefix of VLC table error for baseline encoding in UMC H.264 encoding</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200217437</td>
<td class="xl65">UMC H.264 decoder: H264Bitstream::InitTables error when using decoder with multiple theadings</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200216804</td>
<td class="xl65">unresolved external___libm_sse2_cos when using ipps_l.lib in the kernel mode</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200214644</td>
<td class="xl65">UMC sample application umc_video_enc_con crash with incorrect memory  free built by GCC</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200214139</td>
<td class="xl65">Picnic application crash with some PNG images</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200213480</td>
<td class="xl65">UMC sample code: using uninitialized variable stss.total_entries in UMC::MP4Muxer</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200169033</td>
<td class="xl65">LZO ippsDecodeLZOSafe_8u function creating incorrect result at 32 bit system</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200213026</td>
<td class="xl65">ConvertToGrayscale rounding inconsistently</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200212824</td>
<td class="xl65">UMC sample code: code error in MeBase::EstimateMbInterFast() function</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200168715</td>
<td class="xl65">UIC JPEG decoder error when setting DCTType and DCT scale is not full 8x8.  </td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200207720</td>
<td class="xl65">Segmentation fault error in ippsFIRMRInitAlloc_32fc function</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200165384</td>
<td class="xl65">mp4 muxer code fix with many IDR frames</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200189426</td>
<td class="xl65">H264VideoEnder failing to create specified bitrate if defined SLIC_CHECK_LIMIT macro</td>
</tr>
</tbody>
</table>
<div></div>
<p class="sectionHeading"><br />IPP v7.0 update 4 (29 Apr 2011)</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="16">
<td width="116" height="16" class="xl66">DPD200168173</td>
<td width="692" class="xl66">UMC::Mpeg2FrameConstructor fails to properly identify some MPEG2 sequences.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200168642</td>
<td class="xl66">Crash with RST threading and negative compression.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200211014</td>
<td class="xl66">Impossible to build audio-video-codec examples statically - makefile in error.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200168044</td>
<td class="xl66">Crash with IPP cripto ippsRijndael128GCM* when using ippAESGCMtable2K.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81798">DPD200167928</a></td>
<td class="xl66">Bug in facedetection.cpp - add ippFree() call after ippiResizeSqrPixel_8u_C1R().</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200209194</td>
<td class="xl66">Document improvements re ippiResizeSqrPixel() function with parameter srcRoi.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79161">DPD200167628/</a></td>
<td class="xl65">IPP 7.0 Mac OS X rebinding dylibs error - caused by fixstrip utility.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79161">DPD200208870</a></td>
<td class="xl65"></td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200167552</td>
<td class="xl66">umc_h264.heap.h possible memory leak - Close method releasing memory blocks in wrong order.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81263">DPD200208716</a></td>
<td class="xl66">UIC jpeg codec performance not scaling to multicore - use gcc4 -fopenmp and icc -openmp options.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200167363</td>
<td class="xl66">UIC error in YCC422 planer when JPEG restarts - add threading based on RSTI for YCbCr422 input mode.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200208088</td>
<td class="xl66">Crash with ippsRijndael128GM on AMD and Prescott SSE3 CPU - incorrect optimization applied.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200166978</td>
<td class="xl66">ippsRegExpReplace should fill destString to limit - now returns ippStsOverflow status.</td>
</tr>
</tbody>
</table>
<div></div>
<p class="sectionHeading"><br />IPP v7.0 update 3 (15 Mar 2011)</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="16">
<td width="116" height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=80413">DPD200166099</a></td>
<td width="692" class="xl65">Identical code branches in aac_enc aac_enc_api_fp.c.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=80413">DPD200166098</a></td>
<td class="xl65">Bad replacement of array indexes in umc_avs_enc_compressor_enc_b.cpp.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=80624">DPD200205596</a></td>
<td class="xl65">New "Return Values" for ippsGFPXGetSize function should be added to the description.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200204445</td>
<td class="xl65">Add additional note to IPL-PPL readme file to clarify use for 32-bit library only.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200165582</td>
<td class="xl65">Wavelet transform is significantly slower on latest hardware compared to Pentium D.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200165338</td>
<td class="xl65">Suggestion on improving UIC JPEG monochrome decoding performance.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79684">DPD200165134</a></td>
<td class="xl65">J2K decoding image error with sampling other then 1,1.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200203393</td>
<td class="xl65">Null pointer exception when TRACK_VBI_TXT is found.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79999">DPD200165043</a></td>
<td class="xl65">ZLIB: segmentation fault on inflate() after an inflateSync() running into a partial flush sync point.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200203121</td>
<td class="xl65">Performance of ippiFilterMedian_8u_C1R on Intel 64 platforms.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79529">DPD200193785</a></td>
<td class="xl65">umc_h264_dec_con.exe -t2 hang.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200139035</td>
<td class="xl65">Need more explanations regarding denormal values in the User Guide.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=67560">DPD200084539</a></td>
<td class="xl65">How to use the MPEG-2 sample encoder scene analyzer.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200205581</td>
<td class="xl65">64-bit ippiCountInRange_32f_C1R corrupts XMM registers.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79871">DPD200165377</a></td>
<td class="xl65">UMC::ThreadedDemuxer.GetInfo() is incorrect if input is MPEG2 video interlaced BOTTOM_FIELD_FIRST.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200095469</td>
<td class="xl65">JPEG 2000 does not correctly decoded one CMYK image.</td>
</tr>
<tr height="35">
<td valign="top" height="35" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=80467">DPD200166518</a></td>
<td class="xl65">"Illegal combination of _IPP_PARALLEL_DYNAMIC/_IPP_PARALLEL_STATIC/_IPP_SEQUENTIAL_STATIC" when building samples with Visual Studio.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81471">DPD200167623</a></td>
<td class="xl65">UMC::AVISplitter crashing - modify source code in umc_avi_splitter.cpp file.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81677">DPD200209066</a></td>
<td class="xl65">Bug in UMC::AudioFrameConstructor.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81572">DPD200167368</a></td>
<td class="xl65">Bug in audio-video-codecs\codec\demuxer\src\umc_stream_parser.</td>
</tr>
<tr height="16">
<td height="16" class="xl65">DPD200207003</td>
<td class="xl65">ippsCalcSF_16s32F method crashes on 64 bit systems.</td>
</tr>
<tr height="16">
<td height="16" class="xl66"><a href="http://software.intel.com/en-us/forums/showthread.php?t=76406">DPD200186083</a></td>
<td class="xl65">ippiFilterBox_32f_C1R produces wrong output.</td>
</tr>
</tbody>
</table>
<div></div>
<p class="sectionHeading"><br />IPP v7.0 update 2 (20 Jan 2011)</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<colgroup valign="top"></colgroup><colgroup valign="top"></colgroup>
<tbody>
<tr height="16">
<td width="116" height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=79839">DPD200164895</a></td>
<td width="692" class="xl66">IndexSplitter::EnableTrack is buggy (AVI and MP4 splitting).</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78852">DPD200192750</a></td>
<td class="xl66">ippiResizeSqrPixel_8u_C1R 32-bit and 64-bit results vary.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200164475</td>
<td class="xl66">ippsConjFlip* and ippsConjCcs* do not save XMM7 register on Win64 systems.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78187">DPD200196918</a></td>
<td class="xl66">Function ippsCrossCorr_64f() crashes for cases with large lowLag parameter.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=75949">DPD200157711</a></td>
<td class="xl66">ippGetNumCoresOnDie() returns 0 on Core 2 Extreme Q9300 processor.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=76866">DPD200191191</a></td>
<td class="xl66">WinKaiser results contain NAN on x64 platform.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78269">DPD200197620</a></td>
<td class="xl66">UMC: MPEG2 decoder crash with "simple_player.exe D:\crash.m2v -vnul -t 8".</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200133829</td>
<td class="xl66">False positives occurring in OpenCV when OpenMP is enabled within build.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=81945">DPD200137548</a></td>
<td class="xl66">H.264 Decompression on x64 is significantly slower compared to x32.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=74252">DPD200201675</a></td>
<td class="xl66">JPEG 2000 encoder does not generate lossless bitstream properly for 16bit image.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200135781</td>
<td class="xl66">ippmEigenValuesVectorRight_m_64f() gives wrong eigenvalues.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200159755</td>
<td class="xl66">Buffer overrun in 64-bit ippsInflate_8u().</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78781">DPD200199464</a></td>
<td class="xl66">Segment violation problems with ipp_zlib.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200095138</td>
<td class="xl66">ippsPhase (IA32 platform) problems fixed.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200197670</td>
<td class="xl66">ippsSum_32f() produces wrong result at second run calling ipp dll in C#.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200199738</td>
<td class="xl66">x87/mmx code removed from all x64 code except ippVC domain.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200191226</td>
<td class="xl66">IPP vector matrix multiplication performance issue.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200197493</td>
<td class="xl66">Unexpected behavior when using ippRegExpReplace().</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=76708">DPD200191001</a></td>
<td class="xl66">ipp_zlib segmentation faults with 1 bit wrong.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200197264</td>
<td class="xl66">bzip fails to decompress some files.</td>
</tr>
<tr height="29">
<td height="29" class="xl66">DPD200084964/<br />DPD200137269</td>
<td class="xl65">ippiResizeSqrPixel (antialiasing mode) and Remap/Rotate/RotateC/WarpAffine/Shear functions are now multi-threaded.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=70652">DPD200149352</a></td>
<td class="xl66">G.729 documentation clarification regarding number of RTP streams.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200198788</td>
<td class="xl66">IPP sample build batch fails for Visual Studio compilers.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200088927</td>
<td class="xl66">Missing frames_per_second parameter, frame rate VUI parameters added to h264 encoder.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200085522</td>
<td class="xl66">UMC::VideoData.m_picStructure element always set to PS_FRAME.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=70845">DPD200158196</a></td>
<td class="xl66">Incorrect requantization when coeff is greater than maximum allowed level for CAVLC in baseleine profile.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200195594</td>
<td class="xl66">VC-1 advanced encoder outputs wrong values in the bitstream sequence header.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200153276</td>
<td class="xl66">Change allignment in H.264 decoder to DECLALIGN macros insted of __ICL alignment.</td>
</tr>
<tr height="19">
<td height="19" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=77993">DPD200195873</a></td>
<td class="xl66">deprecated ipp lib names removed.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200133928</td>
<td class="xl66">Building UMC sample in MSVC2008 generates compiler warnings.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200152966</td>
<td class="xl66">Regular expression evaluation too slow.</td>
</tr>
<tr height="16">
<td height="16" class="xl66">DPD200188099</td>
<td class="xl66">Incorrect naming and usage schema for cryptography ipp sample readmes.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78269">DPD200199195 </a></td>
<td class="xl66">MPEG2 decoder creates "horizontal color bands" on some test streams.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=78749">DPD200199091</a></td>
<td class="xl66">H.264 fails to decode some video streams.</td>
</tr>
<tr height="16">
<td height="16" class="xl67"><a href="http://software.intel.com/en-us/forums/showthread.php?t=74203">DPD200095124</a></td>
<td class="xl66">Poor quality problem when decompressing lossless JPEG 2000 bitstream.</td>
</tr>
</tbody>
</table>
<div></div>
<p class="sectionHeading"><br />IPP v7.0 update 1a (18 Nov 2010)</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<colgroup valign="top"></colgroup><colgroup valign="top"></colgroup>
<tbody>
<tr>
<td width="116" height="19" class="xl65">n/a</td>
<td width="692" class="xl65">No change to the product binaries (identical to previous release), only to the installation package number; this release includes separate "generic" px/mx add-on libraries for those applications that require use of these un-optimized versions of the Intel IPP library. See release notes for more info.</td>
</tr>
</tbody>
</table>
<p> </p>
<p class="sectionHeading">IPP v7.0 update 1 (15 Oct 2010)</p>
<p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<colgroup valign="top"></colgroup><colgroup valign="top"></colgroup>
<tbody>
<tr height="19">
<td width="116" height="19" class="xl65">DPD200158806</td>
<td width="692" class="xl65">cpuinfo sample retuns incorrect number of cores on non-Intel processors</td>
</tr>
</tbody>
</table>
</p>
<p class="sectionHeading"><br />IPP v7.0 (12 Aug 2010)</p>
<table width="808" cellpadding="0" cellspacing="0" border="0">
<colgroup valign="top"></colgroup><colgroup valign="top"></colgroup>
<tbody>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200152966</td>
<td width="692" class="xl66">regex expression evaluation too slow.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200092231</td>
<td width="692" class="xl66">Changed type of BMPImageHeader.biHeight from Ipp32u to Ipp32s to support flipped BMP image.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/ru-ru/forums/showthread.php?t=71992">DPD200090212</a></td>
<td width="692" class="xl66">ippsPhase_64fc() produces different results with the static versus dynamic linking.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200187632</td>
<td width="692" class="xl66">Picnic applications incorrectly display signed pixels in DICOM file.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200088436</td>
<td width="692" class="xl66">umc_h264_dec_con throws an exception on line 1056 of umc_h264_segment_decoder_templates.h</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200086860</td>
<td width="692" class="xl66">Multi-threading issues fixed in the H264 decoder.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200134771</td>
<td width="692" class="xl66">Bug in umc_speech_rtp_codec for depacketizing RTAudio data.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200134744</td>
<td width="692" class="xl66">G722.1 Annex C usc_speech_codec encode/decode gives inconsistent results under Linux.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl67">DPD200134603/</td>
<td width="692" rowspan="2" valign="top" class="xl68">ippiYCbCr422ToCbYCr422_8u_P3C2R() added to complement ippiCbYCr422ToYCbCr422_8u_C2P3R().</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl70">DPD200133111</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=73787">DPD200093686</a></td>
<td width="692" class="xl66">UMC h264Decoder-&gt;Reset() crashes when the decoder is initialized to use more then 1 thread.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200137745</td>
<td width="692" class="xl66">UMC H.264 decoder crashes with some data streams (contains some invalid data).</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200148980</td>
<td width="692" class="xl66">UMC H.264 decoder crashes due to multithreading issues.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200154970</td>
<td width="692" class="xl66">UMC h264Decoder-&gt;Reset() crashes due to multithreading issues.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200155165</td>
<td width="692" class="xl66">UMC simple_player does not work with Aero interface in Windows 7 and Vista.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200149412</td>
<td width="692" class="xl66">ipp_bzip2 performance is slower than standard bzip2 performance on some processors.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=70598">DPD200088527</a></td>
<td width="692" class="xl66">Potential source and destination buffer overlap in deflate function of ipp_zlib.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200154900</td>
<td width="692" class="xl66">Data compression deflate() function and bad hash_key.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200155290</td>
<td width="692" class="xl66">Samples and documentation no longer use the OpenMP static libraries.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200157131</td>
<td width="692" class="xl66">ipp-compress sample does not compile due to missing zconf.h file.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200134368</td>
<td width="692" class="xl66">UMC H.264 bug in the state of CABAC under certain conditions.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200141702</td>
<td width="692" class="xl66">ippiResizeSqrPixel "alpha" edge smoothing parameter not properly documented.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200154874</td>
<td width="692" class="xl66">ippsFIR function descriptions are misleading or incorrect in description of "numIter" parameter.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200186071</td>
<td width="692" class="xl66">ippiRGBToYUV documentation (example 6-1) needs to be correct.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200092636</td>
<td width="692" class="xl66">ippiPyramidLayerUp_16u_C1R gives incorrect results.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200082646</td>
<td width="692" class="xl66">ippiMorphReconstructGetBufferSize_* provides wrong buffer size calculation.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200095138</td>
<td width="692" class="xl66">ippsPhase gives incorrect results in v8,p8 etc optimized code with complex value (-0.0,x).</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200186052</td>
<td width="692" class="xl66">DAZ in MXCSR is cleared after ippsSqrt_32f is called.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=70652">DPD200149352</a></td>
<td width="692" class="xl66">G.729 documentation clarification regarding number of RTP streams supported.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=73994">DPD200154537</a></td>
<td width="692" class="xl66">UMC::FileReader does not work correctly with files larger than 2GB in 32bit applications.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200085426</td>
<td width="692" class="xl66">Correct documentation regarding FLAG_FRAGMENTED_AT_I_PICTURES in UMC example.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200082866</td>
<td class="xl73">Linear interpolation accuracy of ippiResizeSqrPixel_16u/16s_** improvements.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200094715</td>
<td width="692" class="xl66">IPPI_INTER_NN interpolation gives some incorrect results for ippiRemap functions.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200134979</td>
<td width="692" class="xl66">ippResizeSqrPixel() error for very small source images (&lt;6 pixels in each direction).</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200152365</td>
<td width="692" class="xl66">Data compressed by IPP-zlib is 3 to 5% larger in size as compared to the open source zlib.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200154198</td>
<td width="692" class="xl66">Data compression error when source buffer size = 64K.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200089840</td>
<td width="692" class="xl66">MSRTA codec crash.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200133131</td>
<td width="692" class="xl66">Add info about anchor indexing to Figure 9-1 and related text.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200086600</td>
<td width="692" class="xl66">Excluding libstdc++ dependency in using ipp_zlib samples.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200151952</td>
<td width="692" class="xl66">IPP-zlib compression generates spurious data that cannot be decompressed.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200150939</td>
<td width="692" class="xl66">MP4 file with video track 2 and audio track 1 triggers a failure to add fragment in InitMoof.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200084541</td>
<td width="692" class="xl66">MPEG-4 multiplexer AAC bitrate informaton is wrong.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=71175">DPD200150940</a></td>
<td width="692" class="xl66">SetTimePosition hangs MP4 playback when stream is fragmented.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200151794</td>
<td width="692" class="xl66">ippGetNumCoresOnDie returns 1 on some quadcore processors.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200082933</td>
<td width="692" class="xl66">Single precision complex FFTs in-place single threads are slower than FFTW 3.2.1.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200134391</td>
<td width="692" class="xl66">JPEG 2000 decoded data is not correct.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200084842</td>
<td width="692" class="xl66">RSA encryption/decryption vs libgmp mpz_powm performance.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=72556">DPD200090957</a></td>
<td width="692" class="xl66">Typo in uic_jpeg_enc.h.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=72557">DPD200090956</a></td>
<td width="692" class="xl66">Bug in jpegenc.cpp sample.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200150199</td>
<td width="692" class="xl66">Error in DIB_PAD_BYTES in UIC picnic sample.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl65"><a href="http://software.intel.com/en-us/forums/showthread.php?t=69164">DPD200148812</a></td>
<td width="692" class="xl66">uscg711.c GetInfoU nPcmTypes should return 1.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200086498</td>
<td width="692" class="xl66">IPP compression does not provide high compression ratios.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200186697</td>
<td width="692" class="xl66">ippiCrossCorrValid_NormLevel_32f_C1R returns exception</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200084252</td>
<td width="692" class="xl66">ippiDecodeCAVLCCoeffs_H264_1u16s() read access violation.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200086788</td>
<td width="692" class="xl66">ippStaticInit() leads to ippiDecodeCAVLCCoeffs_H264() crash.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200148813</td>
<td width="692" class="xl66">Documentation error: ippiCopySubpix/ippiCopySubpixIntersec.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200142053</td>
<td width="692" class="xl66">Documentation error: ippSet() functions in the user manual.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200087211</td>
<td width="692" class="xl66">Documentation error: ippiFilterColumn missing a border.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200089003</td>
<td width="692" class="xl66">Documentation error: the default rounding mode can be described as nearest even.</td>
</tr>
<tr height="16">
<td width="116" height="16" class="xl64">DPD200148814</td>
<td width="692" class="xl66">Documentation error: big number error in the cryptograhy manual.</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-ipp-70-library-bug-fixes/</link>
      <pubDate>Sat, 10 Dec 2011 09:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-ipp-70-library-bug-fixes/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-ipp-70-library-bug-fixes/</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
    </item>
    <item>
      <title>What&amp;#39;s New in Intel® Integrated Performance Primitives(Intel® IPP)</title>
      <description><![CDATA[ <p><span class="sectionHeading">Intel IPP 7.0 - Key New Features<br /></span><br /><strong>• </strong><a target="_blank" href="http://software.intel.com/en-us/articles/intel-ipp-functions-optimized-for-intel-avx-intel-advanced-vector-extensions/"><strong>New performance optimizations for the Intel® Advanced Vector Extensions (Intel AVX)</strong></a> for faster floating point operations in signal processing and image processing domains for the upcoming Sandy Bridge  processors. Find out <a target="_blank" href="http://software.intel.com/en-us/articles/intel-ipp/#details">more performance results </a>with Intel IPP on Intel AVX systems.<br /><br /><strong>• Intel® AES-NI optimization </strong>Advanced Encryption Standard New Instructions (AES-NI) introduced in the new generation of Intel® Core<sup>TM</sup> i7 Processor  (Westmere microarchitecture) offer a <a target="_blank" href="http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/" title="AES-NI support in Intel® IPP">significant increase in performance for cryptography and data compression</a> applications.</p>
<li class="c2">A <a target="_blank" href="http://software.intel.com/en-us/articles/new-directory-structure-and-library-naming-in-ipp/"><strong>New Directory Structure and Library Naming Scheme</strong></a> describes library layout and name changes important to developers. </li>
<p class="c2"> </p>
<li class="c2"><strong>New optimizations for the Intel® Atom<sup>TM</sup></strong> instruction set have been incorporated. Please review the KB article titled <a href="http://software.intel.com/en-us/articles/new-atom-support/"><em>Intel® Atom<sup>TM</sup> Processor support in the Intel® Integrated Performance Primitives (Intel® IPP) Library</em></a> for details regarding which functions now include direct optimization for the Intel Atom processor. </li>
<p><br /><strong>• Improved performance and new high-level data compression libraries (zlib, bzip2, gzip and lzo)<br /></strong> ◊ New CRC32 optimizations (Westmere microarchitecture instruction - pclmulqdq) introduced into ipp_bzip2 and <br /> ipp_zlib to maximize performance.<br /> ◊ CRC32C optimization on Nehalem microarchitecture (crc32 instructions) for additional performance gains.<br /> ◊ ipp_zlib "default" compression ratio is now compatibhe with standard zlib "default" compression level.<br /> ◊ <a target="_blank" href="http://software.intel.com/en-us/articles/lzo-data-compression-support-in-intel-ipp/" title="LZO Data Compression Support in Intel® IPP">New ipp_lzopack library</a> added to the interfaces directory.<br /> ◊ Multi-threading of the ipp_zlib library using OpenMP* for added performance on multi-core processors.<br /> ◊ <a target="_blank" href="http://software.intel.com/en-us/articles/ippsbwtfwd_selectsort-function/" title="ippsBWTFwd Select sort function">New ippsBWTFwd_SelectSort function</a>.<br /><br /><strong>• </strong><a target="_blank" href="http://software.intel.com/en-us/articles/jpeg-new-threading-model-in-ipp/" title="New JPEG threading for performance"><strong>Improved JPEG codec multicore performance scaling</strong></a>: up to 6x speedup on 8-core systems.<br /><br /><strong>• New JPEG-XR CODEC (aka HD Photo) image compression standard which provides:<br /></strong>  ◊ 2x the compression level for the same image quality without need for greater memory or computing resources.<br />  ◊ Lossless and lossy compression as well as incremental decompression of specific image regions.<br />  ◊ Higher dynamic range and color depth than comparable JPEG image codecs.<br />  ◊ Intel IPP codec implementation features include:<br />      - Unified Image Codec (UIC) JPEG-XR sample encoder and decoder with optional tile support for RGB  <br />         color images with and without alpha channel and grayscale images with different bit depths. <br />      - Intel IPP library support for JPEG-XR forward and inverse core transforms for 16s, 32s and 32f data types and Variable  <br />        length code (VLC) encode and decode for 32s data types.<br /><br />Refer to these knowledge base articles to get more information on <a target="_blank" href="http://software.intel.com/en-us/articles/jpeg-xr-codec-support-in-intel-ipp-an-introduction-features-and-advantages/" title="JPEG XR Codec support in Intel® IPP 7.0 ">JPEG-XR </a>and what's new in IPP 7.0 <a target="_blank" href="http://software.intel.com/en-us/articles/uic-samples-updated-to-support-new-jpeg-threading-model/" title="IPP 7.0 Beta UIC Sample code">UIC sample code</a>.<br /><br /><span class="sectionHeading">Other New Features</span></p>
<ul>
<li>Finer control over the internal dispatcher</li>
<li><a target="_blank" href="http://software.intel.com/en-us/articles/control-openmp-thread-affinity-with-ippsetaffinity-function/" title="Affinity function">Affinity functionality</a> for finer control over multi-threading</li>
<li>Several new geometry transforms features</li>
<li>New JPEG color conversion functionality</li>
<li>3D math support added for DirectX support</li>
<li><a target="_blank" href="http://software.intel.com/en-us/articles/smart-dispatcher-for-atommerom-processor-optimized-libraries/" title="Smart Dispatcher for Atom/Merom">Intel Atom processor optimized libraries </a>now included with all distributions</li>
<li>Performance enhancements added to the Unified Media Classes (UMC) samples</li>
<li>Microsoft Windows Imaging Component (WIC) API for faster and easier adoption of IPP image codecs</li>
</ul>
<p><span class="sectionHeading">Support and Feedback<br /></span><br />Submit problem reports, questions and general feedback to the <a target="_blank" href="http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/" title="Intel IPP discussion forum">Intel IPP User Forum</a>, this forum is provided for exclusive discussion of Intel® IPP related information with other Intel IPP developers and Intel IPP engineers.<br /><br />For general information about technical support, product updates, user forums, FAQs, tips and tricks and other support questions, please visit <a href="http://www.intel.com/software/products/support/">http://www.intel.com/software/products/support/</a>.</p>
<p>The following links include additional information regarding the Intel® IPP library:</p>
<ul>
<li class="c0"><a href="http://software.intel.com/en-us/intel-ipp">Intel® IPP Main Product Page</a></li>
<li class="c0"><a href="http://software.intel.com/en-us/articles/intel-ipp-70-library-release-notes/">Intel® IPP 7.0 Library Release Notes</a></li>
<li class="c0"><a href="http://software.intel.com/en-us/articles/intel-ipp-70-library-install-guide/">Intel® IPP 7.0 Library Installation Guide</a></li>
<li class="c0"><a href="http://software.intel.com/en-us/articles/intel-ipp-70-library-system-requirements/">Intel® IPP 7.0 Library System Requirements</a></li>
<li class="c0"><a href="http://software.intel.com/en-us/articles/intel-ipp-70-library-getting-started/">Intel® IPP 7.0 Library Getting Started</a></li>
<li class="c0"><a href="http://software.intel.com/en-us/articles/intel-ipp-70-library-bug-fixes/">Intel® IPP 7.0 Library Bug Fixes</a></li>
</ul>
<p>
<table cellpadding="5" cellspacing="0" rules="none" border="1">
<tbody>
<tr>
<th align="left" valign="middle" >Optimization Notice</th>
</tr>
<tr bgcolor="#ccecff">
<td>
<p>Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.</p>
<p align="right">Notice revision #20110804</p>
</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/whats-new-in-intel-ipp/</link>
      <pubDate>Thu, 04 Nov 2010 09:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/whats-new-in-intel-ipp/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/whats-new-in-intel-ipp/</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
    </item>
    <item>
      <title>Questions and Answers from the Intel® Integrated Performance Primitives Webinar on October 26, 2010</title>
      <description><![CDATA[ <p>The following Q&amp;A session is the result of a webinar titled "<em>Super Charge Applications with: Intel® Integrated Performance Primitives A Component of Intel® Parallel Studio</em>" presented on October 26, 2010 by Walt Shands of Intel Corporation.</p>
<p>You can download and view <a target="_blank" href="http://software.intel.com/file/31673">a recording of the webinar </a>as well as <a target="_blank" href="http://software.intel.com/file/31671">a PDF file of the slides.</a></p>
<table cellpadding="3" cellspacing="3" border="0" >
<colgroup cellpadding="3" border="0" width="20" valign="top" ></colgroup><colgroup cellpadding="3" border="0" valign="middle" ></colgroup>
<tbody>
<tr>
<td>Q:</td>
<td>Does the Intel® Integrated Performance Primitives (Intel® IPP) library support non-Intel processors?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, the library initialization code determines which optimization to execute by evaluating the SIMD instructions supported by the processor and then "dispatching" to the appropriate optimization layer when calls to the library functions are made from your application. See <em><a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/">Understanding CPU Dispatching in the Intel IPP</a> </em>for more information.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>What happens when I run my Intel IPP application on an AMD* CPU or other non-Intel CPU?</td>
</tr>
<tr>
<td>A:</td>
<td>The Intel IPP library is optimized for use with Intel and compatible processors. Applications built with the Intel IPP library will execute on Intel processors and compatible AMD* processors, in 32-bit (IA-32) or 64-bit (Intel 64) addressing/register mode. For more information please see the article titled <em><a target="_blank" href="http://software.intel.com/en-us/articles/use-ipp-on-amd-processor/">Use Intel® IPP on Compatible AMD* Processors</a></em>.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>I am using the Intel Atom processor, E6xx series; does Intel Parallel Studio 2011 work with this processor or must I move to the embedded solution?</td>
</tr>
<tr>
<td>A:</td>
<td>One of the key changes in the 7.0 release of the Intel IPP library is more complete support for Atom-specific optimizations within the standard library distribution. An Atom-specific optimization is included in both the static AND dynamic libraries in the 7.0 version of the library for all operating systems supported by the library. The 7.0 version of the library is included in Intel Parallel Studio 2011. Please read <em><a target="_blank" href="http://software.intel.com/en-us/articles/new-atom-support/">Intel® Atom™ Processors support in the Intel® Integrated Performance Primitives (Intel® IPP) Library</a></em> for more information.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>When coding for the Intel Atom processor via the Intel IPP library, will my Intel IPP code port and scale for use with an Intel Core i7 processor?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, if you use the standard Intel IPP "dispatched model" libraries your code will run properly on either an Intel Atom processor or Intel Core i7 processor -- the only situation where this does not work is when you build using a non-dispatched application, but this is something you would choose to do, not the default case... Please read the article titled <em><a target="_blank" href="http://software.intel.com/en-us/articles/understanding-simd-optimization-layers-and-dispatching-in-the-intel-ipp-70-library/">Understanding SIMD Optimization Layers and Dispatching in the Intel® IPP 7.0 Library</a></em> for more information.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Which compilers are supported by the Intel IPP library?</td>
</tr>
<tr>
<td>A:</td>
<td>You are not required to use the Intel compiler to build your Intel IPP applications. On the Windows platform any compiler compatible with code generated by the Microsoft* Visual Studio* C/C++ compiler should work (including the Intel® C/C++ Compiler for Windows*). On Linux platforms you can use either gcc or the Intel C/C++ Compiler for Linux*. See this <em><a target="_blank" href="http://software.intel.com/en-us/articles/intel-ipp-70-library-system-requirements/">Intel IPP ibrary system requirements KB article</a></em> for more information.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Which version of the Intel IPP library is included with Intel Parallel Studio 2011?</td>
</tr>
<tr>
<td>A:</td>
<td>The initial release of Intel Parallel Studio 2011 contains the first release of the Intel IPP library 7.0 for Windows (v7.0.0). Subsequent releases of the Intel Parallel Studio product (specifically, the Intel Composer bundle) may include updates to this initial release. These article links will take you to tables showing which version of the Intel IPP library is included in the <a target="_blank" href="http://software.intel.com/en-us/articles/which-version-of-ipp--mkl--tbb-is-installed-with-intel-compiler-professional-edition/">Intel Compiler Pro products</a> and as part of the <a target="_blank" href="http://software.intel.com/en-us/articles/which-version-of-the-intel-ipp-intel-mkl-and-intel-tbb-libraries-are-included-in-the-intel-composer-bundles/">Intel Composer bundles</a>.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Are Microsoft* Visual Studio solution and/or project files included with the Intel IPP library?</td>
</tr>
<tr>
<td>A:</td>
<td>Most of the Intel IPP sample files for Windows include a solution file that is compatible with Visual Studio 2005, 2008 or 2010. If a solution or project file is not provided there is normally a batch file and/or makefile that can be used to build the sample from the Windows command-line. In some cases you will find both a solution file and a batch/makefile. Please refer to each particular sample’s readme.htm file which contain information on how to build the sample. The <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">free samples can be downloaded</a> directly from the <a target="_blank" href="http://www.intel.com/software/products/ipp">Intel IPP web site</a>.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Can I use Intel IPP functions from my C# or VB.Net application?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, wrappers are included in the <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">Intel IPP samples</a> illustrating how to call the Intel IPP functions from within the Microsoft .NET environment.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Is the Intel IPP library multi-threaded?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, approximately 15-20% of the functions within the multi-threaded variants of the library are threaded with using Intel OpenMP threading API for use on multi-core processors. You may find full list of threaded IPP functions in "<a target="_blank" href="http://software.intel.com/en-us/articles/threading-and-intel-integrated-performance-primitives/">ThreadedFunctionsList.txt</a>" file which is included in documentation section of IPP install package.  The library is provided in a multi-threaded dynamic-link format, a multi-threaded static-link format and a single-threaded static-link format. All variants of the library are thread-safe. Please read <a target="_blank" href="http://software.intel.com/en-us/articles/openmp-and-the-intel-ipp-library/"><em>OpenMP and the Intel® IPP</em> </a>for more information about the multi-threaded implementation of the library.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Does Intel IPP 7.0 still use the Intel OpenMP library for multi-threading? Does it utilize Intel Cilk Plus or Intel TBB?</td>
</tr>
<tr>
<td>A:</td>
<td>Version 7.0 of the Intel IPP continues to use the Intel OpenMP library to implement threading within the low-level primitives. However, those <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">high-level samples and libraries</a> (such as the data compression libraries and UIC image processing class library) that incorporate multi-threading <em>outside of the Intel IPP functions</em> use a variety of threading techniques. In these cases they may use the Intel OpenMP library, native threading or some other threading mechanism to implement multi-threading within the high-level application. In addition, the Intel IPP Unified Image Codecs high-level sample in Intel IPP v 7.0 use OpenMP for threading in JPEG and JPEG2000 codecs , and uses the Intel TBB for threading in JPEG-XR codec.<br /><br />We continue to evaluate other parallel development models including Intel® Cilk™ Plus, Intel® Threading Building Blocks (Intel® TBB) and Intel® Array Building Blocks (Intel® ArBB) to see how these threading techniques can be integrated into future releaes of the Intel IPP library. For more information about these threading techniques please see the <a target="_blank" href="http://software.intel.com/en-us/articles/intel-parallel-building-blocks/">Intel® Parallel Building Blocks </a>web pages.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Can we choose how many threads are used by the Intel IPP libary and assign which CPU core will execute the Intel IPP functions?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, you can control the number of threads used by the Intel IPP library via the ippSetNumThreads() function call. Additionally, you can control, at a coarse level, how multiple hardware threads are assigned to available cores and Intel Hyper-Threads via the ippSetAffinity() function. Please read <a target="_blank" href="http://software.intel.com/en-us/articles/control-openmp-thread-affinity-with-ippsetaffinity-function/">Control OpenMP Thread Affinity with the ippSetAffinity() Function</a> for more information. If you wish to implement finer control over thread affinity you need to employ the Intel OpenMP library API, which is described within the <a target="_blank" href="http://www.intel.com/software/products/compilers">Intel Compiler documentation</a>.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>How do I tell which library file is required by the linker? For example if I am using: ippsInterpolateC_NR_16s(...)?</td>
</tr>
<tr>
<td>A:</td>
<td>When using Intel Parallel Studio, within the Microsoft Visual Studio development environment, the selection of the library file is automatic. All that is required is that you assert "Use IPP" in the configuration dialog box and "#include &lt;ipp.h&gt;" within your application source file. The ipp.h header file will direct the linker to the correct library file for linking. If you wish to setup your project file manually, please read <em><a target="_blank" href="http://software.intel.com/en-us/articles/simplified-link-instructions-for-the-ipp-library/">Simplified Link Instructions for the IPP Library</a></em> for more information.<br /><br />The IPP functions are contained within the library that contains the prefix of the header file in which the function is declared. For example, the ippsCopy_8u function is declared in the ipps.h file, so you will need to link with the ipps.lib library (for dynamic linkage). Check this article "<a target="_blank" href="http://software.intel.com/en-us/articles/selecting-the-intelr-ipp-libraries-needed-by-your-application/">Selecting the Intel IPP libraries needed by your application</a>" for more information.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Any plans to support GPU rendering with Larrabee?</td>
</tr>
<tr>
<td>A:</td>
<td>At the ISC’10 conference, in June 2010, Intel announced the Intel MIC Architecture to be the new direction for many-core computing. As a result the Larrabee project is no longer targeting discrete graphics. We may include support for GPU rendering as part of the Intel IPP library in future editions of the IPP library, including GEN-based graphics in the upcoming processor codenamed Sandy Bridge; however, no such support is part of version 7.0 of the library.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Some time ago I read about Deferred Mode Image Processing in the Intel IPP, is DMIP included in the latest release? If so, for which platforms?</td>
</tr>
<tr>
<td>A:</td>
<td>Yes, the DMIP sample is part of the Intel IPP version 7.0 release that is included with Intel Parallel Studio 2011. You must <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/">download the Intel IPP samples</a> to obtain the DMIP sample. DMIP is only available on the Intel IPP for Windows platform; other operating systems are not supported by DMIP.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Q:</td>
<td>Any plans to support gaming consoles in the future?</td>
</tr>
<tr>
<td>A:</td>
<td>The Intel IPP library only supports Intel processors and compatible processors and platforms. If your gaming console is based on an Intel or compatible processor and the operating system for the gaming console is compatible with one of those supported by the Intel IPP library, then you might be able to use the Intel IPP library with an application built for a gaming console. Please note that no gaming consoles are validated platforms for the Intel IPP library. See the <em><a target="_blank" href="http://software.intel.com/en-us/articles/intel-ipp-70-library-system-requirements/">Intel® IPP 7.0 Library System Requirements</a></em> page for more information on validated platforms.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/questions-and-answers-from-the-intel-integrated-performance-primitives-webinar-on-october-26-2010/</link>
      <pubDate>Mon, 25 Oct 2010 06:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/questions-and-answers-from-the-intel-integrated-performance-primitives-webinar-on-october-26-2010/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/questions-and-answers-from-the-intel-integrated-performance-primitives-webinar-on-october-26-2010/</guid>
      <category>Intel® IPP</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
    </item>
    <item>
      <title>Understanding SIMD Optimization Layers and Dispatching in the Intel® IPP 7.0 Library</title>
      <description><![CDATA[ <p>This article describes the Intel® Integrated Performance Primitives (Intel® IPP) optimization layers present in the 7.0 version of the library. The article titled <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/"><em>Understanding CPU Dispatching in the Intel® IPP Library</em></a> describes the same features for previous versions of the library (5.3 thru 6.1).</p>
<blockquote>
<p><strong>IMPORTANT!</strong> <em>The minimum SIMD instruction levels supported by version 7.0 of the Intel IPP library has changed!</em> Applications built with this version of the library require that processors must support at least the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instruction set when built for Intel IA-32 processors (ia32) and the Intel® Streaming SIMD Extensions 3 (Intel® SSE3) instruction set when built for Intel® 64 processors (intel64). The non-optimized layers of the library (px on ia32 and mx on intel64) have been removed; the w7 and m7 optimization layers are now the <em>default</em> optimization layers.</p>
</blockquote>
<p>The standard distribution of the Intel IPP library contains multiple, functionally-identical, SIMD-specific, optimized libraries (or layers) that are automatically “dispatched” at run-time. The “dispatcher” directs your calls to the appropriate optimized library layer based on SIMD capabilities discovered during library initialization. This is done to maximize each function’s use of the runtime processor's underlying SIMD instructions and other architecture-specific features.</p>
<blockquote>
<p>Note: you can build custom processor-specific libraries that do not require the dispatcher, but that is outside the scope of this article. Please read this <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-intel-ipp-linkage-models-quick-reference-guide/">IPP linkage models article</a> for information on how to build custom versions of the IPP library.</p>
</blockquote>
<p>Dispatching selects the Intel IPP optimized library layer that corresponds to the runtime CPU's SIMD instruction set. For example, on a Windows installation, the <em>$(IPPROOT)\..\redist\intel64\ipp</em> directory contains a file named <em >ippiu8-7.0.dll</em> which contains version ‘7.0’ of the optimized image processing libraries for processors that support the Intel SSE3 instructions on 64-bit processors; ‘ippi’ denotes the image processing domain, ‘u8’ denotes the SSSE3 instructions set for 64-bit processors and ‘7.0’ denotes the library’s version number.</p>
<p>In the general case, the “dispatcher” identifies the run-time processor only once, at library initialization time, and sets up a variable internal to the library that directs your calls to the SIMD-specific functions that match the runtime processor. For example, <em>ippsCopy_8u()</em>, has multiple implementations stored in the library, with each version optimized to a specific SIMD instruction set. The <em>u8_ippsCopy_8u()</em> version of <em>ippsCopy_8u()</em> is called by the dispatcher when running on an Intel® Core 2 Duo® processor in 64-bit addressing mode, because <em>u8_ippsCopy_8u()</em> is optimized for the SSSE3 instruction set architecture supported by that processor in 64-bit addressing mode.</p>
<blockquote>
<p>Note: IPP architectures generally correspond to SIMD (MMX, SSE, AES, etc.) instructions sets, with some minor variations (see the p8 and y8 optimization layers).</p>
</blockquote>
<p><b>Initializing the IPP Dispatcher</b></p>
<p>Identifying the runtime processor and initializing the dispatcher should be the first action you take with the Intel IPP library. If you are using the standard dynamic link library this process is handled automatically when the Intel IPP shared library is initialized. If you are using a static library you must perform this step manually. <a href="http://software.intel.com/en-us/articles/ipp-dispatcher-control-functions-ippinit-functions/">See this article on the ipp*Init*() functions</a> for more information on how to do this.</p>
<p>Because the minimum SIMD instruction set is SSE2 on IA-32 and SSE3 on Intel 64 processors it is recommended that you <em>ALWAYS</em> call the the <code>ippInit()</code> function before making any other calls to the Intel IPP library. This advice applies regardless of whether you are linking against the static or dynamic form of the library (even though the dynamic library will also perform this call). <br /><br />Calling the <code>ippInit()</code> function with the shared libraries (DLL and SO) will generate an error message to a dialog box or error console if the <code>ippInit()</code> function detects that the runtime CPU is not supported by the Intel IPP library. Calling the <code>ippInit()</code> function in the static versions of the library will not generate a console or dialog message. Both versions of the <code>ippInit()</code> function will return an error code when a non-supported CPU is detected.</p>
<blockquote>
<p>It is important that you call the <code>ippInit()</code> function at the beginning of your application to insure that the processor on which your application is running will support the Intel IPP library. If the <code>ippInit()</code> function returns an error code you should close your application gracefully in order to avoid an unexpected termination of your application by an <em>invalid instruction fault</em> because your application is running on an unsupported processor.</p>
</blockquote>
<p>The following table lists the SIMD architecture codes supported by version 7.0 of the Intel IPP library.</p>
<table width="700" cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="114"><strong>Platform</strong></td>
<td width="84" ><strong>Architecture</strong></td>
<td width="238"><strong>SIMD Requirements</strong></td>
<td width="163"><strong>Processor / µarchitecture</strong></td>
<td width="100"><strong>Notes</strong></td>
</tr>
<tr>
<td>IA-32</td>
<td >w7</td>
<td>SSE2</td>
<td>P4, Xeon, Centrino</td>
<td>SSE2 default</td>
</tr>
<tr>
<td></td>
<td >v8</td>
<td>Supplemental SSE3</td>
<td>Core 2, Xeon® 5100, Atom</td>
<td></td>
</tr>
<tr>
<td></td>
<td >s8</td>
<td>Supplemental SSE3 (<a href="http://software.intel.com/en-us/articles/new-atom-support/">compiled for Atom</a>)</td>
<td>Atom</td>
<td></td>
</tr>
<tr>
<td></td>
<td >p8</td>
<td>SSE4.1, SSE4.2 and AES-NI</td>
<td>Penryn, Nehalem, Westmere</td>
<td>see next section</td>
</tr>
<tr>
<td></td>
<td >g9</td>
<td><a href="http://www.intel.com/software/avx">AVX</a></td>
<td>Sandy Bridge µarchitecture</td>
<td></td>
</tr>
<tr>
<td></td>
<td ></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Intel® 64 (EM64T)</td>
<td >m7</td>
<td>SSE3</td>
<td>Prescott</td>
<td>SSE3 default</td>
</tr>
<tr>
<td></td>
<td >u8</td>
<td>Supplemental SSE3</td>
<td>Core 2, Xeon® 5100, Atom</td>
<td></td>
</tr>
<tr>
<td></td>
<td >n8</td>
<td>Supplemental SSE3 (<a href="http://software.intel.com/en-us/articles/new-atom-support/">compiled for Atom</a>)</td>
<td>Atom</td>
<td></td>
</tr>
<tr>
<td></td>
<td >y8</td>
<td>SSE4.1, SSE4.2, AES-NI</td>
<td>Penryn, Nehalem, Westmere</td>
<td>see next section</td>
</tr>
<tr>
<td></td>
<td >e9</td>
<td><a href="http://www.intel.com/software/avx">AVX</a></td>
<td>Sandy Bridge µarchitecture</td>
<td></td>
</tr>
</tbody>
</table>
<p><br />For non-Intel based processors support, please read <a target="_blank" href="http://software.intel.com/en-us/articles/use-ipp-on-amd-processor/"><em>Use Intel® IPP on Intel or Compatible AMD* Processors</em></a>.</p>
<p>If you compare this dispatch table above to the <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/">5.3 thru 6.1 dispatch table</a> you will note that the Intel SSE3 optimization layer (t7) has been removed from the 32-bit edition (ia32) of the library. 32-bit applications built with the 7.0 version of the library that execute on an SSE3 processor will automatically use the Intel SSE2 optimization layer (w7). In most cases, the impact of this change is minor, since the performance difference between the Intel SSE3 (t7) and Intel SSE2 (w7) optimization layers in the Intel IPP library is minimal. Processors that support the Intel SSSE3 instruction set (v8 and s8 optimization layers) are not affected by this change. (Note: this change does not impact applications built using the 64-bit edition of the library, which now uses the Intel SSE3 optimization layer (m7) as its default path.)</p>
<p><b>P8/Y8 Internal Run-Time Dispatcher</b></p>
<p>Within the 32-bit p8 and equivalent 64-bit y8 architectures there is an additional "runtime dispatcher," a mini-dispatcher. The Nehalem and Westmere processor microarchitectures add additional SIMD instructions beyond those defined by SSE4.1. The Nehalem processor microarchitecture added SSE4.2 SIMD instructions and the Westmere processor microarchitecture added Inte® AES-NI.</p>
<p>Creating two separate optimization layers within the IPP library for the small set of instructions added by SSE4.2 and AES-NI would be very space inefficient, so they are bundled into the SSE4.1 library (p8/y8) as minor variants to that optimization layer. When you call a function that includes, for example, AES-NI optimizations, an additional jump directs your call to the AES-NI version within the p8/y8 library if your runtime processor supports these instructions. Because the enhancements affect the optimization of only a small number of Intel IPP functions, this additional overhead occurs infrequently and only when your application is executing on a p8/y8 architecture processor that supports these extra instructions.</p>
<p><b>S8/N8 (Atom) Dispatch</b></p>
<p>Unlike preceding versions of the library, the 7.0 version of the Intel IPP library <em>does</em> include Atom-optimized variants of the library within all formats (static and dynamic) of the library. For this reason, the Linux distribution of the 7.0 version of the Intel IPP library no longer includes a separate Atom-specific version of the library, since Atom-specific optimizations have been fully merged into all formats of the standard library files. <br /><br />Please read <a href="http://software.intel.com/en-us/articles/new-atom-support/"><em>Intel® Atom™ Processors Support in the Intel® Integrated Performance Primitives (Intel® IPP) Library</em></a> for more information regarding Atom optimizations in the IPP library.</p>
<p><strong>Processor Architecture Table</strong></p>
<p><span >The following table was copied from an <a target="_blank" href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations/" >Intel Compiler Pro options article</a> describing some compiler architecture options. It contains a list of Intel processors showing which processors support which SIMD instructions. For the latest table please refer to the original article; it gets updated on a regular basis. Please note that the behavior of the Intel Compiler SIMD dispatcher described in <a target="_blank" href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations/" >that article</a> does not apply to the Intel IPP library.</span></p>
<blockquote>The Intel IPP library dispatching mechanism behaves differently than that found in the Intel Compiler products, and may also behave differently than other Intel library products.</blockquote>
<p>Additional information regarding dispatching and how it relates to <a target="_blank" href="http://software.intel.com/en-us/articles/use-ipp-on-amd-processor/">non-Intel processors can be found here</a>. How to identify your specific processor is <a target="_blank" href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-is-there-any-function-to-detect-processor-type/">described here</a>. To correlate a processor family name with an Intel CPU brand name, use the following web site: <a target="_blank" href="http://ark.intel.com/">ark.intel.com</a>.</p>
<p><b><b>SSE</b>4.2</b><br />Intel® Core™ i7 processors<br />Intel® Core™ i5 processors<br />Intel® Core™ i3 processors<br />Intel® Xeon® 55XX series</p>
<p><b><b>SSE</b>4.1<br /></b>Intel® Xeon® 74XX series<br />Quad-Core Intel® Xeon 54XX, 33XX series<br />Dual-Core Intel® Xeon 52XX, 31XX series<br />Intel® Core™ 2 Extreme 9XXX series<br />Intel® Core™ 2 Quad 9XXX series<br />Intel® Core™ 2 Duo 8XXX series<br />Intel® Core™ 2 Duo E7200</p>
<p><b><b>SSSE</b>3</b><br />Quad-Core Intel® Xeon® 73XX, 53XX, 32XX series<br />Dual-Core Intel® Xeon® 72XX, 53XX, 51XX, 30XX series<br />In tel® Core™ 2 Extreme 7XXX, 6XXX series<br />Intel® Core™ 2 Quad 6XXX series<br />Intel® Core™ 2 Duo 7XXX (except E7200), 6XXX, 5XXX, 4XXX series<br />Intel® Core™ 2 Solo 2XXX series<br />Intel® Pentium® dual-core processor E2XXX, T23XX series</p>
<p><b><b>SSE</b>3</b><br />Dual-Core Intel® Xeon® 70XX, 71XX, 50XX Series<br />Dual-Core Intel® Xeon® processor (ULV and LV) 1.66, 2.0, 2.16<br />Dual-Core Intel® Xeon® 2.8<br />Intel® Xeon® processors with SSE3 instruction set support<br />Intel® Core™ Duo<br />Intel® Core™ Solo<br />Intel® Pentium® dual-core processor T21XX, T20XX series<br />Intel® Pentium® processor Extreme Edition<br />Intel® Pentium® D<br />Intel® Pentium® 4 processors with SSE3 instruction set support</p>
<p><b><b>SSE</b>2</b><br />Intel® Xeon® processors<br />Intel® Pentium® 4 processors<br />Intel® Pentium® M</p>
<p><b>IA32</b><br />Intel® Pentium® III Processor<br />Intel® Pentium® II Processor<br />Intel® Pentium® Processor</p>
<p>
<table cellpadding="5" cellspacing="0" rules="none" border="1">
<tbody>
<tr>
<th align="left" valign="middle" >Optimization Notice</th>
</tr>
<tr bgcolor="#ccecff">
<td>
<p>Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.</p>
<p align="right">Notice revision #20110804</p>
</td>
</tr>
</tbody>
</table>
</p>
<br />*Other names and brands may be claimed as the property of others. ]]></description>
      <link>http://software.intel.com/en-us/articles/understanding-simd-optimization-layers-and-dispatching-in-the-intel-ipp-70-library/</link>
      <pubDate>Mon, 04 Oct 2010 09:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/understanding-simd-optimization-layers-and-dispatching-in-the-intel-ipp-70-library/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/understanding-simd-optimization-layers-and-dispatching-in-the-intel-ipp-70-library/</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
    </item>
    <item>
      <title>Use Intel IPP in Intel® Parallel Studio</title>
      <description><![CDATA[ <p>Intel® IPP is part of Intel® Parallel Studio.  Once you install Parallel Studio, IPP will be installed as one component of Intel® Parallel Composer automatically.  (See detials in <a href="http://software.intel.com/en-us/articles/new-directory-structure-and-library-naming-in-ipp/">the IPP library layout in Parallel Studio</a>.) This privodes us a easy way to use IPP in Parallel Studio.  This article describes how to develop IPP application in Intel® Parallel Studio in two steps. <br /><br /><b>Preparation</b> <br />Create a Visual C++ project for your application <br />or <br />There are ready IPP samples (Microsoft Visual Studio 2005 Project) located in the Parallel Studio install directory <br />For example, enter C:\Program Files\Intel\Parallel Studio 2011\Composer\Samples\en_US\IPP\ipp-samples-string\ipp-samples\string-processing\ippgrep. Double click ippgrep.sln. The MSVC solution will be open in Visual Studio 2005/2008/2010.  <br /><br />Then from the <b>Menu » Project </b> (or right-click the Project in Solution Explorer) select<b> Intel Parallel Composer 2011 »</b> <b>Using Intel C++ .... .</b> The project will be converted to Intel Composer project. <br /><br /><b>Use IPP In  Intel® Parallel Composer<br />Step 1</b>. <b>write IPP code <br /></b>include IPP header file and call IPP function in your code <img src="http://software.intel.com/file/19468" alt="build1.JPG" title="build1.JPG" width="878" height="518" /></p>
<p><b>Step 2</b> . <b>Link IPP library in your application<br /></b>From the <b>Menu &gt;&gt; project </b> (or right-click the Project in Solution Explorer) select<b> Intel Parallel Composer 2011 »</b> <b>Select Build Components, Check the box Use IPP. </b>The setting will link IPP dynamic library atomatically.  If your application is build sucessfully, you can run the exe. <br /> <img src="http://software.intel.com/file/29926" alt="Composer_2011_ipp_2005.JPG" title="Composer_2011_ipp_2005.JPG" /></p>
<p><b> Note<br /></b>1. If you'd like link the IPP static library, please download and install IPP static library first.  See Download IPP Static Libraries for Intel Parallel Studio.  <br />2. If you'd like link the IPP library and set IPP library path manually,  you may follow the steps on <a href="http://software.intel.com/en-us/articles/compiling-and-linking-ipp-applications-with-intel-c-compilers/">Compiling and Linking Intel® IPP with latest Intel® C++ Compilers</a> <br />3. If you run into any IPP issues, please refer to the KB <a href="http://software.intel.com/en-us/articles/how-to-build-ipp-application/"><b>How to Build an Intel IPP Application </b></a>=&gt; <b>Troubleshooting - Compile and Linking Errors</b> or report your issue to <a href="http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/"><b>IPP forum</b></a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/</link>
      <pubDate>Wed, 01 Sep 2010 21:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/use-intel-ipp-in-intel-parallel-composer/</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>AES-NI support in Intel® IPP</title>
      <description><![CDATA[ <p>The Advanced Encryption Standard New Instructions (AES-NI) introduced in the new generation of Core i7 processors (Westmere microarchitecture) offer a significant increase in performance on cryptography and data compression. Please see this <a href="http://software.intel.com/en-us/articles/advanced-encryption-standard-aes-instructions-set/">AES techinal article </a>for more information about AES-NI.<br /><br />Intel IPP 6.1 update 2 include optimizations for the AES-NI instructions, which are improved consistantly in later version. Discussions in the article I<a href="http://software.intel.com/en-us/articles/new-nehalem-support/">ntel® Core<sup>TM</sup> i7 processor Support</a> and in forum <a href="http://software.intel.com/en-us/forums/showthread.php?t=71133">AES-NI support for Westmere</a> are clarified below.<br /><br /><strong>1.The "p8" (IA32) and "y8" (Intel 64) IPP architectures include AES-NI optimizations for Westmere.</strong> <br /><br />If you build your application with IPP 6.1 update 2 or higher on a Westmere microarchitecture processor, the p8/y8 code will use code that has been optimized for your processor. The following functions in the Intel IPP cryptography add-on library are optimizied for Westmere (in IPP 6.1 update 2 and later):<br /><br />ippsRijndael128{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br />ippsRijndael128CCM{Encrypt|Decrypt},<br />ippsRijndael128GCMProcess{IV|AAD}<br /><br />ippsRijndael192{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br />ippsRijndae256{Encrypt|Decrypt{ECB|CBC|CFB|OFB|CTR} }<br /><br />ippsDAARijndael128Update, ippsDAARijndael128Final<br />ippsDAARijndael192Update, ippsDAARijndael192Final<br />ippsDAARijndael256Update, ippsDAARijndael256Final<br /><br />ippsXCBCRijndael128Update, ippsXCBCRijndael128Final<br /><br />The functions below are also optimized for Westmere and starting in IPP 6.1 update 3:<br /><br />ippsCRC32_8u<br />ippsCRC32_BZ2_8u<br /><br />You may need to update your IPP version to take full benefit of IPP library optimizations for the Westmere microarchitecture. Run the <em>cpuinfo</em> sample in the <em>ipp-samples/advanced-usage/cpuinfo</em> folder on your Westmere processor to ensure the p8 or y8 code is recommended as the library architecture to be used.<br /><br /><strong>2. Penryn (SSE4.1), Nehalem (SSE4.2) and Westmere (AES-NI) share the same optimized IPP library: "p8" (for IA32) and "y8" (for Intel 64).</strong> <br /><br />Please see the article <a href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/">Understanding CPU Dispatching in the Intel® IPP Library</a> for more information about the IPP library dispatching mechanism.<br /><br />The AES-NI instructions introduced with the Westmere microarchitecture processors are beneficial mostly to cryptography algorithms and a small subset of data compression algorithms. Rather than increase the size of the IPP library by adding a new IPP architecture with a limited set of functions that can take advantage of these new instructions, we extended the run-time dispatcher to check for support of AES-NI and branch to AES-optimized code within the Core i7 optimized library. <br /><br /><strong>3. AES performance test on Westmere<br /></strong>The application note <a href="http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/"><b>Boosting OpenSSL AES Encryption with Intel® IPP </b></a><a target="_blank" href="http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/feed/"></a> provide some performance data of IPP AES functions comparing with OpenSSL AES Encryption. <br /><br />Also the article <a href="http://software.intel.com/en-us/articles/performance-of-crypto-sample-for-openssl-slowing-down-on-hyper-threading-systems/">IPP Crypto Sample Performance for OpenSSL too Slow on Hyper-Threading Systems</a> describe more information on performance test method. In summary, use one of the following solutions to insure appropriate results:</p>
<li>disable Intel HT Technology (usually done via a configuration switch in the BIOS) and set the KMP_AFFINITY=compact</li>
<li>disable multi-threading by linking with the static single-threaded version of the Intel IPP library if HT is enable</li>
<li>disable multi-threading within the multi-threaded Intel IPP libraries by calling <em>ippSetNumThreads(1)</em> if HT is enable</li>
<li>configure OpenMP to use 1/2 of the available logical threads if HT is enable <em>and</em> set the KMP_AFFINITY environment variable as follows: <em>KMP_AFFINITY=granularity=fine, compact,1,0</em> </li>
<p><br />The Intel® C/C++ Compiler version 11 also includes support for AES-NI, see <a href="http://software.intel.com/en-us/articles/how-to-compile-for-the-intel-core-i5-processor-with-aes-ni/">How to Compile for the Intel® Core<sup>TM</sup> i5 processor with AES-NI</a>, as does Microsoft* Visual Studio* 2008 Service Pack 1 compiler and gcc version 4.4.<br /><br /><strong>How to Download the Cryptography Library Add-on for the Intel IPP Library</strong></p>
<p>The cryptography component of the IPP library is subject to US Export Administration Regulations and other US laws. To obtain the Intel IPP cryptography libraries, which must be downloaded separately, <a s_oid="https://registrationcenter.intel.com/regcenter/dplrequestgen.aspx?productid=1338" s_oidt="0" target="_blank" href="https://registrationcenter.intel.com/regcenter/dplrequestgen.aspx?productid=1338">register for eligibility</a> and follow the instructions you receive in the registration email. If you have additional questions review this knowledge base article on <a target="_blank" href="http://software.intel.com/en-us/articles/download-ipp-cryptography-libraries">how to download the cryptography library</a> component of the IPP library.</p>
<p>You must have a valid Intel IPP license key to install and use the Intel IPP libraries.</p>
<p>To see an advantage of AES-NI optimization in the crypto engine, refer to <a href="http://software.intel.com/en-us/articles/demo-advantage-of-westmere-crypto-acceleration-engine/">AES-NI demo</a>. </p>
<p>
<table cellpadding="5" cellspacing="0" rules="none" border="1">
<tbody>
<tr>
<th align="left" valign="middle" >Optimization Notice</th>
</tr>
<tr bgcolor="#ccecff">
<td>
<p>Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.</p>
<p align="right">Notice revision #20110804</p>
</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/</link>
      <pubDate>Fri, 05 Feb 2010 09:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
  </channel></rss>
