Fourier correlation has many applications:
- Measure the similarity of two signals
- Find the best translation to overlay similar images
- Segment volumetric medical images
A Fourier correlation algorithm† can be composed from Intel® oneAPI Math Kernel Library (oneMKL) functions for easy offload to various accelerators such as GPUs and FPGAs.
In this session, senior principal software engineer Henry Gabb:
- Covers the basics of:
- Data Parallel C++ (DPC++) queues
- Buffers, Unified Shared Memory (USM), and data movement
- Implicit vs. explicit synchronization
- Walks through buffered and USM implementations of a 1D Fourier correlation
- Discusses the movement of data between host and device and ways to avoid unnecessary data movement
† correlation=MAXLOC(IDFT(signal1)*CONJG(DFT(SIGNAL2)))) where DFT is the discrete Fourier transform, IDFT is the inverse DFT, CONJG is the complex conjugate, and MAXLOC is the location of the maximum correlation score
Japanese Language Version
Get the Software
- Get DPC++ and oneMKL as part of the Intel® oneAPI Base Toolkit—a foundational set of tools and libraries for developing high-performance, data-centric applications across diverse architectures.
- Download the stand-alone version of oneMKL.
- Learn more about DPC++.
- Sign up for an Intel® DevCloud account—a free development sandbox with access to the latest Intel® hardware and oneAPI software.
- Explore oneAPI including developer opportunities and benefits.
- Subscribe to Code Together, an interview series that explores the challenges at the forefront of cross-architecture development. Each biweekly episode features industry VIPs who are blazing new trails through today's data-centric world. Available wherever you get your podcasts.