<?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: ippsDecodeLZ4_8u (clarification) in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1747063#M29215</link>
    <description>Thanks for clarifying but I guess my point is the function should never overrun the output buffer beyond the actual payload bytes.&lt;BR /&gt;&lt;BR /&gt;Again the +33 bytes requirement makes the function unusable in many scenarios.&lt;BR /&gt;&lt;BR /&gt;Allocating an intermediate buffer and copying the data is certain to negate whathever performance gain you get by having those 33 bytes.&lt;BR /&gt;&lt;BR /&gt;Imagine you are decompressing 500 megabytes, how much performance do you gain by decompressing the last few bytes with normal instructions instead of one last SIMD instruction that sometimes overruns? Nothing.&lt;BR /&gt;&lt;BR /&gt;If the memory happens to be at the end of a page the decompression function will fault, which is unacceptable, and again allocating extra bytes just to accommodate for this behavior is often not an option.&lt;BR /&gt;&lt;BR /&gt;The fix is to make sure the function never overruns, not to document that it does.</description>
    <pubDate>Thu, 07 May 2026 06:48:36 GMT</pubDate>
    <dc:creator>axelriet</dc:creator>
    <dc:date>2026-05-07T06:48:36Z</dc:date>
    <item>
      <title>ippsDecodeLZ4_8u (clarification)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1733808#M29188</link>
      <description>&lt;P&gt;&lt;SPAN&gt;The documentation for ippsDecodeLZ4_8u is straightforward, but the sample code&amp;nbsp;&lt;A href="https://www.intel.com/content/www/us/en/docs/ipp/developer-guide-reference/2022-2/decodelz4.html" target="_blank" rel="noopener"&gt;on the page&lt;/A&gt;&amp;nbsp;increases the output buffer size by 33 bytes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The requirement to add 33 bytes beyond what is necessary to hold the decompressed data is not documented for this parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are the 33 bytes mandatory? If yes, that makes the function (and therefore LZ4) unusable in many scenarios; for example, I decode into a buffer I don't allocate, so I don't control its size. If I have to allocate an intermediate buffer, copy the data, and free the buffer, that certainly negates any performance gain you may achieve by having those 33 bytes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My concise question is: are the extra 33 bytes necessary?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If&amp;nbsp;&lt;SPAN&gt;so, you should provide a new ippsDecodeLZ4&lt;STRONG&gt;Safe&lt;/STRONG&gt;_8u function that never overruns the destination buffer defined by the decompressed data size&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Axel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 17 Jan 2026 03:54:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1733808#M29188</guid>
      <dc:creator>axelriet</dc:creator>
      <dc:date>2026-01-17T03:54:39Z</dc:date>
    </item>
    <item>
      <title>Re: ippsDecodeLZ4_8u (clarification)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1747059#M29214</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Thank you for reporting this issue. You are correct that the extra bytes are required. This is because internal SIMD optimizations in our implementation. This requirement is currently not documented in the API reference and it is a gap. We are tracking your feedback and will address the documentation in a future release.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2026 06:27:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1747059#M29214</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2026-05-07T06:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: ippsDecodeLZ4_8u (clarification)</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1747063#M29215</link>
      <description>Thanks for clarifying but I guess my point is the function should never overrun the output buffer beyond the actual payload bytes.&lt;BR /&gt;&lt;BR /&gt;Again the +33 bytes requirement makes the function unusable in many scenarios.&lt;BR /&gt;&lt;BR /&gt;Allocating an intermediate buffer and copying the data is certain to negate whathever performance gain you get by having those 33 bytes.&lt;BR /&gt;&lt;BR /&gt;Imagine you are decompressing 500 megabytes, how much performance do you gain by decompressing the last few bytes with normal instructions instead of one last SIMD instruction that sometimes overruns? Nothing.&lt;BR /&gt;&lt;BR /&gt;If the memory happens to be at the end of a page the decompression function will fault, which is unacceptable, and again allocating extra bytes just to accommodate for this behavior is often not an option.&lt;BR /&gt;&lt;BR /&gt;The fix is to make sure the function never overruns, not to document that it does.</description>
      <pubDate>Thu, 07 May 2026 06:48:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippsDecodeLZ4-8u-clarification/m-p/1747063#M29215</guid>
      <dc:creator>axelriet</dc:creator>
      <dc:date>2026-05-07T06:48:36Z</dc:date>
    </item>
  </channel>
</rss>

