# TransPimLib: A Library for Efficient Transcendental Functions on Processing-in-Memory Systems

arXiv: https://arxiv.org/abs/2304.01951 · HTML: https://mlsanity.com/paper/2304.01951/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 23 of its 138 references that are in the map.
- First posted on arXiv 3 Apr 2023.

## Builds on (most cited first, 23 of 23)

- [Gaussian Error Linear Units (GELUs)](https://mlsanity.com/paper/1606.08415/) (2016)
- [Deep Learning Recommendation Model for Personalization and Recommendation Systems](https://mlsanity.com/paper/1906.00091/) (2019)
- [PUMA: A Programmable Ultra-efficient Memristor-based Accelerator for Machine Learning Inference](https://mlsanity.com/paper/1901.10351/) (2019)
- [Neural Cache: Bit-Serial In-Cache Acceleration of Deep Neural Networks](https://mlsanity.com/paper/1805.03718/) (2018)
- [A Modern Primer on Processing in Memory](https://mlsanity.com/paper/2012.03112/) (2020)
- [Google Neural Network Models for Edge Devices: Analyzing and Mitigating Machine Learning Inference Bottlenecks](https://mlsanity.com/paper/2109.14320/) (2021)
- [Processing Data Where It Makes Sense: Enabling In-Memory Computation](https://mlsanity.com/paper/1903.03988/) (2019)
- [PANTHER: A Programmable Architecture for Neural Network Training Harnessing Energy-efficient ReRAM](https://mlsanity.com/paper/1912.11516/) (2019)
- [Benchmarking Memory-Centric Computing Systems: Analysis of Real Processing-in-Memory Hardware](https://mlsanity.com/paper/2110.01709/) (2021)
- [GRIM-Filter: Fast Seed Location Filtering in DNA Read Mapping Using Processing-in-Memory Technologies](https://mlsanity.com/paper/1711.01177/) (2017)
- [NATSA: A Near-Data Processing Accelerator for Time Series Analysis](https://mlsanity.com/paper/2010.02079/) (2020)
- [DAMOV: A New Methodology and Benchmark Suite for Evaluating Data Movement Bottlenecks](https://mlsanity.com/paper/2105.03725/) (2021)
- [GenASM: A High-Performance, Low-Power Approximate String Matching Acceleration Framework for Genome Sequence Analysis](https://mlsanity.com/paper/2009.07692/) (2020)
- [SynCron: Efficient Synchronization Support for Near-Data-Processing Architectures](https://mlsanity.com/paper/2101.07557/) (2021)
- [Benchmarking a New Paradigm: An Experimental Analysis of a Real Processing-in-Memory Architecture](https://mlsanity.com/paper/2105.03814/) (2021)
- [NERO: A Near High-Bandwidth Memory Stencil Accelerator for Weather Prediction Modeling](https://mlsanity.com/paper/2009.08241/) (2020)
- [QUAC-TRNG: High-Throughput True Random Number Generation Using Quadruple Row Activation in Commodity DRAM Chips](https://mlsanity.com/paper/2105.08955/) (2021)
- [D-RaNGe: Using Commodity DRAM Devices to Generate True Random Numbers with Low Latency and High Throughput](https://mlsanity.com/paper/1808.04286/) (2018)
- [In-DRAM Bulk Bitwise Execution Engine](https://mlsanity.com/paper/1905.09822/) (2019)
- [FIGARO: Improving System Performance via Fine-Grained In-DRAM Data Relocation and Caching](https://mlsanity.com/paper/2009.08437/) (2020)
- [Intelligent Architectures for Intelligent Computing Systems](https://mlsanity.com/paper/2012.12381/) (2020)
- [A Framework for High-throughput Sequence Alignment using Real Processing-in-Memory Systems](https://mlsanity.com/paper/2208.01243/) (2022)
- [High-throughput Pairwise Alignment with the Wavefront Algorithm using Processing-in-Memory](https://mlsanity.com/paper/2204.02085/) (2022)

## Built on by (most cited first, 1 of 1)

- [LUT-DLA: Lookup Table as Efficient Extreme Low-Bit Deep Learning Accelerator](https://mlsanity.com/paper/2501.10658/) (2025)

## Abstract (arXiv)

Processing-in-memory (PIM) promises to alleviate the data movement bottleneck in modern computing systems. However, current real-world PIM systems have the inherent disadvantage that their hardware is more constrained than in conventional processors (CPU, GPU), due to the difficulty and cost of building processing elements near or inside the memory. As a result, general-purpose PIM architectures support fairly limited instruction sets and struggle to execute complex operations such as transcendental functions and other hard-to-calculate operations (e.g., square root). These operations are particularly important for some modern workloads, e.g., activation functions in machine learning applications. In order to provide support for transcendental (and other hard-to-calculate) functions in general-purpose PIM systems, we present TransPimLib, a library that provides CORDIC-based and LUT-based methods for trigonometric functions, hyperbolic functions, exponentiation, logarithm, square root, etc. We develop an implementation of TransPimLib for the UPMEM PIM architecture and perform a thorough evaluation of TransPimLib's methods in terms of performance and accuracy, using microbenchmarks and three full workloads (Blackscholes, Sigmoid, Softmax). We open-source all our code and datasets at~urlhttps://github.com/CMU-SAFARI/transpimlib.
