{"repo":"keijiro/BurstFFT","free":true,"listed":false,"github":"https://github.com/keijiro/BurstFFT","clone":"git clone https://github.com/keijiro/BurstFFT.git","description":"FFT implementation in C# optimized for Unity's Burst compiler","language":"C#","stars":188,"topics":["unity","unity3d","fft"],"license":"Unlicense","category":"game-templates","readme_excerpt":"BurstFFT ======== BurstFFT is an FFT (Fast Fourier Transform) implementation in high-performance C# with Unity's Burst compiler. This repository contains the following three variants of Fourier transform implementation. - NaiveDFT: Unoptimized naive C# implementation of DFT - BurstDFT: Vectorized/parallelized DFT implementation, optimized with Burst - BurstFFT: Vectorized Cooley-Tukey FFT implementation, optimized with Burst You can also enable parallelization on BurstFFT by disabling the SINGLE THREAD symbol in BurstFft.cs . Results ------- Windows Desktop (Ryzen 7 3700X, 3.6GHz, 8 cores) MacBook Pro 15 Late 2013 (Core i7, 2.3GHz, 4 cores) Thoughts and Findings --------------------- - It's quite easy to parallelize DFT with Unity's C# Job System. The more cores it has, the faster it runs. - Although the parallelized DFT runs quite fast compared to the unoptimized one, it never beat the single-threaded FFT. - The traditional Cooley-Tukey FFT is hard to parallelize in a performant way. The results above show that the 8-core BurstFFT runs slower than the 4-core one.","default_branch":null,"files":null,"tree":[],"storefront":"/r/keijiro","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/keijiro/BurstFFT/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}