<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ipp on icyveins7's blog</title><link>https://icyveins7.github.io/tags/ipp/</link><description>Recent content in Ipp on icyveins7's blog</description><generator>Hugo</generator><language>en-us</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 15 Jul 2024 20:00:00 +0800</lastBuildDate><atom:link href="https://icyveins7.github.io/tags/ipp/index.xml" rel="self" type="application/rss+xml"/><item><title>Some notes on 2D real-to-complex Fourier transforms</title><link>https://icyveins7.github.io/posts/2024/07/some-notes-on-2d-real-to-complex-fourier-transforms/</link><pubDate>Mon, 15 Jul 2024 20:00:00 +0800</pubDate><guid>https://icyveins7.github.io/posts/2024/07/some-notes-on-2d-real-to-complex-fourier-transforms/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;IPP in particular has some very niche ways of packing R2C DFT output, but otherwise there&amp;rsquo;s a few pointers here to keep in mind for how they are implemented in most libraries.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;It&amp;rsquo;s pretty well known that the output of a Fourier transform of real inputs has symmetric properties. This is due to the fact that real waves consist of two conjugate pairs of complex exponentials.&lt;/p&gt;&#10;&lt;p&gt;What may be a bit less obvious (at least to me, when examining some programming libraries) is exactly how many useful output elements there are, and under which scenarios. In particular, I looked at IPP (which has some special packed structure), and cuFFT/NumPy/SciPy (which follow the FFTW structure I think).&lt;/p&gt;</description></item><item><title>Getting IPP to work on non-Intel chips</title><link>https://icyveins7.github.io/posts/2024/02/getting-ipp-to-work-on-non-intel-chips/</link><pubDate>Mon, 19 Feb 2024 20:00:00 +0800</pubDate><guid>https://icyveins7.github.io/posts/2024/02/getting-ipp-to-work-on-non-intel-chips/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Intel Performance Primitives is not guaranteed to work on non-Intel chips, but there are some ways around it..&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Over the last year or so I&amp;rsquo;ve written a C++ wrapper of header-only templates around a library known as Intel Performance Primitives (IPP). I often use this for its signal processing library, which is - at least by my measurements - one of the fastest, if not the fastest one around. It also has the benefit of having almost everything I need in one place: FFT/DFTs, math array processing, low-pass filtering etc. You can see my templates at the &lt;a href="https://github.com/icyveins7/ipp_ext"&gt;&lt;code&gt;ipp_ext&lt;/code&gt;&lt;/a&gt; repository.&lt;/p&gt;</description></item></channel></rss>