UPMEM Unleashed: Software Secrets for Speed

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Chmielewski, Krystian, Ławnicki, Jarosław, Lukyanau, Uladzislau, Kobus, Tadeusz, Maciejewski, Maciej
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912656720396288
author Chmielewski, Krystian
Ławnicki, Jarosław
Lukyanau, Uladzislau
Kobus, Tadeusz
Maciejewski, Maciej
author_facet Chmielewski, Krystian
Ławnicki, Jarosław
Lukyanau, Uladzislau
Kobus, Tadeusz
Maciejewski, Maciej
contents Developing kernels for Processing-In-Memory (PIM) platforms poses unique challenges in data management and parallel programming on limited processing units. Although software development kits (SDKs) for PIM, such as the UPMEM SDK, provide essential tools, these emerging platforms still leave significant room for performance optimization. In this paper, we reveal surprising inefficiencies in UPMEM software stack and play with non-standard programming techniques. By making simple modifications to the assembly generated by the UPMEM compiler, we achieve speedups of 1.6-2x in integer addition and 1.4-5.9x in integer multiplication, depending on the data type. We also demonstrate that bit-serial processing of low precision data is a viable option for UPMEM: in INT4 bit-serial dot-product calculation, UPMEM can achieve over 2.7x speedup over the baseline. Minor API extensions for PIM allocation that account for the non-uniform memory access (NUMA) architecture of the server further improve the consistency and throughput of host-PIM data transfers by up to 2.9x. Finally, we show that, when the matrix is preloaded into PIM, our optimized kernels outperform a dual-socket CPU server by over 3x for INT8 generalized matrix-vector multiplication (GEMV) and by 10x for INT4 GEMV. Our optimized INT8 GEMV kernel outperforms the baseline 3.5x.
format Preprint
id arxiv_https___arxiv_org_abs_2510_15927
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle UPMEM Unleashed: Software Secrets for Speed
Chmielewski, Krystian
Ławnicki, Jarosław
Lukyanau, Uladzislau
Kobus, Tadeusz
Maciejewski, Maciej
Hardware Architecture
Distributed, Parallel, and Cluster Computing
Performance
Developing kernels for Processing-In-Memory (PIM) platforms poses unique challenges in data management and parallel programming on limited processing units. Although software development kits (SDKs) for PIM, such as the UPMEM SDK, provide essential tools, these emerging platforms still leave significant room for performance optimization. In this paper, we reveal surprising inefficiencies in UPMEM software stack and play with non-standard programming techniques. By making simple modifications to the assembly generated by the UPMEM compiler, we achieve speedups of 1.6-2x in integer addition and 1.4-5.9x in integer multiplication, depending on the data type. We also demonstrate that bit-serial processing of low precision data is a viable option for UPMEM: in INT4 bit-serial dot-product calculation, UPMEM can achieve over 2.7x speedup over the baseline. Minor API extensions for PIM allocation that account for the non-uniform memory access (NUMA) architecture of the server further improve the consistency and throughput of host-PIM data transfers by up to 2.9x. Finally, we show that, when the matrix is preloaded into PIM, our optimized kernels outperform a dual-socket CPU server by over 3x for INT8 generalized matrix-vector multiplication (GEMV) and by 10x for INT4 GEMV. Our optimized INT8 GEMV kernel outperforms the baseline 3.5x.
title UPMEM Unleashed: Software Secrets for Speed
topic Hardware Architecture
Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2510.15927