English
Related papers

Related papers: Faster Population Counts Using AVX2 Instructions

200 papers

Single Instruction, Multiple Data (SIMD) vectorization is a major driver of performance in current architectures, and is mandatory for achieving good performance with codes that are limited by instruction throughput. We investigate the…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-01-30 Johannes Hofmann , Jan Treibig , Georg Hager , Gerhard Wellein

Sliding window sums are widely used in bioinformatics applications, including sequence assembly, k-mer generation, hashing and compression. New vector algorithms which utilize the advanced vector extension (AVX) instructions available on…

Data Structures and Algorithms · Computer Science 2019-09-04 Roman Snytsar , Yatish Turakhia

Due to the large data volume and number of distinct elements, space is often the bottleneck of many stream processing systems. The data structures used by these systems often consist of counters whose optimization yields significant memory…

Networking and Internet Architecture · Computer Science 2025-02-21 Ran Ben Basat , Gil Einziger , Bilal Tyah , Shay Vargaftik

The prefix sum operation is a useful primitive with a broad range of applications. For database systems, it is a building block of many important operators including join, sort and filter queries. In this paper, we study different methods…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-12-25 Wangda Zhang , Yanbin Wang , Kenneth A. Ross

In software, text is often represented using Unicode formats (UTF-8 and UTF-16). We frequently have to convert text from one format to the other, a process called transcoding. Popular transcoding functions are slower than state-of-the-art…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-08-16 Daniel Lemire , Wojciech Muła

Intel includes in its recent processors a powerful set of instructions capable of processing 512-bit registers with a single instruction (AVX-512). Some of these instructions have no equivalent in earlier instruction sets. We leverage these…

Data Structures and Algorithms · Computer Science 2024-08-06 Robert Clausecker , Daniel Lemire

Content-defined Chunking (CDC) algorithms dictate the overall space savings that deduplication systems achieve. However, due to their need to scan each file in its entirety, they are slow and often the main performance bottleneck within…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-01-28 Sreeharsha Udayashankar , Abdelrahman Baba , Samer Al-Kiswany

This paper presents software implementations of batch computations, dealing with multi-precision integer operations. In this work, we use the Single Instruction Multiple Data (SIMD) AVX512 instruction set of the x86-64 processors, in…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-10-25 Laurent-Stéphane Didier , Nadia Mrabet , Léa Glandus , Jean-Marc Robert

Modern Intel CPUs reduce their frequency when executing wide vector operations (AVX2 and AVX-512 instructions), as these instructions increase power consumption. The frequency is only increased again two milliseconds after the last code…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-01-16 Mathias Gottschlag , Frank Bellosa

This paper describes several new improvements of modular arithmetic and how to exploit them in order to gain more efficient implementations of commonly used algorithms, especially in cryptographic applications. We further present a new…

Cryptography and Security · Computer Science 2013-10-15 Wilke Trei

Support vector machines (SVMs) are a standard method in the machine learning toolbox, in particular for tabular data. Non-linear kernel SVMs often deliver highly accurate predictors, however, at the cost of long training times. That problem…

Machine Learning · Computer Science 2022-07-05 Tobias Glasmachers

Huge amount of data in the form of strings are being handled in bio-computing applications and searching algorithms are quite frequently used in them. Many methods utilizing on both software and hardware are being proposed to accelerate…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-03-31 D. Herath , C. Lakmali , R. G. Ragel

Arrays of integers are often compressed in search engines. Though there are many ways to compress integers, we are interested in the popular byte-oriented integer compression techniques (e.g., VByte or Google's Varint-GB). They are…

Information Retrieval · Computer Science 2017-10-11 Daniel Lemire , Nathan Kurz , Christoph Rupp

Most modern processors contain vector units that simultaneously perform the same arithmetic operation over multiple sets of operands. The ability of compilers to automatically vectorize code is critical to effectively using these units.…

Performance · Computer Science 2025-02-21 Nazmus Sakib , Tarun Prabhu , Nandakishore Santhi , John Shalf , Abdel-Hameed A. Badawy

Boolean functions and binary arithmetic operations are central to standard computing paradigms. Accordingly, many advances in computing have focused upon how to make these operations more efficient as well as exploring what they can…

Neural and Evolutionary Computing · Computer Science 2022-03-25 James B. Aimone , Aaron J. Hill , William M. Severa , Craig M. Vineyard

Many modern sequence alignment tools implement fast string matching using the space efficient data structure called FM-index. The succinct nature of this data structure presents unique challenges for the algorithm designers. In this paper,…

Data Structures and Algorithms · Computer Science 2019-09-04 Roman Snytsar

Multiplication is one of the most important operation in computer arithmetic. Many integer operations such as squaring, division and computing reciprocal require same order of time as multiplication whereas some other operations such as…

Data Structures and Algorithms · Computer Science 2014-07-25 Shri Prakash Dwivedi

Many emerging computer applications require the processing of large numbers, larger than what a CPU can handle. In fact, the top of the line PCs can only manipulate numbers not longer than 32 bits or 64 bits. This is due to the size of the…

Data Structures and Algorithms · Computer Science 2012-04-03 Youssef Bassil , Aziz Barbar

This paper presents a methodology for using LLVM-based tools to tune the DCA++ (dynamical clusterapproximation) application that targets the new ARM A64FX processor. The goal is to describethe changes required for the new architecture and…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-06-29 Joseph Huber , Weile Wei , Giorgis Georgakoudis , Johannes Doerfert , Oscar Hernandez

We consider the problem of sampling $n$ numbers from the range $\{1,\ldots,N\}$ without replacement on modern architectures. The main result is a simple divide-and-conquer scheme that makes sequential algorithms more cache efficient and…

Data Structures and Algorithms · Computer Science 2019-11-18 Peter Sanders , Sebastian Lamm , Lorenz Hübschle-Schneider , Emanuel Schrade , Carsten Dachsbacher