Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Fast Instruction Selection for Fast Digital Signal Processing

Fast Instruction Selection for Fast Digital Signal Processing

Thumbnail Image
Download
Name

3623278.3624768.pdf

Size

1.34 MB

Format

Adobe PDF

Checksum (MD5)

b113f816d944050022462d0fc9da529a

Download all files submitted through automated deposit
3623278.3624768.zip (1.32 MB)
Author(s)
Root, Alexander J
•
Ahmad, Maaz Bin Safeer
•
Sharlet, Dillon
•
Adams, Andrew
•
Kamil, Shoaib
•
Ragan-Kelley, Jonathan
Date Issued
March 25, 2023
Publisher
ACM
Citation
Root, Alexander J, Ahmad, Maaz Bin Safeer, Sharlet, Dillon, Adams, Andrew, Kamil, Shoaib et al. 2023. "Fast Instruction Selection for Fast Digital Signal Processing."
Version
Final published version
Abstract
Modern vector processors support a wide variety of instructions for fixed-point digital signal processing. These instructions support a proliferation of rounding, saturating, and type conversion modes, and are often fused combinations of more primitive operations. While these are common idioms in fixed-point signal processing, it is difficult to use these operations in portable code. It is challenging for programmers to write down portable integer arithmetic in a C-like language that corresponds exactly to one of these instructions, and even more challenging for compilers to recognize when these instructions can be used. Our system, Pitchfork, defines a portable fixed-point intermediate representation, FPIR, that captures common idioms in fixed-point code. FPIR can be used directly by programmers experienced with fixed-point, or Pitchfork can automatically lift from integer operations into FPIR using a term-rewriting system (TRS) composed of verified manual and automatically-synthesized rules. Pitchfork then lowers from FPIR into target-specific fixed-point instructions using a set of target-specific TRSs. We show that this approach improves runtime performance of portably-written fixed-point signal processing code in Halide, across a range of benchmarks, by geomean 1.31x on x86 with AVX2, 1.82x on ARM Neon, and 2.44x on Hexagon HVX compared to a standard LLVM-based compiler flow, while maintaining or improving existing compile times.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution
https://creativecommons.org/licenses/by/4.0/
Persistent DSpace Link
https://hdl.handle.net/1721.1/153625
DOI of Published Version
https://doi.org/10.1145/3623278.3624768
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.